02nd Feb 2008

Tu te imbunatatesti?

De-a lungul anilor tehnicile de programare si algoritmii s-au imbunatatit considerabil de mult. Dar tu, ai invatat ceva de-a lungul anilor? Cat de mult ti-ai imbunatatit “tehnicile”?

Eu am invatat .php intr-un timp relativ scurt: o zi. Doar atat mi-a trebuit ca sa-mi dau seama singur mai apoi cum se fac treburi putin mai complexe. Si asta e valabil in multe limbaje de programare daca ai invatat alt limbaj de programare in trecut. In momentul cand invatam php facusem pascal de 4 ani si stiam programare structurala destul de bine inclusiv cum sa-mi imbunatatesc codul optimizandu-l. Invatasem si foarte putin C incat sa stiu despre tipurile de date si sintaxele functiilor cele mai des intalnite. Astfel a fost foarte usor de invatat il php.

De aici cel mai bun prieten mi-a fost documentatia php, care daca nu sunteti familiara cu ea atunci nu stiu cum puteti trai. In orice limbaj de programare cel mai bun prieten iti este documentatia, API-ul, help-ul sau cum se mai numeste si apoi Google. Dar uneori poate ce cauti fie se poate face altfel, mai usor de implementat, fie intr-o maniera putin mai complexa dar mai customizabila si usor de intretinut pe termen lung.

Din aceasta nevoie am inceput sa ma uit pe codurile (programele, scripturile) altora si am observat implementari inteligente sau am descoperit functii noi peste care nu dadeam in documentatie fiindca nu m-am gandit niciodata sa caut asa ceva. Printre codurile interesante s-au numarat cele la concursul InfoEducatie si proiecte open-source precum: phpBB, SPAW si Wordpress. Si nu numai din php ci si din Javascript sau CSS. Si aici nu vorbesc despre algoritmi sau portiuni intregi de cod ci de cum foloseau limbajul aferent pentru a realiza un lucru. (de ex: cautari folosind regexp, butoane de lungimi variabile in css, validari de campuri in js, etc)

Au fost momente cand cautam ceva nou sa invat sa ma perfectionez si implicit sa-mi micsoreze timpul destinat implementarii folosind diverse unelte. Primul lucru peste care m-am uitat cred ca a fost Smarty si a fost foarte fain. Cat am lucrat cu el. La un moment dat ajunsesem sa scriu mai mult cod in template-urile smarty sau in implementarea template-urilor decat in codul aplicatiei/sitului propriu-zis. Si apoi m-a traznit ca pot face un template engine cu implementare mult mai simpla si renuntand la sintaxa diferita smarty in favoarea codului php folosind functii deja existente in php. La fel cum functioneaza template-urile wordpress :).

PEAR a urmat si am inceput sa ma gandesc cum as putea sa integrez PEAR in orice site/aplicatie pe care o voi crea. Dupa cateva “lucrari” mi-am dat seama ca nu prea se merita in majoritatea aplicatiilor dezvoltate pe php ci doar in cele mai complexe si foarte modulare. Ce-i drept a fost perioada cand scriam foarte ordonat si totul avea o logica de nu-ti venea sa crezi. Dar cum limbajul nu incurajeaza OOP prin integrarea PEAR-ului, clasificarea functiilor si implementarea unei structuri logice atunci… de ce ai face-o tu, cand deja exista rails?

Si ajungem la faimosul Ruby on Rails (RoR), raiul oricarui programator web si probabil designer web cu a sa filosofie Model-View-Controller (MVC) care e minunata! Cand am auzit despre RoR am descoperit nirvana si cand am citit despre ce poate ruby si mai ales cum am avut orgasm intelectual. Ce a urmat dupa, poate in alt post.
Dar de la RoR am invatat multe inclusiv cat de simplu poate sa fie un template engine si cat de puternic, dar si cat de important e C-ul din MVC. Combinat cu ce am invatat din C# si Java despre limbaje event-based am reusit sa inteleg cum sa creez un site engine modular si usor de imbunatatit pe termen lung.

Ben Collins-Sussman amintea ca sunt 2 tipuri de programatori:

There are two “classes” of programmers in the world of software development: I’m going to call them the 20% and the 80%.

The 20% folks are what many would call “alpha” programmers — the leaders, trailblazers, trendsetters, the kind of folks that places like Google and Fog Creek software are obsessed with hiring. These folks were the first ones to install Linux at home in the 90’s; the people who write lisp compilers and learn Haskell on weekends “just for fun”; they actively participate in open source projects; they’re always aware of the latest, coolest new trends in programming and tools.

The 80% folks make up the bulk of the software development industry. They’re not stupid; they’re merely vocational. They went to school, learned just enough Java/C#/C++, then got a job writing internal apps for banks, governments, travel firms, law firms, etc. The world usually never sees their software. They use whatever tools Microsoft hands down to them — usally VS.NET if they’re doing C++, or maybe a GUI IDE like Eclipse or IntelliJ for Java development. They’ve never used Linux, and aren’t very interested in it anyway. Many have never even used version control. If they have, it’s only whatever tool shipped in the Microsoft box (like SourceSafe), or some ancient thing handed down to them. They know exactly enough to get their job done, then go home on the weekend and forget about computers.

Cu alte cuvinte primul tip de programatori sunt cei care cauta sa se “auto-cultive”, sunt la curent cu cele mai noi trenduri in programare si testeaza tot feluri de tehnologii noi. Celalalt este tipicul student roman iesit de la politehnica si se angajeaza ca programator java, isi ia leafa (grasa chiar), il mai trimite firma pe la un training si este fericit.

Eu nu as vrea sa ajung ca tipul numarul 2. Voi?

12 Responses to “Tu te imbunatatesti?”

  1. Cornelia Says:

    Ce frumos ai scris.

  2. Auras Says:

    lol :) merci

  3. Andrei Says:

    E ca si cum ai face 10 ani de medicina si ai ajunge vanzator de medicamente :D

    Go for the 20% :yes:

  4. Alex Says:

    20% is cool. Poate ca aia 80% fac bani bani bani, dar… z3r0 inovatie, o tuta plafonare.

  5. Mihai Says:

    auras as putea sa spun ca e tocmai invers: studentul de la poli s-ar putea sa fie inclus in aia 20% pentru ca are sansa sa se implice mai mult in proiecte open-source (defapt in jurul lor e open-source, poli promoveaza destul asta), si o alta chestie : chiar stiu persoane care .

    eu unul ma simt intre aia 20 si 80%

  6. Auras Says:

    E frumos ca vezi partea plina a paharului. Dar stii foarte bine ca nu toata lumea face facultate ca sa invete ci ca sa aiba ce face si sa primeasca o diploma la sfarsit.

    Si in proiecte open-source se implica cine vrea nu cine este de la poli.

  7. Mihai Says:

    da. si asta e adevarat.
    dar nici nu generalizam ca aia de la poli sunt incuiati (ma rog nu toti)

  8. fcb Says:

    e relativa chestia. tine si de posibilitatile fiecaruia. si e mai mult un fel de bell curve in loc de 80%-20%

  9. fcb Says:

    btw. submit nu merge pe ff :P

  10. Auras Says:

    merge dar pentru nu stiu ce motiv trebuie sa apesi pe partea superioara a butonului

  11. Snonseinodo Says:

    Hey!!! viagras
    :) There’s nothing illegal here but as a consumer, you think you are getting a good deal by having the drug of your choice at a much lower price. But unfortunately, you may get a different drug instead. You may still try purchasing at your own risk, but I advise you to do some research first.
    Bye !!

  12. cidegeconge Says:

    Hello

    As a fresh codetaku.com user i just wanted to say hi to everyone else who uses this board ;-)

Leave a Reply