marți, 8 aprilie 2014

Sfaturi pentru programatorii începători

sfaturi pentru programatorii incepatori
M-a provocat una lume acum vreo câteva săptămâni să dau câteva sfaturi tinerilor care își doresc o carieră în domeniul IT și mai specific, în programare. Aceste sfaturi sunt, probabil, lucruri care le-aș face și eu acum, dacă aș fi în ipostaza lor, dar cu experiența anilor acumulați în acest domeniu. Nu există o ordine prioritară pentru aceste sfaturi, puteți începe cu oricare și le puteți adopta într-o măsură mai mică sau mai mare, după cum vă simțiți mai confortabili, important este doar să încercați.
Așadar, să începem. Primul pas spre o carieră în programare ar fi dobândirea cunoștințelor de bază, de obicei se începe cu studierea limbajelor Pascal/C/C++, în liceu sau C/C++ la facultate. Daca ar fi să fiu iarăși în liceu, aș sări peste Pascal, aș trece direct la C/C++, asta deși am fost mare fan al limbajului Pascal. Aș aprofunda foarte bine tehnicile de programare, algoritmii, structurile de date(arbori, grafuri, liste, etc.).
După acest pas, urmează Programarea Orientată pe Obiecte (sau OOP - Object Oriented Programming) care este de o importanță majoră pentru orice programator. Trebuie foarte bine însușită și aprofundată. Este un ”must-have skill” pentru toate tehnologiile/limbajele principale: Java, .NET, PHP și chiar JavaScript.
Aș încerca să lucrez pe toate sistemele de operare disponibile: Windows, Linux/Unix, MacOS/iOS, Android, dar e bine ca măcar pe unul dintre ele să-l cunoști foarte bine, să-i afli secretele. Pentru fiecare sistem de operare găsești destule tutoriale și exemple pe net, așa numitele „HOW-TO”.
Ca viitor programator m-aș abona la revistele de specialitate, care din păcate, în loc să se înmulțească, devin din ce în ce mai puține. Personal, ca exemplu, vă recomand Today Sofware Magazine, deși unele articole pot părea greoaie pentru începători. De asemenea, fiecare tehnologie majoră pe care vă veți axa, și aici mă refer la Java, Microsoft .NET, PHP, etc. are propriile reviste dedicate. Rămâne să le găsiți voi singuri.
Alt sfat ar fi achiziționarea și lucrul cu un al doilea monitor. Vă permite o mai bună partajare a spațiului de lucru și vă îmbunătățește productivitatea. Acest lucru vă este necesar mai ales în momente în care faceți depanarea programelor software (debugging). Ca programator trebuie să fii un expert în depanare, indiferent de tehnologia folosită. Încercați să aprofundați cât mai bine și acest domeniu.
Vă recomand de asemenea să reduceți din timpul alocat televizorului ( filme, seriale tv, emisiuni de divertisment). Multe din ele sunt foarte tentante pentru că în jurul lor se crează un buzz social și vreți să aveți despre ce discuta cu prietenii, să fiți la curent cu tot ce mișcă. Puteți aloca acest timp pentru parcurgerea unor tutoriale gratuite, de pe internet, pentru anumite tehnologii care vă pasionează. Sau puteți lucra la unul sau mai multe mici proiecte pe care să le puteți prezenta ca portofoliu în momentul în care doriți să vă angajați. Nu trebuie să așteptați să vă dea cineva o temă, căutați-o voi, nu trebuie să inventați ceva anume, puteți inclusiv încerca replicarea unei aplicații existente, dar fără a avea la dispoziție codul sursă.
Tot legat de această treabă, evitați întreruperile atunci când învățați/studiați/lucrați. Nu lăsați pe nimeni să vă deranjeze. Închideți telefonul, skype-ul, messenger-ul, facebook-ul și orice alt canal de comunicație care vă poate întrerupe din ceea ce faceți. Dacă stați la cămin și/sau nu vă permiteți luxul de a sta singur în camera, puteți încerca să mergeți în oraș, într-o cafenea liniștită care dispune de WiFi.
Cumpărați cărți tipărite, nu doar în versiunea electronică. Eu nici acum nu m-am acomodat cu versiunile digitale. Îmi obosesc ochii prea repede și capăt o stare de somnolență. Poate pentru voi e mai ușor. N-am încercat încă varianta cu un eBook Reader/Kindle. E bine totuși să ai și versiunea digitală, e mai ușor de cărat :) .

tehnologii

În momentul în care vă axați pe o anumită tehnologie, verificați care sunt cei mai apreciați oameni din domeniu. De obicei, aceștia sunt autori de cărți de specialiate, speakeri la diverse conferințe, bloggeri, etc. Cu majoritatea puteți interacționa pe rețelele de socializare (Twitter, Facebook, LinkedIn, etc.). Este un canal bun pentru a putea fi la curent cu ultimele noutăți din branșă pentru că ei vor partaja către voi  orice informație de bună calitate, bune practici și alte lucruri utile.
Ca studenți, puteți să vă înscrieți la diferite stagii de practică (despre unul din ele am scris aici) puse la dispoziție de firmele software din localitate, dar trebuie să știți că de cele mai multe ori doar cei mai buni studenți vor fi acceptați. Asta presupune să aveți un bagaj de cunoștinte suficient de mare, să fie peste nivelul a ceea ce se predă în facultate. De aceea nu trebuie să așteptați totul de la profesorii voștrii. Trebuie să aveți inițiativă. Nu mergeți la facultate doar ca să luați o diplomă, nu vă va ajuta prea mult la final, ci mergeți ca să cereți cel mai dificil proiect și să vedeți dacă sunteți în stare să îl faceți.
Nu ezitați, dacă aveți posibilitatea, să lucrați în echipă. Vă vor trebui niște cunoștințe ceva mai avansate despre software-ul de control de revizuire (revision control software), dar cu puțină răbdare, veți reuși.
 Iar ca ultim sfat vă recomand să mâncați sănătos, să faceți cât mai multă mișcare, aveți nevoie de un organism puternic și rezistent pentru că urmează o lungă perioadă din viață în care veți fi „țintuiți” pe scaun.

7 comentarii:

  1. Pragmatic si la obiect. Din experienta ta de pana acum, crezi ca are vreo importanta varsta la care te apuci sa faci programare? Adica din punctul de vedere al individului, dar si al angajatorului.

    RăspundețiȘtergere
  2. Meseria de programator este la fel ca una de doctor, presupune parcurgerea unor stadii preliminare, acumularea de cunoștințe și de experiență. Cu cât te apuci mai târziu de programare, cu atât îți va fi mai greu să progresezi pe urmă, iar firmele de programare își doresc oameni cât mai tineri și cât mai experimentați și cu putere de muncă, pentru că, față de multe domenii, aici principala resursă de venit este omul, produsul minții sale atât calitativ cât și cantitativ. Diferența față de medicină, să zicem, este faptul că programarea este un domeniu dinamic, viteza cu care se schimba regulile și tehnologiile este mult mai mare, procesul de învățare este unul perpetuu. Mă aștept ca până ajung la pensie să apară alte limbaje noi, alte tehnologii revoluționare, milioane/miliarde de framework-uri și biblioteci software, mă aștept să nu mai existe Windows sau Android, chestii de genul ăsta. Meseria de programator este una grea, dar este și foarte frumoasă, îți poate aduce foarte multe satisfacții.
    In general, ca student sau ca proaspăt absolvent, poți fi angajat într-o firmă de software development pe poziția de Junior Developer. Ca să ajungi Junior Developer, trebuie să iei în considerare majoritatea sfaturilor enumerate mai sus, plus încă unul care îmi vine acum în minte: să cunoști foarte bine (scris/vorbit) o limbă străină.
    Ca să concluzionez, cred că vârsta optima de angajare este undeva începând cu 21-22 de ani (cam spre sfârșitul anului 2 de studii universitare), deși unele firme deja fac prospecțiuni printre liceeni. Eu m-am apucat de programare în clasa a 7-a, învățând BASIC pe HC-85 (s-ar putea să nu-ți spună nimic numele astea), însă abia după vîrsta de 30 de ani m-am „copt” cum trebuie. Însă asta e cu totul altă poveste și nu vă sfătuiesc să faceți ca mine. :)

    RăspundețiȘtergere
  3. Ei bine eu am 17 si sunt clasa a 11 a crezi ca e tarziu daca ma apuc serios de acum? Deja stiu o mare parte din programarea in c++ si anume ce ni sa predat la scoala si in legatura cu tutorialele deja urmez unele in majoritatea timpului liber iar windowsul zic eu ca ip cunosc destul de bine iti astept opinia toate cele bune

    RăspundețiȘtergere
  4. Niciodat nu cred ca e prea tarziu sa te apuci de programare atata timp cat esti motivat si iti place.

    RăspundețiȘtergere
  5. m-am apucat din clasa a 9 a datorita profei de informatica, nu stiu cum a reusit sa ma atraga in "capcana", mai ales ca nu m-a ajutat cu nimic la olimpiade sau in proiecte(ii multumesc)
    Cel mai bun sfat pentru un incepator(inclusiv eu) este sa incepi cu C++ sa inveti cum merge treaba si dupa sa mergi spre C# dupa unity ca sa te simti bine facand ce iti place dupa schimbi pe Java ca seamana umpic si gata.... + alte 14 mici limbaje ca sa... ai dosar si ca sa iti faci treaba fara complicatii, pentru ca din ce vad eu acum fiecare limbaj e cu o treaba anume. Bafta

    RăspundețiȘtergere