Te salut si bine ai venit la un nou articol in care vom vorbi despre programare. Mai exact vom adresa o problema comuna care are de a face cu invatarea procesului de programare. Din acest articol vei afla cum poti sa inveti programare de la 0 (fara a avea nevoie de matematica, facultate sau experienta in domeniu). Hai sa incepem!
Continutul articolului
Ce oportunitati sunt in IT-ul din Romania?
La momentul actual, programarea este unul dintre domenii de activitate cu cea mai rapida rata de dezvoltare. Pentru anul 2011, de exemplu, in Romania activau 9,823 de companii de IT, iar la finele anului 2017 au fost inregistrate peste 17.000 de companii.
Privind din perspectiva start-up-urilor, numarul acestora sa dublat. De la 1.806 de start-up-uri pentru anul 2011, la 3.795 pentru anul 2016. Fie ca iti doresti o cariera intr-o companie multinationala de IT sau start-up, piata din Romania este in continua crestere, iar posibilitatile in domeniul IT sunt nelimitate.
Si nici posibilitatea de a lucra in calitate de freelancer nu trebuie exclusa. In mediul online gasesti o multime de site-uri ce fac conexiunea intre cererea de munca (adica proiectele) cu oferta si potentialul de munca a freelancerilor.
De ce sa inveti programare?
Probabil, aceasta intrebare are deja un raspuns in mintea ta. Fie ca motivul pentru care iti doresti sa inveti programare este un salariu mai bun sau cunostinte noi pe care vrei sa le dobandesti, iti apreciez initiativa.
Vreau sa iti doresc mult succes si rabdare, pentru ca drumul spre devenirea unui programator bun va fi greu, dar nu imposibil. Iti zic aceste lucruri pentru ca vreau sa fii constient de la inceput ca vei avea anumite obstacole pe care va trebui sa le depasesti.
Dar vreau sa stii ca voi face tot imi sta in putinta ca sa te ajut sa-ti implinesti visul de a avea o cariera de succes in IT.
„Cum sa inveti programare de la 0 ?„
Aceasta este o intrebare pe care sunt sigur ca ti-ai adresat-o destul de des. Ei bine, toate au un inceput si nu, varsta NU conteaza.
Poate ca esti in situatia in care te-ai saturat de jobul actual si vrei sa-l schimbi cu unul nou care sa te implineasca atat pe planul financiar cat si pe cel de crestere profesionala. Sau poate esti complet nou in domeniul IT (elev, student, etc.) si doresti sa inveti programare. In orice caz, de undeva trebuie sa incepi, iar acel mediu trebuie sa fie unul placut.
Astfel inveti cel mai repede si eficient:
- intr-un mediu placut
- cu explicatii clare
- predat pe un ton placut (fara frustrari si fara formalitati)
- pe un limbaj (vorbit :D) simplu si distinct
- in care ai voie sa gresesti si sa incerci diferie posibile solutii in cod
- trecand prin intregul proces de invatare
Tot ce pot sa-ti spun eu este ca, la inceput, programarea poate fi dificila, dar cu putina practica si perseverenta vei reusi sa o stapanesti. Dupa cum se spune: „Crede ca poti si problema este rezolvata pe jumatate„.
Odata ce stapanesti cel putin un limbaj, te poti gandi cum sa-ti dezvolti o cariera de succes in domeniul IT care sa te rasplateasca pe viata din toate punctele de vedere. Suna bine, nu? Dar cum pot incepe programarea? Ce anume trebuie sa fac pentru a invata programare?
Inainte de asta, vreau sa te gandesti la un raspuns care iti va da directia pe termen lung, si anume:
Pe ce ramura sau arie a IT-ului vrei sa mergi pentru urmatorii 3 – 5 ani?
Daca iti poti raspunde la aceasta intrebare vei fi cu un pas imens in frunte in cariera ta (si inaintea altora). Daca nu, e totul in regula. Inseamna ca ai de incercat 2-3 arii pana vezi cu care rezonezi cel mai bine. E simplu, incerci, iar apoi alegi.
Ai nevoie de matematica pentru a programare?
Inainte de a merge mai departe vreau sa iti arat unele tipuri de intrebari pe care le primesc foarte des:
- „Ramon, am nevoie de matematica pentru a invata programare?”
- „Am nevoie de facultate pentru a lucra in IT (ca programator)?”
Legat de acest subiect vreau sa-ti spun cateva lucruri care sa-ti usureze munca in ceea ce priveste programarea si IT-ul. Le spun si din experienta, deci le-am verificat personal!
1) Programarea nu este complicata / dificila / grea / imposibila
Mai mare este frica de a invata in comparatie cu efortul. Nu-i asculta pe cei care au incercat intr-o saptamana sa invete programare si au renuntat imediat. E clar faptul ca fara efort nu faci nici un pas. Dar mai cred si in determinare si in perseverenta.
Daca inca citesti asta, inseamna ca esti pe drumul cel bun! In tutorial de mai jos iti explic cum poti sa inveti programare de la 0 (fara a avea nevoie de experienta):
2) Nu ai nevoie de cunostinte de matematica pentru a invata sau a face programare
O confuzie destul de des intalnita este: „Nu stiu matematica, atunci cum sa invati informatica”. Asta se intalneste mai ales in liceu, unde materia de programare se numeste informatica. E de inteles sa te simti descurajat, insa nu si aici. In programare nu de matematica ai nevoie, ci de logica.
Apoi, avand anumite concepte de baza, folosind logica le vei da sens in modul in care le vei folosi in rezolvarea problemelor practice.
Iata mai jos un tutorial de mai jos iti explic mai multe legate de programare si matematica, urmareste-l, iar apoi lasa-mi un comentariu despre parerea ta – „Ai nevoie de matematica pentru a face programare?„:
3) Oricine poate deveni programator…
Da, nu este imposibil, doar ai nevoie de un motiv puternic pentru care vrei sa inveti:
- o evolutie personala
- o viata mai buna pentru tine si pentru familia ta prin castigurile financiare
- dorinta de a contribui si a creea ceva mai maret decat tine
- placerea de a-i invata pe ceilalti
- posibilitatea de a lucra de oriunde din lume avand libertate
- dorinta de a lucra la propriul startup
Deci nu ai nevoie de o facultate pentru programare š Ai nevoie de logica, de motivatie si de practica. Iti explic mai multe in tutorialul de mai jos:
REALIST: In cat timp poti invata programare (daca esti incepator)?
„Ramon, in cat timp pot invata Programare?”… cred ca e una dintre cele mai frecvente intrebari pe care le primesc, iar raspunsul meu este mereu… DEPINDE.
Depinde de foarte multi factori: experienta ta cu IT-ul / calculatorul, flexibilitatea gandirii, intuitia tehnologica, resursele si metoda de invatare pe care o ai la dispozitie, timpul pe care il investesti saptamanal si multe altele… Iti recomand sa urmaresti pentru vei alfa cum sa inveti (accelerat) Programare intr-un timp mai scurt fata de „media din piata”.
Dar daca ar fi sa fac o medie sau un proces pe care ti-l pot recomanda este urmatorul:
- Alocati 3 luni pentru a invata BAZELE unui limbaj de programare
- Apoi, alocati intre 6 – 9 luni pentru a dezvolta 3 proiecte mai mari (diferite aplicatii care au o functionalitate practica in lumea reala)
- Dupa asta, aloca-ti alte 3 – 6 luni pentru a te pregati de angajare (dpvd. tehnic, al prezentarii, interviu si procesul de recrutare)
Practic, in MEDIE ai nevoie de aproximativ 12 luni pentru a deveni FLUENT in programare (practic in orice limbaj de programare, indiferent ca vorbim de Python, Java, C++, JavaScript, Ruby, Perl, PHP sau altele). FLUENT inseamna ca esti capabil sa transpui majoritatea solutilor sau ideilor pe care le ai intr-un cod functionabil (aka. o aplicatie care sa-si faca treaba).
Cu ce limbaj de programare sa incepi?
Primesc foarte des aceasta intrebare din partea a sute de persoane: āRamon, spune-mi cu ce limbaj de programare sa incep?ā, iar raspunsul este mereu: āNu stiu.ā
In acel moment orice persoane cu care vorbesc se blocheza: āCum adica nu stii?ā, iar raspunsul meu este: āPur si simplu. Nu stiu ce abilitati ai, nu stiu ce pasiuni ai, nu stiu ce experienta ai si nu stiu ce vrei sa faci in viitor.ā Iar de aici incepe de fapt conversatia. Poate aflu ca persoana a facut un curs de introducere doar in liceu, dar e pasionat de cod, se descurca in X si Y, iar de acolo povestea continua.
Cand vine vorba de a alege un limbaj de programare pe care sa-l inveti, totul incepe stric de la tine (nu cu programarea). In ce sens? In sensul in care lucrurile vor incepe cu interesele tale, cu pasiunile tale si cu ceea ce vrei tu sa faci in urmatorii 5 ā 10 ani.
Hai sa vedem concret anumite cazuri:
- De exemplu, daca tu esti pasionat de masini si vrei sa contribui la imbunatatirea computerului de board care se afla in cele mai noi modele, atunci eu iti pot recomanda sa inveti limbajul de programare C sau C++.
- Un alt caz ar fi sa iti doresti sa creezi aplicatii web si sa iti formezi propriul startup in viitor care se ocupa cu asa ceva. In acest caz incepi de la zero cu HTML, CSS si JS. Incepi cu cele mai usoare concepte, iar dupa aceea aprofundezi, facand proiecte personale. Mai tarziu gasesti doi prieteni care au aceeasi pasiune si ajungeti sa lucrati la acelasi proiect, impreuna.
- Daca tu vrei sa creezi aplicatii pe mobil care sa faca viata mai usoara a milioane de oameni din intreaga lume, atunci te sfatuiesc sa incepi cu programare in Java (dupa care Android), sau Swift pentru iOS.
Tu dai directia, dupa care vezi care sunt lucrurilele pe care va trebui sa te axezi. Este clar ca nu vei sti exact ce-ti doresti intr-un minut, nici dupa 5. Aseaza-te, vezi ce iti doresti, fa niste research pe Internet si nu te lasa influentat de cei care nu au reusit!
Programarea este doar un mod prin care tu ca persoana poti sa creezi si poti sa contribui la ceva fascinant care sa aiba impact la nivel global. Acum, gata cu vorbaria. Sa trecem la lucruri concrete!
Iti recomand sa urmaresti video-ul de mai jos si sa-ti faci o idee mai clara legata de limbajul de programare cu care sa incepi:
Daca esti la inceput, eu iti recomand programarea cu Python
In ceea ce urmeaza, voi incerca sa iti prezint cat mai multe din aceste arii ca sa le exploram impreuna. Inainte de asta te invit sa urmaresti tutorialul de mai jos in care iti prezint ce poti face cu Python (in cazul in care te hotaresti sa inveti chiar acest limbaj de programare).
Python, un limbaj perfect pentru incepatori, extrem de folosit in zilele noastre, cu o sintaxa relativ usoara. Marea intrebare este ce poti face cu acest limbaj de programare?
Python fiind un limbaj interpretat, are un avantaj fata de limbajele compilate, gen C/C++, deoarece necesita mai putin cod pentru a realiza anumite instructiuni. Astfel nu e nevoie sa pierzi prea mult timpul studiind sintaxa, ci dupa cateva ore bune te poti apuca de treaba.
Asadar, ariile in care limbajul de programare Python este foarte des intalnit sunt:
- Automatizarea – Aceasta este des intalnita in partea de retelistica prin scripturi pentru administrarea a mai multe device-uri. (Mai departe poti folosi Python chiar pentru a gasi vulnerabilitatile din retea, ca ulterior sa le securizezi.)
- Cyber-Security – Python ajuta la principiile de Pen-Testing prin realizarea automata de diferite atacuri asupra unui target. Fiind unul dintre limbajele de programare versatile, fiind interpretat, Python are un design care se concentreaza pe lizibilitatea codurilor si permite programatorului sa scrie codul in mai putine linii in comparatie cu altele precum Java Či C++. De aici si rolul important al Python-ului in securitatea cibernetica.
- Web Development – Aici Python poate fi utilizat cu ajutorul framework-urilor precum Pyramid sau Django pentru realizarea Backend-ului unui website.
- Quality Assurance (QA – Controlul Calitatii) – Poate fi realizata testarea modulelor software ce urmeaza sa fie lansate pe piata, in vederea functionarii corecte si a vulnerabilitatii feature-urilor.
- GUI (Graphical User Interface) – In Python pot fi create meniuri interactive pentru diferite programe. Un program foarte cunoscut pentru simularea retelelor creat in Python este GNS3.
- Embedded si Internet of Things (IoT) – Un bun exemplu sunt placutele de tip Raspberry Pi si programarea senzorilor si sistemelor de securitate din industria automotiva.
Cum sa inveti programare de la 0 folosind Python?
Pentru a te ajuta in procesul tau de a invata programare am creat aceasta carte unde vei invata sa gandesti cursiv in acest limbaj de programare. Apoi tot aici vei rezolva unele probleme intuitive care iti vor dezvolta logica si te vor ajuta sa inveti pe parcurs.
Urmareste tutorialul de mai jos pentru a-ti face o idee mai clara despre Python si cum functioneaza acesta ca limbaj de programare. Iar daca vrei sa incepi sa inveti programare cu Python iti recomand sa intri AICI si sa incepi sa studiezi š
Ce oportunitati de angajare ai ca programator?
Dupa cum am mentionat si mai sus, totul depinde de ceea ce iti doresti. Fie ca visezi la un job cu program fix sau la un program flexibil de munca din interiorul unei cafenele, oportunitatile sunt nenumarate. Ca sa te fac sa intelegi mai bine despre ce vorbesc, hai sa intram in detalii cu fiecare dintre cele trei optiuni de a-ti exercita activitatea de IT-st. Si o sa incepem cu multinationalele.
O companie multinationala, de regula, este inregistrata in mai multe tari fiind structurata in filiale localizate pe mai multe teritorii nationale sau chiar la nivel global. In continuare iti prezint top-ul multinationalelor in domeniul IT din Romania:
- Adobe – Specializarea: Servicii Software, Web Development. Localitate: Bucuresti.
- Endava – Specializare: Servicii IT. Localitate: Bucuresti, Iasi, Cluj-Napoca, Pitesti.
- Luxoft – Specializare: Servicii IT. Localitate: Bucuresti.
- Atos – Specializare: Servicii IT. Localitate: Bucuresti, Iasi, Timisoara, Brasov.
- Microsoft – Specializare: Software. Localitate: Bucuresti, Cluj-Napoca, Brasov, Timisoara.
- Fortech – Specializare: Servicii IT. Localitate: Cluj-Napoca.
- Ubisoft – Specializare: Gaming. Localitate: Bucuresti.
- Deutsche Bank – Servicii IT (banking). Localitate: Bucuresti.
- Ixia – Specializare: Computer & Wireless Networking. Localitate: Bucuresti.
- 1&1 – Specializare: Servicii Web. Localitate: Bucuresti.
- eMag – Specializare: E-commerce. Localitate: Bucuresti, Craiova, Iasi.
- Avira – Specializare: Securitate IT, Localitate: Bucuresti.
- Intel – Specializare: Servicii Software. Localitate: Bucuresti, galati, Cluj-Napoca.
- EBS – Specializare: Servicii IT. Localizare: Cluj-Napoca.
- Oracle – Specializare: Servicii Software. Localizare: Bucuresti.
- Cegeka – Specializare: Servicii Software. Localizare: Bucuresti.
- Continental – Specializare: Servicii Software. Localizare: Timisoara, Sibiu, Iasi.
- Bosch – Specializare: Servicii Software. Localizare: Timisoara, Cluj-Napoca.
- SAP – Specializare: Servicii Software. Localizare: Bucuresti, Cluj-Napoca, Timisoara.
- Zitec – Specializare: Aplicatii Online. Localizare: Bucuresti.
Incepe sa inveti programare de la 0
Inainte de final vreau sa-ti dau un sfat: Google alaturi de un pix si o foaie sunt cei mai buni prieteni ai unui programator!
Asa e, desi la scoala se promoveaza excesiv regula „nu luati de pe Internet„, trebuie sa recunoastem ca traim intr-o societate in care fara Internet ai o arie foarte restransa la informatii. Gasesti orice la un click distanta. Asa ca nu trebuie sa iti fie frica sa cauti pe Google moduri de rezolvare, dar nu cauta raspunsul direct.
Asterneti pe o foaie ideile tale de rezolvare, poate chiar o schita, si incearca sa transpui acele idei in cod. Scrie intai ceea ce stii 100%, apoi adauga pas cu pas liniile mai complexe din cod. Vei reusi sa observi solutiile mult mai repede in acest fel si de asemenea iti vei dezvolta gandirea logica, stiind ce rol are fiecare linie.
In rest iti doresc mult succes si spor la cat mai multa practica pentru ca programare e mai putin despre teorie, cat despre practica.
Iata o lista cu cele mai frecvente intrebari legate de programare
Programarea se invata in 5 pasi:
1) Iti clarifici: „De ce vrei sa inveti programare si ce vrei sa obtii de la ea?”. Cu alte cuvinte: care este obiectivul tau? (sa te angajezi si sa castigi 10.000 RON / luna; sa construiesti o anumita aplicatie etc.
2) Alegi un limbaj de programare (pentru inceput iti recomand Python)
3) Inveti sintaxa a limbajului (de la incepator la avansat)
4) Aplici ceea ce ai invatat si rezolvi probleme de programare
5) Nu te descurci? Cauti solutii pe Google
Apoi mai exista un pas care te ajuta sa ai experienta. Asta te ajuta si pentru a-ti dezvolta logica si creativitatea in programare, dar si pentru a demonstra ca ai experienta in programare atunci cand doresti sa te angajezi (iti poti adauga propriul proiect in CV):
6) Repeti pasii 3 – 5 si iti construiesti propriile proiecte
In concluzie: programare se invata prin a studia functiile limbajului, a le aplica intr-un content cu scopul de a rezolva o problema si a repeta acest proces. Este teorie + practica, apoi repeti.
Totul depinde de tine (de cata energie si efort depui in fiecare saptamana). Cel mai greu aici nu e sa iti gasesti timp pentru asa ceva, ci e sa te apuci de treaba. Da, uneori vei spune pas unei iesiri sau unui film, dar va merita efortul. Din experienta mea, daca investesti 20 – 30 de ore / saptamana, poti ajunge ca in 3 – 5 luni sa fii fluent in programare, iar in 6 – 9 luni sa te poti angaja.
Depinde mult de aria din IT pe care vrei sa mergi. Daca vrei sa creezi site-uri Web iti recomand sa incepi cu HTML, CSS, apoi JavaScript. Daca doresti aplicatii mobile pe Android (invata Java) sau pe iOS (invata Swift). Daca esti la inceput cu programarea iti recomand Python pentru ca este simplu si rapid de invatat. Sintaxa ei e mult mai accesibila si nu te plictisesti invatand doar teoria. Poti invata ceva si imediat in paralel o poti si aplica. C/C++ mai poate fi o alternativa, dar iti recomand doar dupa ce ai putina experienta cu programarea.
Daca esti interesat sa inveti mai multe despre Programarea, atunci iti recomand cartea mea „Introducere in Programare cu Python„. Notiunile explicate in aceasta carte te vor ajuta extrem de mult sa intelegi atat elementele teoretice cat si cele practice care au de a face cu notiunile de baza ale programarii, programare orientata pe obiecte (POO), structuri de date si multe altele.
Click AICI pentru a afla mai multe.
Vrei sa inveti programare si sa faci reconversie profesionala in Securitate IT?
Urmareste tutorialul de mai jos pentru a afla cum sa faci Reconversie Profesionala in Securitate IT in mai putin de 12 luni, pornind de la zero
ā”ļø Doresti reconversie profesionala in Securitate Cibernetica? Aplica acum pentru o discutie pentru a afla cum poti face reconversie profesionala in Securitate IT in 9 – 12 luni, pornind de la zero: LINK
SecuritateIT.com
Spor la invatat iti doresc,
Ramon
Super
Imi sunt de ajutoir aceste filmulete ,multumesc frumos!
Cu mare drag š
In primul rand , salutare la toata lumea !!
Iar in al doilea rand , Ramon iti multumesc pentru toate informatiile disponibile foarte pretioase pentru oricine insa mai ales pentru cei care isi doresc o cariera in IT !!
Deja , datorita tie totul este mai clar pentru ca fac parte dintre cei care nu stiu nimic despre IT insa imi doresc o cariera in domeniul IT !!
Multumesc !!
Multumesc pentru informatii Ramon,chiar o sa mÄ pun pe invatat.
Cu mare drag, Sorin!
Geniale toate sfaturile! Multumesc din suflet si sper sa primesti inapoi tot la fel cat oferi! :-*
cu mare drag, Stefania!
Chiar m-a ajutat foarte mult
Ma bucur sa aud asta Flavius! š
MulČumim din suflet pentru sfaturi Či pentru cÄ te Ć®mpÄrtÄČeČti cu cunoČtinČele Či experienČa ta .
Multumesc si eu š