Wymagania dla programistów PHP na rynku pracy w Polsce, Niemczech i Anglii

 sty, 23 - 2015   Praca

requirements-check Ofert pracy dla programistów PHP jest niemało. Jakie kompetencje i umiejętności powinien jednak posiadać kandydat, aby móc odnaleźć się na rynku pracy? Postanowiłem sprawdzić, czego najczęściej wymagają od nas pracodawcy.

 

 

 

Metoda badania była bardzo prosta i polegała na sprawdzeniu losowo znalezionych ogłoszeń o pracę dla programisty PHP o różnych poziomach doświadczenia. Z każdego z tych ogłoszeń zostały wypisane umiejętności i narzędzia, jakie są wymagane przez danego pracodawcę oraz została zapisana ich łączna liczba wystąpień. W rezultacie powstało zestawienie, z którego wynika jakie technologie, frameworki, biblioteki, systemy i narzędzia są popularne wśród firm oferujących pracę oraz które z nich należy znać i czego warto się uczyć.

 

W ten sposób sprawdziłem rynki pracy w Polsce, Niemczech i Anglii – łącznie 300 ogłoszeń (po 100 w każdym kraju). Źródła ofert to:

Polska: goldenline.pl, pracuj.pl, infopraca.pl, jobs.pl, kariera.pl, gratka.pl, egospodarka.pl;

Niemcy: monster.de, stepstone.de, xing.de, careerbuilder.de, php-resource.de, de.indeed.com;

Anglia: jobsite.co.uk, reed.co.uk, jobs24.co.uk, totaljobs.com, jobs.co.uk.

 

Na wstępie chciałbym podkreślić, że nie jest tak, że któraś z wymienionych poniżej technologii jest lepsza czy gorsza. Jest to jedynie proste statystyczne zestawienie częstotliwości występowania wymaganych przez pracodawców umiejętności wśród 300 ofert pracy. Bardzo często popularność danego systemu lub narzędzia, determinowana jest długością jego dostępności na rynku. Nie wykluczone, że za rok lub dwa, zestawienia pokazane w tym artykule diametralnie się zmienią.

 

 

Języki programowania

Spośród wymaganych języków programowania, jakie powinien znać programista PHP jest, co nie trudno się domyślić, język… PHP :). Drugim w kolejności jest JavaScript. W niektórych ogłoszeniach pracodawcy sporadycznie podawali inne języki, jako dodatkowy atut. Wśród nich były takie jak Java, Python, Perl, C# i bardzo rzadko Ruby, C++, ASP, Bash czy GO.

 

Wymagane języki programowania dla programistów PHP na rynkach pracy w Polsce, Niemczech i Anglii

 

Frameworki PHP i inne

Wśród frameworków PHP na pierwsze miejsce wysuwają się Symfony 2 i Zend 2. Na angielskim rynku pracy wybija się jeszcze Laravel. Pozostałe frameworki takie jak CodeIgniter, Yii, CakePHP lub Kohana, zostają daleko w tyle.

 

Wymagane frameworki dla programistów PHP na rynkach pracy w Polsce, Niemczech i Anglii

 

Frameworki wykorzystujące inne języki programowania, praktycznie nie występowały. Wśród innych systemów były: .NET (po jednym ogłoszeniu w każdym kraju), Django (jedno ogłoszenie w Polsce), Rails (jedno ogłoszenie w Anglii).

 

Frameworki JavaScript

Jeżeli chodzi o frameworki dla języka JavaScript, to tutaj bezapelacyjnie wygrywa jQuery. Inne nie są aż tak popularne – od czasu do czasu w ogłoszeniach pojawiały się takie biblioteki jak Angular, ExtJS, Backbone lub Prototype.

 

Wymagane frameworki JavaScript dla programistów PHP na rynkach pracy w Polsce, Niemczech i Anglii

 

Dodatkowo po trzy ogłoszenia z każdego z krajów zawierały wymagania dotyczące znajomości środowiska Node.js.

 

HTML, CSS i frontend cd…

Wśród umiejętności, jakie powinien posiadać programista PHP, zdecydowanie znalazły się znajomość znacznikowego języka stron internetowych HTML oraz kaskadowych arkuszy styli CSS. Dodatkowo bardzo sporadycznie w ofertach pracy pojawiały się oczekiwania znajomości skryptowych języków styli CSS, takich jak LESS i SASS.

Polska Niemcy Anglia
HTML 77 74 73
CSS 77 72 72
LESS 6 1 1
SASS 3 3 2

 

Pojawiały się również wymagania znajomości frontendowego systemu Bootstrap (Polska: 13 ogłoszeń, Niemcy: 4, Anglia: 8). Bardzo rzadko (po jednym ogłoszeniu tylko na rynku polskim) znajdowałem takie systemy jak YUI, Compass, Zen Grids oraz Zurb Foundation.

 

Bazy danych

Jeżli chodzi o systemy bazodanowe, na pierwsze miejsce zdecydowanie wysunął się MySQL. W Polsce dodatkowo wybija się jeszcze PostgreSQL. Reszta systemów pozostaje daleko w tyle. Coraz więcej firm korzysta z rozwiązań typu NoSQL (Niemcy: 12 ogłoszeń, Polska: 5, Anglia: 2). Co więcej bardzo dużo ogłoszeń nie podaje nazwy konkretnego systemu jedynie samo „NoSQL”. Spośród tych co podają nazwę, przeważa MongoDB i Redis.

 

Wymagania systemów bazodanowych dla programistów PHP na rynkach pracy w Polsce, Niemczech i Anglii

 

Bardzo rzadko w ogłoszeniach pojawiały się biblioteki bazy danych (np. systemy ORMy, itp.). Jedyne dwa, które udało mi się znaleźć to Doctrine (po dwa ogłoszenia w Polsce i Niemczech oraz jedno ogłoszenie w Anglii) i PDO (jedna oferta w Niemczech).

 

Systemy operacyjne i serwery WWW

Wśród sprawdzanych ogłoszeń, wymieniany był w zasadzie tylko jeden system operacyjny – Linux (Polska: 31 ogłoszeń, Niemcy: 37, Anglia: 38). Najczęściej wymienianymi dystrybucjami były Debian, Ubuntu i CentOS. W jednej ofercie z Polski wymagana była znajomość systemu FreeBSD.

Od każdego programisty aplikacji internetowych powinno wymagać się znajomości środowiska, w którym ta aplikacja ma działać, czyli serwera WWW obsługującego żądania użytkowników i zwracającego odpowiedzi. O dziwo, wśród ofert pracy, tego typu wymogów nie jest wcale tak dużo (spodziewałem się znaleźć więcej takich ogłoszeń). Najpopularniejszym serwerem, na każdym z trzech analizowanych rynkach pracy, jest Apache. W Niemczech wybija się również nieznacznie Nginx. Sporadycznie pojawiają się również takie systemy jak Node.js, IIS i Lighttpd.

Polska Niemcy Anglia
Apache 18 24 32
Nginx 1 10 4
Node.js 3 3 3
IIS - - 2
Lighttpd 1 - -

 

Systemy zarządzania treścią CMS

Najpopularniejszym systemem zarządzania treścią na niemieckim rynku pracy jest zdecydowanie Typo3, który bije reszte na głowę. W Anglii liczą się przede wszystkim Drupal i WordPress. Wśród polskich ogłoszeń częstotliwość pojawiania się CMSów nie była tak duża. Wyróżniały się trzy systemy: WordPress, Joomla oraz Drupal. Pełne zestawienie pokazuje poniższy obrazek.

 

Wymagania CMS dla programistów PHPO na rynku pracy w Polsce, Niemczech i Anglii

 

Platformy e-commerce

Analizując wystąpienie systemów handlu internetowego, to Magento jest platformą numer jeden na każdym z badanych rynków pracy. Szczególnie należy zwrócić uwagę na Niemcy, gdzie przewaga tego systemu jest zdecydowana. Wśród kolejnych programów e-commerce znajdują się Oxid, Shopware, Prestashop i inne.

 

Wymagania systemów e-commerce dla programistów PHP na rynkach pracy w Polsce, Niemczech i Anglii

 

Systemy szablonów

Częstotliwość występowania znajomości systemów szablonów wśród ofert o pracę jest znikoma. Ilość ogłoszeń zawierających jakąkolwiek wzmiankę o systemach szablonów przedstawia poniższa tabelka.

Polska Niemcy Anglia
Smarty 6 3 -
Twig 2 - 1
Open Power Template 1 - -

 

 

Systemy kontroli wersji

Dosyć dużo ogłoszeń, wśród wymaganych umiejętności, wymieniały znajomość systemów kontroli wersji. Na każdym z badanych rynków pracy sytuacja wyglądała dosyć podobnie. Najpopularniejszy okazał się GIT. Drugie miejsce zajmuje Subversion (SVN). Na końcu (po jednym ogłoszeniu) jest system Mercurial.

 

Wymagania VCS dla programistów PHP na rynkach pracy w Polsce, Niemczech i Anglii

 

Testowanie

Coraz częściej od programistów wymaga się umiejętności pisania testów (jednostkowych, behawioralnych) oraz korzystania z narzędzi testujących poprawność kodu i zachowania oprogramowania. Niestety występowanie tych umiejętności wśród ofert pracy jest dosyć znikoma. Poniższe tabelki przedstawiają zestawienie występowania frameworków i narzędzie testujących w badanych ogłoszeniach.

Polska
Behat 2
PHPUnit 1
PHPSpec 1

 

Niemcy
PHPUnit 11
PHP CodeSniffer 3
Selenium 3
PHP Mess Detector 2
PHP Depend 2
Behat 1
Anglia
PHPUnit 6
Lime 1
Selenium 1
PHPSpec 1
Behat 1
JUnit 1

 

Metodologie tworzenia oprogramowania i narzędzia

Sporadycznie w ogłoszeniach wymieniane są metodologie oraz narzędzia wykorzystywane do tworzenia oprogramowania. Znajomość metodologii Agile – Scrum, występowała najczęściej na każdym z badanych rynków pracy. Czasem pojawiała się znajomość UML lub systemu Jira.

Polska Niemcy Anglia
Agile – Scrum 7 9 14
UML 3 2 -
Jira - 7 1
BPMN 1 - -
Redmine - - 1

 

Inne umiejętności

W badanych ogłoszeniach pojawiało się bardzo wiele innych umiejętności, nie kwalifikujących się do żadnej z powyższych kategorii. Były to między innymi takie technologie jak:

  • systemy wyszukiwania: Solr, Sphinx
  • systemy cache-ujące: Varnish, Memcache
  • systemy zarządzania zależnościami w projekcie: Composer, Bower
  • systemy wirtualizacji: Vagrant, Hyper-V
  • narzędzia monitorujące: Zabbix, Nagios
  • narzędzia automatyzacji procesów: Apache Ant, Phing

i inne. Zestawienie wszystkich dodatkowych wymagań przedstawiają poniższe tabelki.

Polska
Sphinx 1
RabbitMQ 1
PHPDoc 1
Vagrant 1
Zabbix 1
Nagios 1
Cacti 1
Varnish 1
Niemcy
Solr 11
Memcache 6
Varnish 5
PHPDoc 3
Jenkins 2
RabbitMQ 2
Grunt 1
Bower 1
Composer 1
Hadoop 1
Apache Ant 1
Phing 1

 

Anglia
Composer 2
Solr 1
Vagrant 1
Hyper-V 1
Monolog 1
Assetic 1

 

Wśród ofert dosyć często wymieniane były również umiejętności tzw. „webservice”, takie jak XML, JSON, czasem REST, SOAP, RPC, itp.

 

Podsumowanie

Analizując opisane w tym artykule zestawienia umiejętności, można je podzielić na takie, które każdy programista PHP musi znać, te które powinien znać oraz takie, których znajomość nie jest szczególnie konieczna (w końcu zawsze można się nauczyć jeżeli jest taka potrzeba).

 

Każda osoba ubiegająca się o posadę programisty PHP, oprócz samego języka na pewno musi umieć programować w JavaScript oraz używać biblioteki jQuery. Musi również znać HTML oraz CSS. Spośród frameworków PHP najbardziej pożądanymi okazały się Symfony 2 i Zend 2 (aczkolwiek dobra znajomość jakiegokolwiek innego frameworka jest dużym plusem). Znajomość Linuxa oraz konfiguracji Apache-a na pewno się przyda. MySQL powinien być podstawowym systemem bazodanowym. Jeżeli ktoś chce pracować z popularnymi systemami CMS, to tutaj w zależności od rynku pracy najbardziej liczą się WordPress, Drupal, Typo3 i Joomla. Statystycznie najpopularniej platformą e-commerce jest Magento. Współpracując z innymi programistami, należy znać GIT lub SVN jako system kontroli wersji oraz metodologię pracy Agile.

 

Mam nadzieje, że artykuł ten pomoże tym, którzy chcą się nauczyć czegoś nowego i zastanawiają się co może się najbardziej przydać. Moim celem było pokazanie jakie umiejętności są najczęściej wymagane oraz z czego korzystają firmy przy tworzeniu swoich aplikacji.


Przeczytaj równierz