Co przeczytać by zostać programistą WWW piszącym w PHP?
20:07, 15 września 2010 roku
| Notka, OpiniePo wpisie o tym jak zostałem programistą kilka osób zapytało się mnie o więcej konkretów – jako, że konkretami są książki to poniżej krótka lista tych które stanowią zupełne podstawy PHP, SQL, Linuxa i Apache’a ( tzw. LAMP ). Po ich przeczytaniu powinniście znać słownictwo i programowanie w PHP na tyle, żeby móc umieć: napisać aplikacje rozwiązujące konkretne problemy, umieć przeczytać czyjś kod ( ze zrozumieniem! ), móc użyć gotowych frameworków i zrozumieć jak działają, no i mieć podstawy pozwalające na dalsze dokształcanie się w internecie.
Ja sam przerabiałem różne książki, z różnych serii wydawniczych i pisane przez wiele różnych osób. Do samego PHP4 miałem około trzech książek podstawowych i dwie lub trzy dotyczące bardziej zaawansowanych zagadnień. Potem nadszedł PHP5, ale wtedy już wiedziałem które książki kupować.
Najfajniej mi się czytało książki z serii Wrox, wydawane w Polsce przez Heliona.
Co programista powinien wiedzieć?
Według mnie samo PHP nie wystarczy. I mimo, że PHP uważane jest przez wielu za prosty i prostacki język ( głównie dlatego, ze “próg wejścia” jest niski – czyli wystarczy trochę wiedzy, by mój pisać skrypty PHP, które są wątpliwej jakości ), to jednak pozwala on na wiele konstrukcji używanych w językach bardziej zaawansowanych, takich jak C++, Java czy C# . Ale wojny językowe to osobny temat. Skupmy się na tym co programista wiedzieć powinien, aby umieć pisać kod dojrzały i profesjonalny. Tak, co by “zaawansowani programiści” mieli mniej powodów do naśmiewania się z developerów PHP ;-) Oto lista zagadnień:
Podstawy programowania ogólnie ( czyli znajomość mechanizmów, które każdy język programowania musi mieć, aby móc się nazywać językiem programowania ). Z definicji językiem programowania nazywa się taki, w którym można zapisać każdy algorytm. Matematycznie rzecz ujmując musi on być kompletny w sensie Turinga – czyli zgodny z modelem maszyny Turinga. Ale znów, ja nie o tym tu miałem.
W bardzo dużym uproszczeniu znaczy to, że trzeba znać instrukcje warunkowe, rekurencyjność i zapis/zmianę danych w pamięci. HTML, XML, CSS to nie są języki programowania, gdyż nie mają takich mechanizmów. Podstawy programowania opisują książki takie jak PHP5, Apache i MySQL. Od podstaw ( to specyficznie dla PHP – ale bardzo dobrze napisane ) oraz Programowanie. Od podstaw – trochę bardziej ogólna i oderwana od PHP, ale daje sporo jeżeli chodzi o wejście w “całe to programowanie”. Zajmuje się środowiskiem pracy, tym jakie problemy można napotkać po drodze i czemu jest to normalne ;-)
Często dużym problemem jest instalacja Apache’a i PHP tak, żeby wszystko działało jak należy – książki o podstawach PHP zawierają taką wiedzę. Aczkolwiek planuję na łamach tego bloga napisać poradnik o instalacji PHP i Apache’a pod Windowsem, jak również używając Linuxa lub jakiejś maszyny wirtualnej.
Algorytmy i struktury danych. Każdy program to algorytm – czyli zestaw działań które trzeba wykonać, aby stało się coś konkretnego i zdefiniowanego – czyli żeby otrzymać określony wynik. Tu również miałem kilka książek, ale i w tym przypadku Wrox wygrał Algorytmy. Od podstaw .
Podstawy PHP. Ten temat obejmuje książka o której wspomniałem wyżej – PHP5, Apache i MySQL. Od podstaw . W tym temacie znajduje się opis składni PHP, łączenia go z HTMLem, wywoływania przez Apache’a ( lub inny serwer WWW ). Poznanie podstawowych funkcji, pętli (for, foreach, while ) i instrukcji kontrolnych ( if, switch ). Komunikacji z użytkownikiem, pobierania od niego danych, itp. itd.
Programowanie obiektowe. Aby znać obiektowość w pełni radzę wziąć w ręce książkę o zaawansowanym programowaniu w Java lub C++, natomiast aby opanować podstawy zawarte w PHP5, polecam PHP5. Zaawansowane programowanie . Aktualnie pisanie kodu strukturalnie, to strzelanie sobie w stopę. I chociaż każdy od tego zaczyna, to lepiej, po opanowaniu podstaw, przejść do programowania obiektowego. Tutaj dowiedzieć się można co to są klasy, interfejsy, klasy abstrakcyjne, metody, hermetyzacja, dziedziczenie, implementacja i cała masa innych ciekawych słów, których definicję i sposób użycia znać trzeba.
xHTML i CSS. W idealnej sytuacji programista zajmuje się programowaniem, grafik tworzeniem grafiki, a webmaster/webdeveloper czy jak to się teraz nazywa, zajmuje się przygotowaniem grafiki dla programisty – czyli “pocięciem” jej i stworzeniem szablonu HTML, kawałków grafiki i plików CSS, a czasem nawet dołączeniem do tego AJAXa. Natomiast na początku, i aby własna twórczość nas nie odrzucała, przydaje się znać HTML i CSS ( zresztą podstawy CSS i HTMLa nikomu nie zaszkodzą ). Aby się tego nauczyć polecam tutoriale na w3schools lub CSS. Projektowanie profesjonalnych stron WWW .
JavaScript i AJAX. Na dokładkę zostaje “całe to Web2.0″ – czyli jak zrobić, żeby strona była bardziej jak aplikacja desktopowa. Do tego mogę polecić Head First JavaScript. Edycja polska (Rusz głową!) oraz Head First Ajax. Edycja polska (Rusz głową!) .
Head First to też ciekawa seria, chociaż dość specyficzna – nie wiem czy do wszystkich głów trafi jej forma przekazu. Co nie zmienia faktu, że są kompletne i, przynajmniej mi, dobrze się je czyta.
Oczywiście nie trzeba kupować wszystkich tych książek na raz. Dobrą zasadą jest wypróbować nowo nabytą wiedzę w trakcie czytania, a potem popisać trochę kodu używając nowo nabytych technik.
Miłego czytania, mam nadzieję, że ta lista pomoże komuś w zostaniu programistą aplikacji internetowych.
Powyższe linki mają w sobie mój kod z programu partnerskiego Heliona. Gdy kupicie książkę na ich stronie, to na moje konto zostanie zaliczona prowizja. Jeżeli komuś to nie odpowiada, niech przed zakupem skasuje ciasteczka w przeglądarce.
Dopisz się do RSS 2.0.
Możesz skomentować, albo trackbackować z Twojej strony WWW.
CooKiE | 16-września-10 at 6:44 po południu | Permalink
“natomiast aby opanować podstawy zawarte w PHP5, polecam PHP5. Zaawansowane programowanie”
A ja nie polecam. Tzn pierwsze 1/3 tej książki jest dobre – jest to wprowadzenie do obiektowości i wytłumaczenie podstawowych pojęć i mechnizmów. Ale kolejne 2/3 są to już bardziej zkonkretyzowane przykłady użycia obiektowości, które uczą pewnych konwencji, ale w na tyle pokrętny i odbiegający od praktyki sposób, że może się zakręcić w głowie ;-)
Szczegółów nie pamiętam, bo czytałem ją ho ho ho temu. Aczkolwiek nie jest to zbyt najnowsza pozycja, Może warto poszukać jakieś aktualniejszej. Chociaż sumie to PHP prawie stoi w miejscu od czasu wydania tej książki (wtedy była ver. 5 i teraz nadal jest ;) )
Piotr 'Zenobius' Baranowski | 17-września-10 at 5:10 po południu | Permalink
A masz jakąś inną książkę do polecenia z taką wiedzą?
Ja do niej podchodziłem mając już odpowiednie zaplecze obiektówki i doświadczenie z PHP 4 i jego obiektówką, więc może dlatego nie miałem z tą książką większych problemów.
Co do PHP stojącego w miejscu.. tia ;-) Nie no, trochę się zmieniło od wersji 5.0 do 5.2 .
CooKiE | 05-października-10 at 12:25 po południu | Permalink
Ja też nie miałem problemów. I wróć uwagę, że napisałem że sama nauka obiektowości jest w tej książce dobra. Ja mówiłem o kolejnych 2/3 książki (patrz wyżej).