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:

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.

Freelancer, programista php, wiecznie niezadowolony ze swojego kodu. Toleruje frontend, kocha backend, miłośnik integracji :)

  • Adam Dziendziel

    Świetnie się to czyta nawet komuś, kto już podstawy ma. O części źródeł w ogole nie miałem pojęcia :O

  • Sebastian Malaca

    To ja tak na szybko od siebie kilka linków dorzucę (co prawda nie tylko o PHP, ale warto śledzić):
    -> http://www.dzone.com
    -> http://www.dworld.pl/Blogsfera
    -> http://martinfowler.com

    No i jeszcze http://sebastian-malaca.blogspot.com 🙂

  • Spawnm

    Ale tego laravela na siłę tu wcisnąłeś 😀 Głośno o nim w necie, ale w ofertach pracy pustki. I jakoś mnie to nie dziwi.

    • thejw23

      Ofert laravela nie ma za wiele, ale na laravelu można się nauczyć jak teraz powinno pisać aplikacje, a nie jak to się robiło 5 lat temu. Jest do tego dużo lepszy niż np. start od razu do Symfony.

      • Spawnm

        Na laravelu jak pisać aplikacje? Lepiej nie 😀

        • thejw23

          ok, „w” 🙂

        • Tomasz

          a mógłbyś rozwinąć to myśl trochę ? Pytam poważnie, jakie są Twoje zastrzeżenia?

      • norzechowicz

        Ucz się „jak pisać aplikację” z Laravelem to niedługo będzie na proxy mówił fasada albo „Laravel Fasada” xD

  • gołąb

    Generalnie zgadzam sie z autorem. Sam robie rozmowy rekrutacyjne i z tego co obserwuje to siedzac dluzej niz 1,5-2 lata w tej samej skostniałej i betonowej firmie prigramista skazuje sie na wypalenie. Ostatnio byl u nas gosc z ponad 8letnim doswiadczeniem, znal kosmiczne zagadnienia ale nie wiedzial np jak korzystac z namespaców „bo u nas w firmie…”. Szkoda ze niektore firmy zatrzymaly sie w rozwoju 5 lat temu i kiszą dobrych programistów.

    • Spawnm

      I co z tego że nie znał namespejsów? Mógł też nie znać phpunit, gita i kompozera i innych nowych modnych zabawek. Jeśli przez te 8lat zajmował się logika, algorytmami itd. to brak wiedzy z nowinek uznał bym za nieistotny. Firma ogranicza jeśli każe stale tworzyć podobny kod, gdzie programista nie ma szansy poznawać nowych algorytmów.

    • Sebastian Malaca

      Zgadzam się ze Spawnm, co z tego, że nie znał niektórych zagadnień? Jeżeli jest bystry to szybko nadrobi zaległości, a jeżeli jest rzeczywiście bystry, to jego osiem lat doświadczenia może naprawdę sporo wnieść do zespołu.

      Jestem zdania, że czasami nawet brak znajomości języka może nie być wystarczającym argumentem do definitywnego skreślenia kogoś z listy potencjalnych kandydatów, jeżeli jego doświadczenia i wiedza są na wysokim poziomie.

  • dfgbsdfgb

    trzeba chciec – no wlasnie jak widze zarobki roznych znajomych w polsce w IT w tym PHP to mi ich zal 🙁 naprawde to sa jakies psiepieniadze a ludzie czesto wyksztalceni, slecza dniami nocami ucza sie doskonala a na koniec pensja gorsza niz sekretarka 🙁

    nie mam jakos motywacji do zglebiania php gdy widze jak ogromna energia wlozona w wiedze jest deptana przy wyplacie

    • Sebastian Malaca

      Może po prostu trafili do nieodpowiedniej firmy?

      Z moich rozmów z programistami PHP raczej wynika, że nie jest wcale tak źle. Czy można więcej? Jasne, ale z pewnością nie zarabiają poniżej średniej krajowej.

      Ja niekiedy jestem wręcz zdania, że wielu zarabia nieproporcjonalnie za dużo w odniesieniu do ich wiedzy.

      • gasdfgasdf

        no ale co znaczy dzis zle lub dobrze, moja przyjaciolka 3 lata temu pracowala jako sekretarka od listow z pensja 5tys. brutto i miala jeszcze dodatkowy bonus za bycie kadrowa dla 20 osob, z 8h pracy dziennie

        pracowala moze 3 w porywach.

        to w takim razie programista php powinien miec lekko 3x wiecej, ma?

        cieszy mnie jednak ze jak mowisz jest pieniadz, moze tylko ja go nie widze

        • Sebastian Malaca

          Nie rozumiem tylko skąd wniosek, że sekretarka z założenia powinna zarabiać 3x mniej niż programista?

          Wszystko zależy od odpowiedzialności i ryzyk, które bierzesz na swoje barki oraz od obowiązków jakie masz wykonywać.
          Ktoś kto bierze odpowiedzialność (rozlicza się za ich pracę itp.) za 20 osób powinien zarabiać więcej niż osoba, za którą ktoś bierze odpowiedzialność (np. Team Leader, Project Manager).

          Takie przeświadczenie, że programista dużo zarabiać powinien kończy się tym, że przychodzi na rozmowę osoba, która nie potrafi odpowiedzieć na większość pytań i chce na rękę 5 netto.
          Pensja programisty > Pensja sekretarki, to błędne założenie, ponieważ zarówno programista programiście nie równy, jak i sekretarki są różne i różne obowiązki mają.

  • Naprawdę dobry tekst. Od siebie polecam blog culttt.com, na którym jest dość długa seria artykułów o laravel:
    http://culttt.com/tag/cribbb/page/5/
    Mimo, że jest naprawdę sporo czytania, to są tam fajnie wytłumaczone „nowości” obecne we wszystkich nowych frameworkach, więc warto przeczytać nawet jeśli nie interesuje Was Laravel. Autor opisuje wszystko po koleji zaczynając od wytłumaczenia czym jest MVC, przez takie zagadnienia jak TDD, IoC, DI, Migrations, ORM, Seeding, Services, Entities, kontrolery RESTfull i dużo innych. Także bardzo polecam, sam jestem w trakcie czytania 🙂

  • gość

    Czyli 24h przed komputerem i zero życia prywatnego ? To ja już wolę zostać kierowcą ciężarówki. Przynajmniej po 8h pracy będę miał czas poczytać ulubione książki.

    • miguel123

      Pamiętaj, jeżeli tego nie lubisz/polubisz to nie pchaj się w to, bo stracisz tylko lata swojego życia.

  • Marek Drzewiecki

    Warto się jeszcze uczyć na programistę?
    Poza kilkoma latami doświadczenia wymaganymi praktycznie w każdym ogłoszeniu o prace są dziesiątki chętnych na to stanowisko.
    Jesli chodzi o przespanie to w każdej branzy jest tak że jak prześpisz kilka lat to później ciężko nadgonić zaległości

    • miguel123

      warto, aczkolwiek musisz się temu poświęcić „na początku”

Send this to friend

webmastah.weekly
Cotygodniowa porcja linków ze świata WEBDEV BEZ spamu, TYLKO samo mięcho!
Zobacz poprzednie wydania. Dołącz do 2 tysięcy webdeveloperów!
HTML5, CSS3, JS (React, Angular, Ember, Vue), PHP, SQL
webmastah.weekly
Cotygodniowa porcja linków ze świata WEBDEV BEZ spamu, TYLKO samo mięcho!
Zobacz poprzednie wydania. Dołącz do 2 tysięcy webdeveloperów!
HTML5, CSS3, JS (React, Angular, Ember, Vue), PHP, SQL