Documente Academic
Documente Profesional
Documente Cultură
facă. Timpul dezvoltă experiența însă asta e tot ce înseamnă să fii un programator
bun?
Din fericire nici unul nu e mai șmecher decât celelalte. Șmecher e ce se află în
spate. Fiecare limbaj de programare are felul său aparte de a face un lucru. Ca în
cazul limbilor străine, unele sunt mai ușoare, altele mai grele. Pisică în engleză
e cat, în germană e Katze sau în rusă e кошка. Se citește koșca.
În primele două limbi e mai ușor de reținut, într-a treia e alt alfabet, nu că ar
fi greu de pronunțat. Așa e și cu limbajele de programare. Unele sunt mai ușor de
învățat, altele sunt mai grele. Însă în toate vei putea face aceleași lucruri cum
orice limbă vei folosi, vei știi cum să zici la pisică. Important e să știi despre
pisici sau cărți sau copaci căci altfel vei ști o limbă pe care nu o vei folosi
oricum.
Și atunci ce să învăț?
Din fericire programarea se învață punând în practică. Nu trebuie să tocești cărți
întregi sau să reții mii de termeni. Totul se învață practicând. Învață despre
variabile, vectori, matrici, structuri de date, funcții și proceduri, clase,
thread-uri, fork, pipes, sockets, învață despre sortare, căutare, despre pointeri,
liste înlănțuite, despre divide et impera, grafuri, backtracking, algoritmi
genetici, despre toate astea în orice limbaj de programare vrei.
Înveți C++, o să înțelegi foarte repede și Java și PHP. Sau invers. Nu contează.
Mate-naiba-matica?
Știu, am detestat-o dintotdeauna fiindcă a fost predată prost. Toată lumea cu
„matematica îți dezvoltă logica” sau ceva tâmpenie similară. La liceu scriam caiete
întregi de demonstrații ale unor lucruri predate pentru olimpici pe care nu le-am
folosit niciodată. Sau da?
Nimeni nu îți spune că demonstrațiile sunt gunoi. Să demonstrezi ceva care deja e
dovedit adevărat e inutil. Însă acel adevăr demonstrat este partea importantă. Uite
un exemplu clar:
Nu te grăbi. Sortarea unui vector are un algoritm optim. Mai bine nu se poate. E
demonstrat și răsdemonstrat. Și tu poți să-l înveți fără nici o problemă, dar oare
programatorul ăla care a scris funcția sort l-a folosit? Dacă el a folosit alt
algoritm mai încet?
Ca programator bun trebuie să știi că uneori nu totul este ceea ce pare, uneori
trebuie să scrii tu codul pentru ceva care deja există. Doar că e prost făcut.
De asemenea poți să ai două funcții care fac același lucru. La prima vedere nu
contează pe care o folosești. Însă poți testa. Poți rula fiecare funcție de un
milion de ori și să vezi cât durează.
Te poți trezi că prima durează 0.3 secunde și a doua ține 3 secunde și ceva. Da,
una e de 10 ori mai rapidă decât cealaltă.
Nu toată lumea caută astfel de oameni. Nu toată lumea apreciază că programul făcut
de tine durează cu o miime de secundă mai puțin decât unul făcut de altcineva. Iar
cel care caută astfel de persoane nu deseori este să dispus să plătească mai mult
pentru aceasta. Este o decizie personală și uneori asta înseamnă nu numai un salar
mai mare, ci și o viață mai bună pentru noi toți.