Sunteți pe pagina 1din 2

Ca în fiecare activitate există persoane mai bine sau mai puțin bine pregătite să o

facă. Timpul dezvoltă experiența însă asta e tot ce înseamnă să fii un programator
bun?

Nu limbajul de programare contează. Gândirea contează.


Am văzut că multă lume întreabă cu ce limbaj de programare merită să înceapă. Unii
au auzit că C++ e mișto, alții că Java e la modă sau că faci mulți bani cu PHP.

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.

De-a lungul timpului limbajul de programare să fie doar o unealtă. Un limbaj de


programare e mai bun decât altul într-o anumită situație. Alteori nu. Și știind
partea „teoretică” din spate, îți va lua oricum foarte puțin să înveți un alt
limbaj (câteva ore).

Înveți C++, o să înțelegi foarte repede și Java și PHP. Sau invers. Nu contează.

Și asta o să mă facă un programator bun?


Nu chiar. O să te facă un programator dar mai e ceva. Scurtăturile. Adică
matematică.

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:

Se cere suma a primelor 1000 de numere. Ca programator începi să calculezi 1 cu 2


cu 3 cu... Până la o mie.

Ca programator bun știi o „scurtătură”. Suma a n numere e n ori n + 1 pe 2. Adică


suma a primelor 1000 de numere este 1000 ori 1001 împărțit la doi, care e 1 001 000
/ 2 = 500 500.

Până și rezolvarea pe hârtie e mai rapidă decât să tot aduni numere.

Exact la asta e bună matematică. Nu învăța demonstrațiile. Învață formulele. Și nu


toate deodată. Una pe zi, una pe săptămână, formulele nu sunt un infinit. Sunt și
ele câteva. Însă dacă le știi (și nici măcar dacă le știi pe toate, doar câteva)
ești mai bun decât 90% din programatori.

Asta e tot, să știu formule de mate?


Mai este un singur lucru. Multe limbaje de programare au funcții predefinite pentru
diferite lucruri. Hai să zicem că un oarecare limbaj de programare are o funcție de
sortare a elementelor unui vector. Din vector = {1, 3, 2} zici sort(vector) și îți
scoate {1, 2, 3}. Gata, am terminat, ce mai vrei?

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ă.

Acestea sunt trăsăturile ce diferențiază un programator de un programator bun.


Scopul unui program este să rezolve problema cât mai rapid și nu de puține ori
știind o astfel de „șmecherie”, poți atinge acest scop.

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.

S-ar putea să vă placă și