Zainspirowany jednym z komentarzy do mojego poprzedniego wpisu:
Jeżeli ktoś w 2018 roku chce się rozwijać, to nie będzie szedł do pracy do firmy która oferuje pracę w PHP i MySql. Serio…
postanowiłem pochylić się nad bardzo ciekawym zagadnieniem jakim jest nauka programowania w PHP: czy warto w ogóle się za to zabierać w 2019…? Oczywiście cały post mógłbym zakończyć już teraz krótkim i zdecydowanym “TAK”, ale bez odpowiednich argumentów niewiele by to znaczyło. Z drugiej strony jeśli jesteś osobą kompletnie spoza IT, możesz sobie pomyśleć: dlaczego PHP skoro wszyscy ibecnob ucza się JavaScript? Odpowiedź jest prosta: PHP jest praktycznie wszędzie – czy Ci się to podoba czy nie. Pisząc artykuł na bloga, przeglądając Facebooka i inne portale informacyjne czy też społecznościowe, tam gdzieś pod spodem najprawdopodobniej jest PHP (jest wykorzystywany przez prawie 80% wszystkich stron w internecie!). Ok, ale co z tego? Prędzej czy później możesz dotrzeć do momentu, gdy dodając kolejny artykuł na swoim np: WordPressowym blogu będziesz chciał coś dodać, zmienić czy też usunąć, a interfejs WordPressa na to nie pozwoli. Oczywiście nie musisz tego wszystkiego wiedzieć – zawsze możesz skorzystać z pomocy dobrego (czyt. zaufanego) programisty o których jest niestety coraz trudniej. A to co przede wszystkim wyróżnia PHP i sprawia, że jest tak popularny to prostota jaką oferuje sam język nawet dla osób nietechnicznych – zachęcam to poznania chociażby podstaw.
PHP tu i teraz
Na początek zachęcam do posłuchania podcastu i przeczytania dwóch bardzo ciekawych artykułów na temat kondycji PHP
– podcast jest z 2017, a artykuły mimo, że są dość stare to stanowią doskonałe wprowadzenie do tematu mojego artykułu (obowiązkowo z komentarzami):
DevTalk#51
Macieja Aniserowicza – O PHP z Mariuszem Gilem – jak naprawdę wygląda świat PHP obecnie;- pierwszy artykuł z 2012 napisany przez autora frameworka Symfony, Fabien Potencier: PHP is much better than you think
- drugi jeszcze starszy bo z 2010 roku napisany przez jednego z developerów MailChimp: Ewww, You Use PHP?
Już wtedy świat PHP wyglądał naprawdę dobrze, a od tego czasu wiele się zmieniło:
- Composer stał się standardem w zarządzaniu zależnościami w PHP – jedno z najbardziej kluczowych narzędzi dla
PHP
ostatnich lat; - PHP Standars Recommendations (PSR) – zbiór standardów dla języka PHP (stale rozszerzany);
- nowe wersje dobrze znanych i lubianych frameworków:
Symfony4
,Zend3
,Laravel 5
; - w międzyczasie rozwinięte zostały narzędzie do testowania
PHPUnit7
,Behat3
,PHPSpec2
; - światło dziennie ujrzał
Drupal 8
iMagento2
; - wreszcie premiera długo oczekiwanego
PHP 7
;
PHP stał się językiem naprawdę dojrzałym, a jego pozycja jest bardziej stabilna niż kiedykolwiek.
Czasy gdy projekt PHP zaczynaliśmy od przygotowania pliku index.php i “zaincludowania” odpowiednich bibliotek już dawno minęły. Teraz wystarczy skorzystać z przygotowanych instalatorów jak np: w Symfony / Laravel bądź też po prostu zainstalować odpowiedni pakiet za pomocą Composera
:
1 2 |
$ composer global require "laravel/installer" $ laravel new project |
i szkielet projektu mamy gotowy. Dodatkowo możemy tworzyć własne, odpowiednio pre-konfigurowane pakiety gotowe do instalacji w kontekście kolejnych projektów.
PHP jako język
Być może jest to kwestia przyzwyczajenia ale w samym PHP
pisze mi się bardzo szybko i wygodnie. Chodzi mi tutaj zarówno o wydajność tworzenia kodu, implementacji nowych funkcjonalności czy też testowania aplikacji (tutaj przede wszystkim PHPUnit i Behat, trochę mniej PhpSpeca). Nie od wczoraj wiadomo, że język ma tak samo dużo grono zwolenników jak i przeciwników, bardzo często jest wyśmiewany i “hejtowany” przez programistów tych bardziej dojrzałych języków programowania. W dużej mierze jest to spowodowane tak zwanymi “błędami młodości”, kiedy PHP był przede wszystkim wykorzystywany do budowania prostych, dynamicznych stron internetowych, księgi gości czy bloga. Język ewoluuje, a jego rozwój zmierza w bardzo dobrym kierunku, czego znakomitym przykładem jest PHP
w wersji 7.
Nie mogę napisać, że PHP7
jest super wydajny i nadaje się znakomicie do wszystkiego, ale jest dwukrotnie szybszy bardziej od poprzednich wersji i ma znacznie więcej do zaoferowania developerom. Aby nie rozpisywać się tutaj nad nowościami najnowszej wersji PHP, zainteresowanych odsyłam do ciekawego artykułów:
Praca i rozwój
Prawda jest taka, że praca dla programistów PHP
była, jest i wszystko wskazuje na to, że jeszcze przez długi czas będzie. Wynagrodzenie nie jest jeszcze takie jak np: w Javie i być może nigdy nie będzie ale jest na bardzo przyzwoitym poziomie. Tutaj zaryzykuje stwierdzenie, że niektóre firmy w Lublinie dla swoich Senior Developerów oferują stawki bardzo zbliżone do tych ze stolicy.
Jeśli szukasz pracy jako programista PHP
albo zastanawiasz się nad nauką tego języka w kontekście pracy i rozwoju to jest to bardzo dobry moment. W ofertach można niemal przebierać, a oferowane wynagrodzenie jest na przyzwoitym poziomie.
Jako, że na co dzień mieszkam w Lublinie i mniej więcej w lubelskim stawkach dla programistów PHP
jestem dość dobrze zorientowany to mogę napisać, że w ostatnich latach poziom wynagrodzeń zmienia się dynamicznie. I tak:
- junior Developer może liczyć na starcie na wynagrodzenie na poziomie: 2000 – 4000 zł. Tak wiem, że są też w Lublinie firmy, które oferują tego typu wynagrodzenie Regular developerom;
- programiści z doświadczeniem 2-4 letnim mogą liczyć na wynagrodzenie na poziomie od 3000 do 6000 zł netto;
- dla senior developerów stawki zaczynają się od 5000-8000 do 16000 zł – górna granica jest bardzo mocno uzależniona od wielkości i profilu firmy.
Niestety nie mam najlepszych doświadczeń jeśli chodzi o rekrutację programistów PHP w Lublinie i trudno jest mi zdiagnozować przyczynę takiego stanu. Pisałem o ten temat jakiś czas temu. Ostatnio zastanawiałem się nawet nad możliwością zorganizowania szkolenia / szkoleń z PHP / Symfony2 w Lublinie.
Jak zacząć się uczyć PHP?
Na początek odsyłam to specjalnie przygotowanego repozytorium: http://pl.phptherightway.com/ – znajdziecie tam wszystko czego potrzebuje początkujący developer.
PHP: The Right Way jest przystępnym zbiorem najlepszych praktyk i standardów kodowania, a także linków do sprawdzonych i solidnych tutoriali pałętających się w czeluściach Internetu.
W następnej kolejności mogę polecić takie pozycje jak (osobiście preferuję wydania angielskojęzyczne ale poniżej zamieszczam Polskie tłumaczenia):
Jako uzupełnienie polecam video tutoriale w języku angielskim na Knp University (odpłatne) – są bardzo dobrze przygotowane, a dodatkowo zawierają ćwiczenia utrwalające przerabiany materiał.
Na dobry start powinno w zupełności wystarczyć. To na co powinniście na początku szczególnie zwrócić uwagę to:
- dobre standardy / praktyki programowania (PSRy);
- zrozumieć programowanie obiektowe, mieć świadomość po co tworzymy klasy i jak realizować interakcje pomiędzy obiektami;
- czytać ze zrozumieniem komunikaty błędów – niby oczywiste, a to jeden z największych problemów początkujących programistów;
- znać narzędzie ułatwiające prace;
Co istotne naukę PHP polecam rozpocząć od wersji 5.6
(wcześniejsze wersję nie są już oficjalnie wspierane) bo większość firm w tym momencie mimo wszystko swoje projekt opiera jeszcze na “piątce”. Oczywiście należy znać zasadnicze różnie pomiędzy 5, a 7 wersją (często tego typu pytanie pojawia się podczas rekrutacji) ale migracja do PHP7
to plan na najbliższy rok albo dwa.
Czy warto iść na studia?
Tutaj spotkacie się z bardzo różnymi opiniami. Z jednej strony jako bardzo dobry przykład mogę przedstawić dwa poniższe artykuły:
- Jak wykorzystałem Stack Overflow i GitHub, żeby dostać wymarzoną pracę przed 19 urodzinami bez studiów
- A co jeśli nie dostanę się na studia?
których przekaz jest dość prosty: “Nie idź na studia.” (zachęcam również do zapoznania się z komentarzami). Z mojej perspektywy sytuacja wygląda zupełnie inaczej. Zachęcam i namawiam do studiowania / nauki na wyższej uczelni – o ile to tylko możliwe w “trybie” dziennym. Mi osobiście studia otworzyły oczy na wiele różnych tematów i utwierdziły w przekonaniu, że programowanie to jest to co chciałbym robić przez najbliższe kilka lat (albo i dłużej). Uważam, że bardzo dobrze wprowadzają w poszczególne zagadnienia IT, mimo niektórych kompletnie zbędnych zajęć – z perspektywy obecnie wykonywanej pracy. Oczywiście inną sprawą jest poziom nauczania – wiele zależy tutaj od szczęścia – ale jeśli chodzi o uczelnie w Lublinie to te spokojnym sumieniem mogę polecić Informatykę na Politechnice Lubelskiej. Nie chciałbym odradzać wyboru tej czy innej uczelni ale jeśli miałbym ponownie rozpocząć Informatykę w Lublinie to pod uwagę wchodziłyby tylko dwie uczelnie: Politechnia Lubelska i UMCS.
Czy muszę znać frameworki i dlaczego Symfony?
Znajomość FW to obecnie jedno z bardziej podstawowych wymagań jeśli chodzi o oferty pracy w Polsce i za granicą. Oczywiście nie musi być to znajomość Symfony
, bo na rynku mamy jeszcze np Laravela,
Zend Framework 3
, Phalcon
i kilka innych ale ofert pracy w przypadku tych frameworków jest zdecydowanie mniej – przynajmniej jeśli chodzi o rynek pracy w Polsce. Dobrze jest znać co najmniej jeden nowy FW i jego filozofie / koncepcje działania. Chodzi o wiedzę na temat DI
, ORM
(Active Record / Data Mapper), usług, adnotacji, composera czy też obiektowego podejście do budowania formularzy czy zapytań do bazy danych – o popularnych (sprawdzonych i przetestowanych) bibliotekach / “bundlach” nie wspominając. Moim osobistym faworytem jest framework Symfony
, w mniejszym stopniu ze względu na liczne antywzorce polecałbym Laravel
, z Zend Framework
od dłuższego czasu nie miałem okazji pracować i nie wiem tak naprawdę co i w jakim stopniu zmieniło się w tym FW w ostatnich miesiącach / latach. Symfony
doceniam przede wszystkim za dojrzały, stale rozwijany kod, stabilność i śwetną społeczność. Cieszą liczne bundle, które pozwalają budować nowe projekty naprawdę szybko.
Przyszłość PHP
Tutaj też wszystko wskazuje, że może być tylko lepiej. Oczywiście nic za darmo bo próg wejścia w język PHP z każdą kolejną wersją jest coraz wyższy ale w dalszym ciągu jest on jednym z prostszych języków programowania dostępnym na rynku. Gdyby tego było mało, coraz częściej spotykam się ze stwierdzeniem, że język PHP
, społeczność i wszystko inne co jest z nim związane, swoją dojrzałością przewyższa (przereklamowane?) Ruby on Rails
i język Ruby. Zachęcam do przeczytania artykułu:
wraz z komentarzami. Mnie osobiście framework Ruby on Rails
jakoś nigdy nie urzekł.
Kilka dobrych lat temu rewolucją w świecie PHP
było wypuszczenie wersji PHP 5.0 i wprowadzenie obiektowego modelu programowania do PHP. Obecnie takim punktem zwrotnym jest PHP
w wersji 7, która oprócz tego że znacząco przyspiesza samo PHP
, to do tego porządkuje Core
PHP, wprowadza nowe operatory i typy skalarne. Zachęcam do zapoznania sie z dokumentacją najnowszych wersji PHP
.
Inne artykuły, które mogę cie zainteresować:
Masz jakieś pytania? Potrzebujesz pomocy / konsultacji / szkolenia lub po prostu chcesz się ze mną skontaktować? Skorzystaj z formularza kontaktowego – odpowiadam na wszystkie wiadomości!
Pingback: webMASTAH.weekly.021 - Jak pracować z domu i nie oszaleć? - webMASTAH()
Pingback: Od czego zacząć naukę PHP? - Notatki Programisty()