PHP służy nie tylko do tworzenia prostych stronek. Devdebata

Jak oceniasz bezpieczeństwo refaktorowania oraz innych głębokich modyfikacji kodu? Jakie są ograniczenia PHP? Jakie najczęściej pułapki czyhają na juniorów? To trzy z dziesięciu pytań w kolejnej odsłonie devdebaty, do której zapraszamy doświadczonych developerów. Tym razem postanowiliśmy porozmawiać z nimi o PHPie.

5. PHP to dobry język dla początkującego?

Odpowiada Łukasz Nowak, PHP & NodeJS Developer w Assertis:

Moim zdaniem tak. Chociaż zaczynałem od niego dobrych dziesięć lat temu, czyli w czasach gdy wyglądał tak, że krytyka tego języka utrzymuje się do dziś. Od wersji 7.0 zmieniło się w nim na tyle dużo i w na tyle dobrym kierunku, że z pewnością nadaje się dla osób zaczynających swoją przygodę z programowaniem. W wielu innych językach nowicjusza zniechęcić może samo stawianie środowiska i wszystkiego co potrzebne dookoła, aby w ogóle móc napisać swój pierwszy skrypt lub program.

Odpowiada Iwona Jóźwiak, Senior PHP & Magento Developer w Divante:

Są różne zdania na ten temat. Osobiście uważam, że każdy język jest dobry do nauki i każdy wnosi pewne doświadczenie. W każdym też języku da się napisać tzw. “kod spaghetti” i architektoniczne dzieło. Wydaje mi się, że nie tyle język jest istotny, co osoba wprowadzająca do zawodu, czyli tzw. “opiekun stażu”. To jego zadaniem jest zaszczepić dobre praktyki w adepcie sztuki programowania.

Odpowiada Andrzej Precz, Senior PHP Developer w Transparent Data:

Zdecydowanie tak! Przemawiają za tym: niski próg wejścia, składnia podobna do wielu innych popularnych języków programowania, łatwość postawienia środowiska, dobrze rozwinięta społeczność i dokumentacja. PHP nie wymaga każdorazowego kompilowania kodu i naprawdę wiele “wybacza”. Co więcej, realna odczuwalność szybkich postępów prac, pozwala początkującemu programiście uniknąć wielu frustracji, które zawsze towarzyszą, gdy dopiero zaczynamy poznawać dany język.

6. Od czego zacząć naukę PHP?

Odpowiada Łukasz Nowak, PHP & NodeJS Developer w Assertis:

Moim zdaniem i w ten też sposób zaczynałem to zadać sobie jakiś projekt mniejszy lub większy i spróbować go zrealizować. Należy poznać podstawy programowania jako takiego, czyli czym jest zmienna, instrukcja warunkowa, rodzaje pętli i sposoby ich działania itp. Następnie spróbować stworzyć mały sklep internetowy, albo nawet sam system logowania/panel administracyjny z obsługa zamówień itp. W ten sposób napotyka się coraz ciekawsze problemy, przy okazji można troszeczkę pokombinować ze stosowaniem różnych wzorców itp. Znam parę osób, które w ten sposób próbują z innymi językami, dzięki temu nauka wydaje się być bardziej interesująca niż suche oglądanie filmów na YouTube czy Udemy.

Odpowiada Iwona Jóźwiak, Senior PHP & Magento Developer w Divante:

Z tym pytanie najczęściej spotykam się na wielu forach i grupach fb. Ponieważ bycie programistą ostatnimi czasy stało się modne, pretendentów do tego zawodu jest wielu. Znajdują kurs na internecie (np. na Udemy), wykonują kolejne ćwiczenia, po czym trafiają na grupę i pytają “Czemu to w ogóle ma służyć? Nie wiem po co to robię…”. Inni z kolei by chcieli programować, ale nie wiedzą jak zacząć. To czy każdy może być programistą, jest tematem szerokiej debaty wśród developerów. Osobiście uważam, że nie każdy się nadaje do tego fachu.

Naukę języka jednak rozpoczęłabym od zastanowienia się i odpowiedzi na pytanie “Po co mi to?”. Być może to banalne pytanie, ale jeśli nie będziemy wiedzieli w jakim obszarze chcielibyśmy się spełniać, to ciężko będzie tak naprawdę ruszyć. Niezależnie jednak od drogi jaką obierze adept, przeczytanie dokumentacji wraz z komentarzami, jest absolutną podstawą. Kolejnym krokiem będą wzorce projektowe. Dopiero na tym etapie, gdy już wiemy co chcemy wytwarzać, możemy zacząć uczyć się jakiegoś frameworka.

Odpowiada Andrzej Precz, Senior PHP Developer w Transparent Data:

Każdemu rozpoczynającemu naukę PHP proponuję przeczytać i przyswoić sobie informacje z tej strony phptherightway.com. Drugim równie ważnym sposobem nauki jest czytanie kodu innych oraz codzienna praktyka poprzez samodzielne pisanie kodu. Może się to wydawać trywialną poradą, ale w nauce programowania, podobnie jak w innych dziedzinach życia, tylko ułamek procenta to umiejętności/predyspozycje, reszta to ciężka praca, nauka i ćwiczenia.

7. Skąd czerpać wiedzę i inspiracje?

Odpowiada Łukasz Nowak, PHP & NodeJS Developer w Assertis:

Z pewnością komentarze pod dokumentacją, starsi developerzy w firmie itp. ze swojej strony dodałbym jeszcze źródło mniej popularne, z którego ostatnio zacząłem korzystać czyli Discord. Używam jako agregatora newsów ze świata PHP i GoLang’a i sprawdza się świetnie. Na reddit jest też społeczność zorientowana wokół PHP’a, gdzie od czasu do czasu pojawiają się newsy albo też linki do ciekawych blogów na medium, wtedy warto obserwować autora.

Odpowiada Iwona Jóźwiak, Senior PHP & Magento Developer w Divante:

Jak już wcześniej wspomniałam dokumentacja powinna być elementarzem każdego deva. W komentarzach tam zamieszczonych można znaleźć też wiele inspirujących rozwiązań. Grupy dyskusyjne, fora i blogi, prezentacje na yt to kolejne skarbnice wiedzy. Osobiście nie wierzę w magię bootcampów, jednak znam perełki, które dzięki nim dziś pracują w branży i są świetnymi devami. Na pewno staż i starsi stażem koledzy i koleżanki będą niesamowitą kopalnią doświadczeń.

Odpowiada Andrzej Precz, Senior PHP Developer w Transparent Data:

Kopalnią wiedzy jest też istniejący kod aplikacji, nad którą pracujemy. W nim znajdziemy rozwiązania podobnych problemów, przyjęte standardy programowania, dowiemy się kto może być lepiej obeznany z jakimś obszarem biznesowym. Warto też pytać innych programistów, ale niekoniecznie tych z większym stażem. Choć “zderzyli się” oni z większą liczbą przypadków i jest większa szansa, że od ręki podadzą nam gotowe rozwiązanie lub przydatną wskazówkę, to jednak mniej doświadczeni mogą myśleć bardziej niekonwencjonalnie, a przez to kreatywnie.

ZOBACZ TEŻ:  Jak efektywnie pracować na home office? Devdebata

Do tego oczywiście dokumentacja (PHPa, używanego frameworka, biblioteki), StackOverflow itd. Warto pamiętać, że kluczową rolę odgrywa poświęcony na programowanie czas. W naturalny sposób każda kolejna godzina przyczynia się do poszerzenia naszej wiedzy i umiejętności, a teoria nigdy nie zastąpi praktycznego doświadczenia zdobytego z trudem nad jakimś trudnym problemem.

8. Dlaczego warto uczyć się PHP?

Odpowiada Łukasz Nowak, PHP & NodeJS Developer w Assertis:

Dla początkujących warto choćby dlatego, że ma bardzo niski próg wejścia i można się nauczyć go dosyć szybko i stworzyć swoją pierwszą aplikację. Warto też dlatego, że w ostatnich czasach rynek pracy szuka dość dużo developerów obeznanych w tematach Magento, Drupal, WordPress więc pracy w tym języku nadal jest dosyć sporo, dla osób, które dopiero zaczynają przygodę z programowaniem i zmieniają branżę to może być doskonała okazja żeby zacząć.

Odpowiada Iwona Jóźwiak, Senior PHP & Magento Developer w Divante:

Na temat tego, czy naukę programowania powinno zaczynać się od PHP, toczy się wiele debat. Zwolennicy PHP uważają, że jest to język jak każdy inny. Natomiast przeciwnicy wyliczają jego niedoskonałości. Nie będę ukrywać, że należę do tych pierwszych. Tak jak pisał Łukasz, próg wejścia jest mniejszy co sprawia, że szybciej możemy zacząć cieszyć się z rozwoju, chociażby zdobywając pierwszy etat. Dużo łatwiej też znaleźć zlecenia w ramach freelance. Zaradni młodzi ludzie dzięki temu mogą zdobywać doświadczenie zawodowe, nim uda im się dostać do software hause’u, czy agencji interaktywnej.

Odpowiada Andrzej Precz, Senior PHP Developer w Transparent Data:

Uczyć się warto wszystkiego, aby nie spleśnieć na starość. Ale na poważnie, język jak każdy inny, jeżeli widzisz w nim swoją przyszłość i lubisz go, pomimo wad, “go for it”!

9. Jakie najczęściej pułapki czyhają na nowicjuszy?

Odpowiada Łukasz Nowak, PHP & NodeJS Developer w Assertis:

Zdecydowanie w wielu firmach na rozmowach rekrutacyjnych można spotkać się z pytaniami o SOLID, ACID, DRY, wzorce projektowe i na tym nowicjusz może często wypaść z procesu, ponieważ pytania są czysto teoretyczne. Spotkałem programistów, którzy niezbyt dobrze umieją odpowiedzieć na wszystkie tego typu pytania, natomiast nieświadomie jakby z wyczucia stosują te zasady pisząc kod. Sam osobiście też wpadałem w taką pułapkę.

Kolejną pułapką jest mnogość źródeł i problem w ocenieniu czy rzeczywiście wyjaśnienia i kod pisany przez autora artykułu są prawidłową techniką czy sposobem podejścia do rozwiązania problemu.

Drugą pułapkę można sprytnie ominąć obserwując wcześniej wspomniane społeczności na Discord czy reddit. Często w dyskusjach developerzy dowodzą, że dany artykuł jest totalnie bez sensu, a kod w nim zamieszczony do niczego się nie nadaje. Wtedy to społeczność zebrana wokół PHP’a weryfikuje wiedzę z artykułu za nas.

Odpowiada Iwona Jóźwiak, Senior PHP & Magento Developer w Divante:

Często wspominam o tym, że największymi problemami z jakimi mierzą się adepci to “akademickie podejście” i nie zrozumienie biznesu. Przesyt możliwości rozwoju i źródeł wiedzy jest jednak również pułapką, z której czasem ciężko się wydostać. Znam osoby, które przygotowują się do pierwszych rozmów rekrutacyjnych już mnóstwo czasu i porównując swoją wiedzę z doświadczeniem seniorów, wybierają dalszą naukę, zamiast aplikacji na staż. Wiele osób też rozwija swoją wiedzę bardzo szeroko, przez co nie jest ona na tyle zgłębiona, by mogły stać się one specjalistami w jakimkolwiek obszarze.

Odpowiada Andrzej Precz, Senior PHP Developer w Transparent Data:

Równie powszechną pułapką w branży IT (nie tylko w przypadku nauki języka) jest błąd poznawczy zwany efektem Dunninga-Krugera, który polega na tym, że osoba niewykwalifikowana ma fałszywe wyobrażenie o osiągnięciu już poziomu eksperckiego. Buduje to złudne przekonanie o braku potrzeby dokształcania się i nieadekwatną ocenę własnych umiejętności, co z kolei i utrudnia przyjmowanie krytyki własnych rozwiązań.

Dobrym antidotum jest kontrybuowanie do dużych projektów open source, praca z dużą liczbą ludzi, konfrontowanie opinii i rozwiązań. Doskonale otwiera to oczy na własny poziom samorozwoju, uczy pokory i ogólnie rozwija programistę w dobrym kierunku. Należy wspomnieć, że praca w projektach OSS nie jest zarezerwowana dla “wymiataczy”. Github oraz inne platformy ułatwiają znajdowanie zadań dla ludzi o różnym poziomie znajomości języka/produktu, a nawet promują to w bardzo atrakcyjny sposób (np. Hacktoberfest).

10. Co musiałoby się stać, żeby PHP stracił na popularności?

Odpowiada Łukasz Nowak, PHP & NodeJS Developer w Assertis:

Głównym zagrożeniem w tej kwestii musiałoby być chyba to, że community/społeczność przestałoby rozwijać kolejne wersje tego języka. Mimo tego nadal dość sporo stron internetowych i aplikacji biznesowych używa tego języka, więc nadal będą wymagać one utrzymania i rozwoju.

Dodatkowo z moich obserwacji wynika, że od paru lat na fali wzrostowej jest wykorzystanie Magento, WordPress’a czy Drupala to też rosnący kawałek tortu na rynku developerów PHP, a skoro nadal powstają kolejne aplikacje przy użyciu tych rozwiązań to PHP nadal będzie w czołówce popularnych języków.

Odpowiada Iwona Jóźwiak, Senior PHP & Magento Developer w Divante:

Nie wydaje mi się by w nadchodzącym czasie język PHP stracił na popularności. Wręcz przeciwnie, jest on coraz bardziej docenianym językiem, a popularne silniki webowe (oparte o PHP) stale się rozwijają i zwiększają popularność. To ogromna społeczność, która jest motorem napędowym rozwoju PHP. Niemniej każdy produkt czy usługa prędzej czy później zostają zastąpione czymś innym. Wydaje mi się, jednak że aby PHP zaczęło tracić na popularności, musiałyby powstać w oparciu o inny język/języki silniki, które zastąpiłyby te obecne, dobrze nam znane. Użytkownikom podoba się to ile mają one do zaoferowania w chwili obecnej oraz to, że wciąż się rozwijają — próg wejścia jest więc bardzo wysoki.

Odpowiada Andrzej Precz, Senior PHP Developer w Transparent Data:

PHP straciłby popularność, gdyby społeczność i użytkownicy całkowicie i solidarnie się od niego odwrócili. Zapewne kiedyś każdy język umrze, jednak PHP to nie grozi jeszcze przez długi czas. Zwyczajnie ma zbyt silną i niezagrożoną pozycję w świecie blogowo/ecommercowym. A od nowych wersji, w których kładzie się duży nacisk na wydajność, widać wyraźnie ewolucję tego języka w stronę szybkiego, stabilnego i nowoczesnego narzędzia programisty.


Zdjęcie główne artykułu pochodzi z unsplash.com.

najwięcej ofert html

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Nowy Ład
Nowy Ład dla programistów