Kamo nakon PHP-a?

October 25, 2008 – 9:30 am

Ozbiljan ste PHP developer već par godina (dotakli ste se nekoć davno malo i C++-a ili Jave, ali bliski susret vas nije oduševio), ali većinom radite standardne web stvari, upili ste svo znanje koje ste mogli i želite dalje, dosadilo vam je biti fah-idijot i željeli biste naučiti nove, zanimljive stvari i proširiti vidike?

Istu dilemu našao sam jednom blog postu (via Hacker News), napisao komentar, a onda u Berislavovoj maniri odlučio da stvar zavrijeđuje i poseban post.

Dakle, želite above & beyond PHP-a? Preporučam vam nešto od slijedećeg:

naučite / ponovite C
I to ne C++, nego baš C, portabilni assembler, s kojim ćete se (ponovno) upoznati što je to računalo, kako rukovodi memorijom i kako izvršava instrukcije koje mu date. Dobro proučite rekurziju, pointere (onima koji prezrivo frkću: void (**foo)(int, char **) = &main; ftw :-), kompajlirajte dio koda (bez optimizacije) u assembler i proučite cdecl, petlje i ako/onda blokove)
ako već niste, upoznajte se s raznim algoritmima i strukturama podataka
Svi već znaju sve o linkanim listama, ali proučite i algoritmime na grafovima, balansirana stabla, bloom filtere, DHT-ove i ostale čudne stvari)
naučite Python (ili Ruby)
Ne samo ispisivati “hello world” ili isprogramirati igricu pogađanja brojeva. Naučite što su to dekoratori, generatori, razlika između *args i **kwargs, list comprehensioni i razlika između klasičnih i new-style klasa (u Rubyu, shvatite closure i razliku između metoda i poruka objektima). Provedite neko vrijeme s Twistedom i njegovim deferredima, napišite mrežni server ili dva…
eksperimentirajte sa data-mining algoritmima
Vrlo zanimljive stvari kriju se iza ovog vrlo dosadnog imena. Imate gomilu raw podataka, a vaš cilj je saznati nešto novo (i korisno) ih te gomile, dakle igrati se hackera-detektiva. Preporučam O’Reillyev Programming Collective Intelligence kao sidekicka.
pročitajte SCIP
Cijeli, od početka do kraja, radeći sve vježbe. Čak i ako nikad više u životu ne napišete niti jednu liniju LISP-a, zauvijek ćete biti promjenjeni. Knjiga je dostupna online, a postoje čak i video snimke predavanja (cijeli predmet/semestar).
napravite svoj kompajler
…ili virtualnu mašinu, koristeći LLVM, i usput naučite razliku između register-based i stack-based virtualnih mašina, razliku između AOT, JIT kompajliranja i interpretiranja, i štošta još
isprogramirajte kernel modul
Pisanje dummy filesystem drivera za Linux je lagani uvod u kernel programiranje pod Linuxom (a pogledajte i ovo)
naučite Haskell
Taman nakon što ste se navikli na dinamički-tipizirane jezike, uskočite u Haskell, naučite razliku između Bool->Int->IO() String i Bool->Int->String, naviknite se na type-inferrence, postanite ovisni o pattern matchingu i saznajte sve što niste željeli znati o teoriji kategorija
napišite svoj OS
Napišite svoj microkernel-based operacijski sustav, fokusirajući se na zanimljive stvari a koristeći gotove komponente za ono što vam se ne da ručno programirati.

Nadam se da ćete u gornjoj listi naći nešto zanimljivo za sebe. Čak i ako nešto od navedenog radite iz čiste zabave i nikad to konkretno ne iskoristite (ili ako ne dođete niti do pola knjige / projekta), novo iskustvo i novo znanje promjenit će vaš način gledanja na svijet i rješavanja stvari i u “običnijim” situacijama, npr slijedećem PHP projektu od kojeg zarađujete za život.

Još na kraju samo napomena da sam Python fan, a day job mi je alternirajuće C, PHP i Python programiranje, pa sam sigurno bar malo neobjektivan. Zato bih volio čuti i druge ideje za zabavne i poučne projekte, te vaše mišljenje o mojoj listi; komentari su otvoreni ;-)

  1. One Response to “Kamo nakon PHP-a?”

  2. Zanimljivo, 8 sati dnevno radim u PHP-u i baš i nisam stekao dojam da je moguće doći do toga da se iz tog područja ’stekne svo znanje koje se moglo’ - uvijek ima nešto novo za naučiti (npr. trenutno bi mi tu dobro došlo još dublje poznavanje Zend Frameworka, a i iskustvo sa ‘automated unit testingom’ bi mi bilo poprilično korisno), tako da…

    Ipak, ima nečeg u tvom postu - u posljednje vrijeme sam izvukao neke svoje stare C programe i počeo se ponovno poigravati s njima (Gtk je krivac za to što sam odabrao C, a ne C++). Isto tako, ovaj tjedan sam počeo ponovo upoznavati s pythonom - za to je kriva jedna backup skripta koja mi je zatrebala… :-D

    Sve u svemu - nekako mi se sve više čini da taj PHP baš i nije nešto najzanimljivije u čemu se može programirati i ako se netko želi nečim baviti u slobodno vrijeme, ovo navedeno u postu je jako, jako dobar izbor (barem koliko ja poznajem pojedina navedena područja - neka bolje, neka slabije).

    By Siniša Habek on Oct 25, 2008

Post a Comment