Te-ai intrebat Cum sa devii un programator de succes, a trecut toata vara si totusi nu te-ai pus pe treaba? Aici gasesti solutia la o intrebare simpla cu raspuns complex. Pentru asta vom trece prin mai multe etape:))
Continutul articolului
Ce este un programator?
In primul rand, iti spun ca un tip care poarta un tricou negru AC/DC cu multa cafea intr-o cana mare nu e neaparat un programator. Da, e amuzant, dar acum hai sa ne focusam pe raspuns.
Un programator este o persoana care are un anumit nivel de cunostinte din cel putin un limbaj de programare, stiind sa scrie si sa inteleaga codul.
El stie sa lucreze cu structuri de date, algoritmi si are abilitati de a lucra pe un proiect, singur sau intr-o echipa. Poate fi angajat, freelancer sau chiar antreprenor (care la inceput se implica in crearea proiectelor, mai tarziu angajandu-si alti programatori care vor face treaba lui).
De ce abilitati are nevoie un Programator?
Programatorul e cel care invata cod in timp ce programeaza. Nu e cel care toceste codul, care nu cauta diferite solutii pe Internet si nici cel care intelege totul de la inceput.
Si un programator este tot un om, pana la urma. Are sentimente, temeri, bucurii, ambitii, chiar si zile grele.
Nu ajunge sa stii sa scrii cod!
Voi vorbi in continuare despre „soft skills„, adica acele abilitati care tin de inteligenta sociala si de inteligenta emotionala. Daca nu stim sa le stapanim pe acestea, oricat de buni suntem in programare, nu putem trece de interviu, asa ca te sfatuiesc sa urmaresti cu atentie aceasta secventa.
Cunostintele „hard skills” sunt cele tehnice, care au rol in acomodarea ta cu rolul de programator. Nu ajungi la acest tip de interviu pana nu stapanesti cele de soft skills.
Calitatile Soft Skills
Oricat de bun ai fi pe programare, ai nevoie de anumite abilitati interpersonale insotite de o atitudine pozitiva. Hai sa trecem la treaba si sa vedem ce tip de soft skill-uri sunt importante si unde le poti aplica in viata ta de (viitor) programator:
1. Comunicarea
Comunicarea este abilitatea nr.1 prin care ajungi sa creezi si sa mentii un ambient placut cu ceilalti colegi, asigurand ca treaba merge bine. Chiar daca esti angajat sau freelancer, tot exista minim o persoana cu care interactionezi. Comunicarea si empatia sunt abilitatile prin care te poti conecta cu persoana din fata ta, ii poti da un feedback constructiv, poti progresa fara frustrari si te poti focusa pe proiect.
Atunci cand vei intalni un programator junior sau o persoana cu cunostinte tehnice mai slabe, aminteste-ti ca si tu ai fost in papucii lui. Un alt caz poate fi existenta unui superior (manager) exagerat de nervos. Ce poti face e sa intelegi situatia in care acesta reactioneaza in acel fel (egoist…) si comunica-i calm, impersonal, ceea ce simti, iar apoi spune-i de modul in care crezi ca lucrurile ar functiona mai armonios. Stiu ca uneori alegem prea repede sa ne dam raspunsuri, chiar daca nici nu am pus o intrebare celuilalt. Comunicarea este factorul cheie atunci cand interactionezi cu alti developeri, testeri, alti colegi din diferite echipe sau clienti. Invata sa stapanesti tehnicile de comunicare eficienta!
2. Abilitatea de a invata rapid
Stiu ca o putem pune usor in categoria de hard skills, insa aici apare si particularitatea interactiva: curiozitatea. Mai simplu spus, inveti ceva ce iti place, citesti despre un lucru si te implici acolo unde iti pasa.
Un programator bun isi cunoaste limitele, stie ca timpul trece, iar tehnologia se schimba la fiecare secunda. Acum ca avem acces la Internet, oricand putem citi despre ultimele noutati din subdomeniul nostru. Daca iti place sa fii la curent cu inovatiile si iti face placere sa te documetezi, ti-ai ales job-ul potrivit. Atunci cand te documentezi, automat inveti mai rapid, cunosti notiunile, si foarte posibil ai automat nevoie de mai putin timp pentru a intelege ce cu ce se leaga.
3. Abilitatea de fi puternic mental
Aceasta abilitate e una cu care se confrunta programatorii-incepatori. Primesc multe mesaje de genul: „…Ma gandeam sa abandonez programarea pentru ca nu prea o intelegeam la scoala. Apoi am inceput sa ma uit la tutorialele tale si a avut sens ce ai explicat…”.
Iti pun aici ceva primit chiar recent pe email:
Ce a scris mai sus Andrei intr-un fel ma bucura (inseamna ca fac bine ceea ce fac)… in schimb ma si intristeaza si ma pune pe ganduri legat de metodele pedagogice mai mult sau mai putin folosite…
Revenim. A fi puternic mental, in programare, inseamna sa nu renunti si sa continui sa inveti, intre timp ce aplici posibilele solutii. Numai un programator de succes stie cate nopti nedormite a petrecut cu laptopul in brate. Uneori asta e costul unei cariere in IT, alteori e vorba despre disciplina. Timp de X saptamani, zilnic studiezi limbajul Y si il exersezi N ore pe zi, asta e disciplina si consecventa.
Nimeni nu a spus ca va fi doar usor, uneori vei fi nevoit sa gestionezi stresul, alteori vei avea zilne super incarcate.
4. Creativitatea
Este al doilea element care incepe cu litera „C” din viata unui programator. Pe locul I se afla cafeaua. Apoi, creativitatea, ea fiind necesara fie in rezolvarea unor bug-uri, bucle si alte provocari nemaiintalnite pana acum de catre programator.
Poate ai auzit si din alte surse ca aici, in programare, se aplica acel TOTB – Thinking Outside the Box, care inseamna sa gandesti in afara cutiei, sa lasi de-o parte obisnuita cale de a gasi solutii si sa cauti pe taramuri neexplorate. De aici vin si ideile grozave pe care le poti avea ca programator.
Atunci cand esti in pana de idei, ia o pauza, plimba-te cateva zeci de minute sau deconecteaza-te bucurandu-te de un joc (real, nu online) cu un alt coleg.
5. Abilitatea de a planifica
Sunt convins ca si tu cunosti mai multe domenii in care planificarea se afla in TOP, de la constructiile cladirilor pana la programul strict al sportivilor olimpici. Si aici, in programare, fara planificare esti pierdut. Proiectele medii si cele complexe au nevoie de o planificare clara, incepand cu punctul de cum va arata produsul la final. Dupa asta, programatorii creaza impreuna un program (orar) structurat de planificare a proiectului, abia apoi incep sa scrie primele linii de cod.
Abilitatea de a planifica te ajuta sa iti cunosti fiecare pas din viitor, astfel incat ceea ce faci la pasul n iti va fi util la pasul n+1. Vei avea un concept clar in legatura cu actiunile viitoare pe care le vei face si va fi mai usor sa estimezi efortul necesar si vei sti sa respecti deadline-ul – termenul limita. Unele proiecte pot dura o jumatate de zi, iar altele chiar ani intregi.
Un element cheie prin care iti poti imbunatati abilitatea de planificare este time management-ul. Iti este folositor sa lucrezi eficient si focusat pe un task, apoi sa iti iei o pauza in care te deconectezi complet de calculator, urmat iar de productivitate si focus. Poate te intrebi daca tu de fapt poti functiona pe multitasking… Da, poti, dar doar pe un termen scurt, costandu-te mult mai multa energie. Daca nu pui atentie maxima pe un lucru, cu siguranta iti va lua mai mult timp sa il termini si vei fi mai predispus sa faci greseli.
Ce salariu are un programator in Romania?
Am scris intr-un alt articol ca in Romania nevoia de programatori este tot mai mare si se anticipeaza ca acesta va creste si mai mult in viitor. Cererea mare se datoreaza si sistemului de educatie care este depasit (din pacate). Ideea principala este ca, fata de cererea mare de pe piata, exista o acoperire de aproximativ 60% de studenti cu profil in IT. Mai mult de atat, dintre acestia nu toti vor alege o firma de IT in Romania.
Piata de IT din Romania inregistreaza peste 100.000 de angajati pentru anul 2018, de 4 ori mai mult in comparatie cu anul 2008. Si salariile din IT cresc in mod constant. Asta e un motiv bun si corect sa alegi domeniul IT! Banii sunt o necesitate in orice casa, nu aduc fericirea, dar o intretin.
Programator senior
Un programator senior poate avea intre 8.000 si 13.000 lei/luna, designerii intre 4.500 si 9.000 lei/luna, iar programatorii arhitecti pot castiga intre 12.000 si 16.000 lei/luna. Pe langa aceste salarii estimative exista si multe exceptii ale caror salarii trec de pragul a 20.000 RON (4.200 EURO). Iti recomand sa urmaresti video-ul de mai jos pentru a afla mai multe despre salariile din domeniul IT din Romania:
Ai nevoie de matematica pentru a deveni programator?
Matematica, mai exact lipsa cunostintelor in detaliu din aceasta arie descurajeaza multi doritori. Pana acuma am primiti zeci de mail-uri in care sunt intrebat de persoane: Daca nu stiu matematica la nivel inalt, mai pot sa devin un programator?
Intotdeauna raman masca si totodata intrigat de limitarile care ni se transmit de cand suntem mici si auzim pe cineva „E nevoie de matematica, altfel nu supravietuiesti in IT”. Intr-adevar, ai nevoie de o baza, insa depinde de activitatea pe care o vei desfasura in programare, acolo afli de fapt ce nivel de matematica va fi necesar sa folosesti.
Reformulez: E nevoie de logica pentru programare!
Banc cu programatorul si sotia
Categoric, logica e cea care te ajuta in programare. Mai tarziu poti sa inveti sau sa aplici orice formula matematica, integrale, statistici, etc., dar daca logica nu e buna, vei cladi o casa fara fundatie.
Iti spun un banc de programatori, daca il intelegi, poti fi si tu unul din ei:
Sotia: Iubitule, cumpara te rog 5 oua. Daca au si rosii, ia 12.
Un om normal va ajunge acasa cu 5 oua si 12 rosii. Dar… un programator se va intoarce cu 12 oua.
Te-ai prins? :)) Asta e logica din spate!
De cata matemamatica ai nevoie?
Iti voi enumera acele cunostinte matematice de baza (care au ca fundament pana la urma tot logica) pe care totusi ar trebui sa le stii (sau sa le inveti in paralel cu programarea):
- Adunarea, scaderea, inmultirea si impartirea – Mai exact iti va fi folositor sa cunosti cand sa le aplici (din nou, logica din spate) si cum sa te verifici daca le-ai aplicat corect.
- Tipurile de variabile pentru numere – Sunt numerele naturale, numerel intregi si numerele reale, care apoi pot fi negative sau pozitive, plus sa stii sa aplici operatiile de la prima bulina. Iar deschizand acest subiect trecem la urmatorul punct.
- Sistemul de numeratie: zecimal, octal, binar si hexazecimal – Suna complex, insa e simplu dupa ce intelegi. Voi intra foarte putin in detalii si voi face mai multe analogii (ca sa-ti demonstrez cat e de simplu).
- Daca esti incepator, citeste in continuare.
- Voi exemplifica sistemul binar: e reprezentat prin 0 si 1. (Aici dupa 0 si 1 nu mai exista variantele 2, 3, etc). E ca si cum mai departe nu ar exista alte cifre, e doar alba sau neagra (fara gri, roz, albastru si alte culori). Acest sistem poate l-ai intalnit deja la tipul de date boolean: True sau False.
- Un alt sistem, de fapt primul, pe care il cunoastem de la 2-3 ani, este sistemul zecimal. Aici nu mai avem 2 variante, ca la cel binar, ci avem 10 variante, de la 0, 1, 2 la 9.
- Numerele pare si impare (si restul impartirii) – Pe scurt, sa intelegi logic ca 7 impartit la 2 este 3, cu restul 1, deci e numar impar. 10 este unul par. Operatia care afla restul impartirii este mod si e reprezentat in cod prin semnul %. Vrei sa aflii daca un numar, 91, e impar? Simplu, verifici folosind un IF daca 91 mod 2 este egal cu 1.
- Numerele negative si pozitive – Si multiplicarea lor, cum ar fi (-5) * (-3) = 15, un numar pozitiv care e rezultatul a doua numere negative.
Daca vrei sa inveti programare de la zero, poti INCEPE cu limbajul Python.
Din cate poti vedea, matematica in sine nu e specialitatea unui programator, ci e doar structura pe baza careia acesta formeaza o gandire logica. Am vorbit cu multi studenti care mi-au scris si mi-au spus ca efectiv au fost torturati de matematicile speciale de la facultate, invatau pana la examen, iar la 15 minute dupa uitau totul. Parerile sunt impartite, iar aceste materii se impletesc pana la un punct. Altii spun ca matematica nu trebuie s-o stii, ajunge daca o intelegi.
Nu lasa ca ceea ce ai auzit in trecut despre matematica sa te demoralizeze. Tot ce trebuie sa ai e pasiune si dedicare.
Cum sa devii programator?
In primul rand fii 100% hotarat sa incepi acest drum si sa-l studiezi chiar si in zilele in care ploua cu galeata. Daca faci asta, ai un avantaj considerabil: Nu te dai batut!
Ca sa ne obisnuim cu gandirea structurata, voi enumera pasii cheie pentru a deveni un programator:
- Incepe sa studiezi un curs introductiv – multi doritori incep sa studieze carti vaste, tip „de la incepator la expert”, si se opresc la pagina 64… Pentru ca acolo se blocheaza si nu gasesc o explicatie logica in carte de cum s-a rezolvat exercitiul X pas cu pas. E foarte important ca ceea ce studiezi sa fie la nivelul de incepator si sa te ridice incet, explicandu-ti in detaliu pasii, fara sa-ti creeze frustrare la fiecare noua pagina neinteleasa. Poti incepe cu limbajul Python, fiind un limbaj perfect pentru incepatori si extrem de folosit in zilele noastre, cu o sintaxa relativ usoara.
- Tot ceea ce studiezi, fa si practic, chiar si exercitiile rezolvate din carte/tutoriale. Daca intampini dificultati in instalarea programului, foloseste un compilator online, urmand ca mai incolo sa rezolvi situatia de pe propriul PC. Sa nu-ti fie rusine sa stai mai mult asupra unor notiuni pe care altii o stiu. Practica ceea ce ai invatat pana iti este logic ce se intampla in codul tau linie cu linie.
- Creeaza-ti propriul proiect – pilot! – cum altfel poti demonstra ca ai experienta cu un limbaj daca nu ai ceva mai mult sau mai putin palpabil. Va fi folositor indiferet daca e vorba de un angajator sau de un colaborator pe freelancing.
- Continua sa inveti noutatile din domeniul ales – daca pasiunea este programarea, solutia e la un click distanta fata de tine. Orice „problema” vine la pachet cu o solutie. Tine minte asta cand stai noaptea la PC cautand cauza unei erori banale.
Ziua in care decizi ca vrei sa devii un programator depinde doar de tine!
Programarea poate fi grea atunci cand auzi de ea, e si mai grea atunci cand faci primii pasi, dar poate e mult mai greu de suportat faptul ca n-o stii. Solutia e sa te pui pe treaba si sa incepi s-o inveti! 🙂
Fa ceea ce iti place si devino programator!
Click AICI pentru resurse.