Jak uczyć się PHP?
|
Wiemy jak jest - trzeba zarabiać, ma być gotowe szybko i działać. Jeśli firma od lat tworzy na Kohana czy CakePHP to po co to zmieniać? Wszyscy są zadowoleni, może jedynie programista coś mruczy pod nosem. Bowiem pojawia się problem: rozwój własny. W przypadku programowania jest to bardzo ważne, bo patrząc wstecz, to co ~5 lat następuje tak duża zmiana, że kto ją przespał ma „problem”. 10 lat temu większość osób pisała strukturalnie lub ubogim OOP. 5 lat temu królowały frameworki MVC. Przesiadka z jednego na drugie to nie jest w miarę prosta do niedawna zmiana jednego frameworka na inny, gdzie znając MVC wiemy czego się spodziewać. A jeśli ktoś 5 lat temu programował w Kohanie to aktualnie ma problem z określeniem o co chodzi z DI, SOLID, Services, Entities itd. Przeczytanie definicji niewiele da, bo aby realnie zrozumieć i zastosować to w praktyce trzeba trochę więcej poczytać, popatrzeć i poświęcić czas na samodzielne podejście do tematu. Więc pytanie: jak się rozwijać?
Trzeba chcieć
To jest podstawa. Niestety, często już na tym poziomie można polec. Co z tego, że będę miał linki do świetnych artykułów, na github znajdę bardzo ciekawe projekty, codziennie będę dostawał porcję wpisów z blogów… jeśli nic z tym nie zrobię. Kod przeklikam w pół minuty, artykuły po nagłówkach i do jutra z tym mam spokój. Trzeba chcieć. Aktywnie chcieć, umieć znaleźć czas na czytanie, sprawdzanie, kombinowanie i co ważniejsze - na myślenie. Bo aby zrozumieć w praktyce SOLID trzeba niestety się wysilić i pomyśleć, a nie tylko przeczytać definicję.
Trzeba czytać
Warto mieć zasubskrybowane (Feedly?) RSS/blogi osób, które są na czasie. Dzięki nim my też będziemy. Uczmy się od lepszych od siebie, czytajmy co mają do powiedzenia, nad jakimi tematami się zastanawiają, o czym dyskutują, jakie rozwiązania stosują. A jeśli jakiś temat przewija się na X blogach, to wiedzmy, że „coś się dzieje”. Odpowiednie RSS pozwalają nam być na bieżąco i zwrócić uwagę na właściwe tematy. Warto zainteresować się Magazyn Programista bo są tam na prawdę ciekawe teksty.
Linki:
- 8thlight
- potencier
- sitepoint/php
- ferreira
- planeta.php.pl
- planet-php
- paul-m-jones
- brandonsavage
- Bottega
Trzeba śledzić
Warto śledzić znane osoby na Twitterze/Google+. Bardzo często trafiają tam rzeczy, których na blogu nie ma i nie będzie. Wszystkie drobne nowinki będą właśnie tutaj, a nie na blogach. Ba, sporo osób przede wszystkim udziela się tutaj, a nie na blogach.
Linki:
Trzeba kombinować
Github - rewolucja, która całkowicie zmieniła obraz masowej współpracy nad projektami OpenSource. Można na nim znaleźć niemal wszystko. Nic tylko szukać, kombinować, poprawiać - bawić się. Dzięki takim zabawom, np. przerabianiu starych, znanych nam bibliotek na Namespace/PSR-0/DI można poprawić swój warsztat. Nawet jeśli z tego powstanie kolejna biblioteka formularzy, to dzięki niej nauczymy się wielu rzeczy - a jeśli będzie np. zgodna z SOLID to już na prawdę jest się czym pochwalić. Jeśli nie mamy tego w pracy na codzień, to w ten sposób możemy uzupełnić braki. Może się uda wkręcić do ciekawego projektu i uczyć z dyskusji/commitów robionych przez lepszych od nas programistów? Bo sama wiedza to nie wszystko, trzeba umieć ją przełożyć na praktykę. Nie wystarczy znać definicje, trzeba wiedzieć jak to potem w kodzie zastosować - a aby to osiągnąć trzeba ćwiczyć i kombinować. Doskonale do tego nadają się micro frameworki.
Trzeba bywać
webMASTAH | CAMP, PHPcon, 4Developers, meet.js, PHPers, meet.php, liczne barcampy… Okazji do spotkania się z osobami, które wiedzą więcej od nas jest na prawdę dużo. Część jest płatna, ale nie oszukujmy się - 280 zł za 3 dniowy PHPCon to nie jest dużo, ba, to śmiesznie mało. A moim zdaniem każdy kto zawodowo programuje w PHP powinien chociaż raz na PHPCon się wybrać. Jeśli serio myśli o architekturze aplikacji, to 4Developers na pewno mu się spodoba. Jeśli ktoś absolutnie nie ma tych ~300 zł to zawsze zostają barcampy i inne darmowe spotkania. Jeśli ktoś mieszka daleko i go nie stać na dojazd, zostają relacje na żywo (np. PHPers). I oglądając relację na żywo warto zastanowić się co powinienem zrobić, aby stać mnie było raz do roku na wydanie 300 zł na zawodową konferencję.
Trzeba oglądać
Warto zainteresować się youtube/vimeo, bo tam można znaleźć bardzo dużo nagrań z prelekcji na wszelakich konferencjach. Na prawdę dobrych prelekcji, które warto obejrzeć i zastanowić się nad nimi, wyciągnąć wnioski - np. Architecture: the Lost Years i inne „by Robert C. Martin”. Tutaj wraca punkt 1, trzeba chcieć. Nie wystarczy samo obejrzenie filmików. Jeśli nie zastanowimy się jak treść prelekcji możemy przełożyć na naszą codzienną pracę, to nic to nie da. Równie dobrze można włączyć playlistę i wyjść z pokoju. Do oglądania są też odpłatne screencasty, przeważnie związane z konkretnym tematem i wałkujące go przez godzinę. Czy warto? Trudno ocenić, często to samo można wyszperać w google w tutorialach itp. Do wyjątków należy Destroy All Software - odcinki są krótkie, konkretne, poruszające na prawdę ciekawe aspekty programowania. Dużo jest o Rails’ach, ale zdecydowana większość to tematy uniwersalne typu wzorce, testy, git itd. I autor na prawdę ciekawie opowiada, próbka jest na WAT 🙂
Linki:
Warto inwestować w książki
Na prawdę warto. „Czysty Kod” to książka, która potrafi zmienić sposób myślenia na temat kodu. Na Leanpub jest bardzo wiele ciekawych pozycji. Tanie nie są. Niezbędne też nie. Ale może warto je mieć. „Advanced Architecture With Laravel 4” pozwala lepiej ogarnąć SOLID. Są książki poświęcone API, jeśli często je tworzymy mogą się przydać. Może warto porozmawiać w firmie, aby zaczęła kompletować biblioteczkę? Wiem, trudne jeśli firma nie widzi potrzeby rozwoju własnych programistów. Ale porozmawiać zawsze można, może się uda. Warto też sięgać po beletrystykę pokroju „Sztuka Kodowania”.
Linki:
Konkluzja
Tym co „przespali” na pewno nie jest łatwo nadgonić ostatnie 5 lat i aby to osiągnąć trzeba się jednak wysilić. Motywatorem może być fakt, że jeśli nadal będą programistami za 5 lat, to wtedy do nadrobienia będzie jeszcze więcej 🙂 Już teraz widać pewną tendencję i zapewne niedługo Laravel z Symfony zajmą 50% rynku frameworków. Już teraz widać, że coraz więcej developerów stawia na komponenty (głównie Symfony) zamiast pisania tego samego po swojemu i to raczej już nie ulegnie zmianie. Podobnie jak fakt, że każdy nowy framework będzie stawiał na IoC i inne dobre wzorce/praktyki. Chcąc być na czasie, a może zmienić pracę i lepiej zarabiać pracując przy ciekawszych projektach - trzeba się rozwijać.
Pamiętajmy: Profesjonalizm nigdy nie jest dziełem przypadku. Pasja rodzi profesjonalizm. Profesjonalizm daje jakość. A jakość to jest luksus w życiu
(Jacek Walkiewicz).
Na koniec zostaje tylko jedno pytanie: skąd na to wszystko brać czas…
Jeśli znacie inne ciekawe blogi/profile/książki/screencasty/magazyny/itd to śmiało zamieszczajcie w komentarzach linki.