|

Trei cărți pe care mi le-aș trimite înapoi în timp, pe când eram student

Un bun prieten din timpul facultății, și-a propus un experiment. 

Dacă în timpul vieții lui va fi posibilă călătoria în timp, el își propunea să se întoarcă în timp, la data de x la ora y, la căminul studențesc unde locuia și să bată de trei ori la ușă. 

Experimentul a reușit. Am stat amândoi la pândă în mica cameră de cămin universitar. Ora a trecut, nici o mișcare la ușă. 

Concluziile: fie nu s-a descoperit întoarcerea în timp, fie nu a avut el acces la această tehnologie, fie s-a răzgândit pe parcurs și și-a anulat experimentul.

Gândindu-mă în urmă la această aventură, mi-am pus întrebarea: dacă aș fi în postura de a mă întoarce în timp și m-aș duce la ușa căminului în spatele căruia doi studenți entuziaști așteptau cioc cioc la ușă, și le-aș lăsa trei cărți, care să îi ajute la început de carieră în programare, care ar fi acestea?

Dar înainte, pentru a înțelege de ce am ales aceste trei cărți, aș vrea să schițez viziunea și recomandarea mea pentru a clădi o carieră solidă în IT. 

Primul punct – Fundația bună

E un principiu general pe care l-am văzut validat în toate aspectele vieții: nu poți să ai rezultate constant bune dacă nu investești timp și energie în lucrurile esențiale din acel domeniu.

Nu poți ajunge profesionist pe scurtături. Întotdeauna seceri ceea ce semeni. 

Dacă înveți lucruri ușoare, superficiale, nu te aștepta să fi selectat ca și expert, majoritatea programatorilor știu lucrurile ușoare, vei fi ca un strop într-un ocean.

Construiește de la început o fundație solidă, și o să fie tot mai ușor să adaugi pe ea lucruri noi.

Al doilea punct – pași concreți, mici și siguri, practică ceea ce înveți

Programarea este o carieră care îmbină creativitatea cu abilitățile practice. 

În esență, a fi programator înseamnă a crea cod, a scrie programe care să rezolve probleme reale. 

Aplică practic cât de repede posibil orice informație teoretică pe care o acumulezi. Experimentează practic, nu rămâne doar la a citi teorie. 

Teoria fără practică e rețeta sigură pentru uitare și înțelegere superficială a ideilor. 

În programare, experimentarea e simplă, înveți bazele unui limbaj de programare și scri cod.

Al treilea punct – IT ul nu este numai despre a sta toată ziua cu capul în computer

Ca și în orice alt domeniu, oricât ai fi de bun, dacă nu reușești să îți dovedești valoarea, să îți prezinți calitățile, să îți vinzi bine abilitățile, cariera ta va avea de suferit. 

Vei rămâne în urmă salarial și ca poziție în companie în comparație cu cineva care poate nu e așa de bun tehnic dar știe să ‘dea din coate’ cum am spune. 

De obicei oamenii buni de gură sunt remarcați mai repede decât cei care stau în banca lor și nu zic nimic.

De aceea e esențial să investești și în dezvoltarea abilităților tale de comunicare și sociale.

Bun, acum pentru că avem un plan pentru a ajunge la o cariera de succes, haideți să ne întoarcem la cele trei cărți.

Să începem cu prima carte

Primul lucru pe care trebuie să îl stăpânească un programator la început de drum este un limbaj de programare. 

Limbajul de programare îți va permite să exprimi în mod practic algoritmul pe care îl ai în minte și vrei să îl implementezi. 

Cu cât stăpânești mai bine un limbaj de programare cu atât e mai ușor și mai natural să îți exprimi conceptele într-un program. 

Prima carte pe care aș recomanda-o este “Effective Java” scrisă de Joshua Bloch.

“Effective Java” Nu e o carte care să te învețe Java de la zero, pentru a o citi trebuie să ai minime cunoștințe de programare. 

Joshua Bloch a câștigat cu această carte premiul “Jolt Award” in 2001.

Poate părea o carte antică, dar lucrurile de baza din limbajul Java sunt aceleași, și în plus există o a treia ediție publicată in 2017.

Cartea te va ajuta să stăpânești cele mai importante concepte ale limbajului java, amintesc aici doar câteva:

  • crearea obiectelor
  • conceptul de Generics
  • Enums și Annotations
  • Lambdas și Streams
  • cum să faci designul metodelor
  • câteva concepte generale de programare (scope of variables, interfețe vs reflection, librarii, naming conventions)
  • concurența (cartea prezintă si beneficiile folosirii multithredingului introdus in versiunile recente cum ar fi executors, tasks)

Pentru a citi cartea Effective Java e nevoie de timp si experimentare, alocă-ți timp să exersezi pentru fiecare capitol conceptele prezentate. 

Chiar dacă ști teoretic cum se bate un cui, doar după ce ai bătut mii de cuie o sa le poți bate cu ușurința unui profesionist, fără să stai prea mult pe gânduri de unde e mai eficient să apuci ciocanul de coadă, sau să te temi că îți învinețești degetele.

Effective Java poate fi citită în 15-20 de ore, dar ca să ai timp și pentru experimente, aș sugera să îți aloci 30 de ore (la o rată de 2 ore pe zi asta ar însemna 2-3 săptămâni)

Trecem la  cartea a doua 

Cu cât învăț mai multe despre programare, cu atât înțeleg că a scrie cod de calitate este o artă, asemeni compozițiilor muzicale sau scrierii unei cărți bune.

Cu toții vedem că nu e suficient să ști notele muzicale sau să cânți la un instrument pentru a putea compune o piesă muzicală de valoare. 

La fel nu e suficient să cunoști cuvintele unei limbi pentru a scrie cărți bune.

Tot așa e și în programare – nu e suficient să cunoști un limbaj de programare pentru a scrie cod de calitate. 

Dar ce înseamnă cod de calitate? 

S-ar putea să avem impresia că ne putem defini singuri standardele de calitate. 

Dacă scriu cod care îmi place mie cred că lucrurile merg într-o direcție bună. 

A doua carte pe care aș recomanda-o este Clean Code scrisă de Robert C Martin, supranumit și Uncle Bob.

Această carte și-a dovedit de-a lungul timpului valoarea prin faptul că a reușit să extragă cele mai importante caracteristici și principii care stau în spatele unui software de calitate. Principii care rămân neschimbate dincolo de evoluția tehnologiilor sau a unor trenduri trecătoare.

Clean Code – e una din cărțile pe care le am fizic în biblioteca mea și recomand tuturor programatorilor cu care interacționez să o cumpere. 

E una din acele cărți pe care simt nevoia să o revăd la 2-3 ani.

Uncle Bob este un autor practic, cărțile lui sunt pline de exemple clare care explică în mod evolutiv cum se ajunge la un cod de calitate. 

Autorul se lasă intenționat să cadă în capcanele începătorului, apoi ne arată prin transformări succesive cum ajunge la o variantă mai curată si robustă. 

Cartea pornește cu definirea conceptului de “clean code” într-un mod destul de pragmatic și realist.

Uncle Bob ne spune așa:

“Cărțile de artă nu promit să te facă artist. Tot ce pot ele să facă, e să îți ofere câteva unelte, tehnici și procese de gândire pe care alți artiști le-au folosit. Tot așa, nici această carte nu poate promite să te facă un programator bun. Nu poate să îți dea simțul programării. Tot ce poate face, e să îți arate procesele de gândire ale programatorilor buni, tehnicile și uneltele pe care ei le folosesc”

Cartea e împărțită în trei părți. Prima parte descrie principii, patterns și practici pentru a scrie “clean code”. Se prezintă concepte mai ușoare cum ar fi “nume”, funcții, comentarii, formatări.

Apoi urmează concepte mai avansate cum ar fi Boundaries, unit teste, sisteme, concurență, iar în capitolul final se agregă toata lista de heuristics și smells folosite pe parcursul cărții.

Deși cartea e scrisă la un nivel accesibil, autorul ne avertizează:

“Să înveți să scri ‘clean code’ este o muncă dificilă. Înseamnă ceva mai mult decât a cunoaște teoretic principiile și practicile. Trebuie să transpiri muncind în jurul acestor concepte. Trebuie să le practici, și să te vezi greșind. Trebuie să îi observi pe alții cum practică această artă și cum greșesc și ei. Trebuie să îi vezi cum se împiedic și cum se întorc înapoi să înțeleagă pașii greșiți. Trebuie să îi vezi agonizând când iau decizii și să vezi prețul pe care îl plătesc pentru deciziile greșite.”

“Clean Code” poate fi citită în 12-15 de ore, dar ca să ai timp pentru analiza exemplelor și aplicare practică, aș sugera să îți aloci 30 de ore (la o rată de 2 ore pe zi asta ar însemna 2-3 săptămâni)

Trecem la ultima carte.

De multe ori ne asumăm inconștient imaginile pe care ni le proiectează societatea și cultura care ne înconjoară. 

Dacă ne gândim la programatori, prima imagine care ne vine în minte este un individ concentrat care stă în fața unor monitoare și scrie toată ziua cod.

Mulți dintre programatorii pe care i-am întâlnit sunt persoane mai înclinate spre introverție, care nu au o dorință prea mare de a-și dezvolta abilitățile de comunicare. 

Dar până la urmă poți să imi spui: “Și ce? Asta e firea mea! Nu mă interesează să mă forțez să fiu ceea ce nu sunt”. 

Așa e, însa lipsa abilităților în comunicare și de socializare te vor costa foarte mult în carieră.

Și aici ajungem la cartea a treia “How to win friends & influence people”

 în română tradusă ca “Secretele Succesului” scrisă de Dale Carnegie.

În introducere, autorul face o afirmație șocantă. Carnegie spune că și în domeniile profesionale tehnice sau de inginerie, succesul financiar al unui individ e corelat DOAR în proporție de 15% cu abilitățile lui tehnice, restul de 85% este influențat de abilitățile umane, de personalitate și de capacitatea de a conduce alți oameni. 

Autorul povestește cum mulți dintre cei care au participat la cursurile lui veneau și îi spuneau ca după ani de zile de observații, au înțeles că cei mai bine plătiți angajați nu sunt cei care știu cel mai bine meserie, aceștia au salarii medii. 

În același timp au observat că cele mai bine plătite persoane erau acelea care pe lângă abilitățile tehnice au în plus și abilități de a-și exprima ideile, să își asume conducerea și să trezească entuziasm în jurul lor.

Cartea este fascinantă, plină de exemple din trecutul oamenilor de succes, și în același timp o carte structurată care oferă o direcție clară în dezvoltarea abilităților sociale și de comunicare.

Pentru o astfel de carte ne-tehnică, am zis să cer părerea ChatGPT-ului, și l-am întrebat “de ce ar trebui să citesc cartea secretele succesului?

Iată ce mi-a răspuns:

<<

Desigur, ar fi o idee excelentă să citești cartea “Secretele Succesului” pentru a-ți îmbunătăți abilitățile de comunicare, pentru a construi relații mai bune și a avea mai mult succes în viața personală și profesională. Cartea oferă sfaturi practice și exemple despre cum să te conectezi mai bine cu oamenii, să înțelegi perspectivele lor și să-i inspiri să acționeze.

Indiferent dacă ești lider în afaceri, vânzător, profesor sau simplu doritor să-ți îmbunătățești abilitățile sociale și să construiești conexiuni mai bune cu ceilalți, ideile din această carte ar putea să fie de mare ajutor. Principiile din carte sunt încă relevante astăzi, după mai bine de 80 de ani de la publicarea inițială și te pot ajuta să comunici mai eficient, să construiești relații de încredere cu ceilalți și, în cele din urmă, să îți atingi obiectivele prin colaborarea cu ceilalți.

>>

Chiar dacă nu sunt de acord cu toate ideile din cartea Secretele Succesului, mi-aș lăsa-o la ușa căminului studențesc. Citind această carte am reușit să înțeleg mai bine mecanismele interacțiunii dintre oameni. 

Le-aș rezuma toate în regula de aur a creștinismului “Comportă-te cu ceilalți așa cum ai vrea să se comporte ei cu tine”

Acestea sunt cele trei cărți pe care daca m-aș întoarce în timp, mi le-aș lăsa mie, celui de la început de drum, la ușa căminului studențesc să ma ajute în cariera de programator.

Dacă ai și tu cărți preferate pe care le-ai recomanda și altora la început de drum, adăuga-le în comentarii.

În încheiere, că tot l-am implicat și pe Chat GPT în poveste, am zis să îi cer să îmi spună o glumă cu cioc cioc despre mine bătând la propria-mi ușă.

Iată ce a născocit:

<<

Sigur, iată o glumă cu “cioc cioc” pentru tine:

Cioc cioc.

Cine e?

Eu sunt tu, bătând la ușa ta pentru că am uitat cheile în casă.

Ha ha, sper că ți-a plăcut!

>>

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *