Geek, Programare | |

Toti ar trebui sa fim programatori?


Citeam mai devreme articolul acesta al lui Dragos Patraru. Chiar daca nu vedeti legatura, dar de la articolul acela mi-a venit ideea sa scriu acest post. Se zice ca in viitor vor disparea multe meserii si ca va fi nevoie de multi programatori. Dar oare doar de programatori vom avea nevoie in viitor?

In ultima perioada exista tot mai multe scoli si site-uri care invata lumea sa programeze. De exemplu code.org care incearca sa ofere elevilor mai multe cunostinte despre programare. Foarte multe scoli online care fac acelasi lucru, te invata sa programezi. Sunt peste tot, ca ciupercile dupa ploaie. Pana si unele companii mari precum Google sau Apple invata tot mai multa lume sa programeze.

Asta e minunat, pentru ca atunci cand am inceput eu abia aparuse Stack Overflow, dar nu era asa de mare precum este astazi. Imi place mai ales initiativa celor de la code.org sa ii invete pe copii de la varste fragede sa aiba notiuni despre programare. Multi copii s-ar putea chiar sa aiba talent la asta si sa fie ajutati. Sunt foarte de acord ca tot mai multi sa fie expusi la programare, insa nu toata lumea ar trebui sa fie programatori. Ca sa ajungi cu adevarat un programator, trebuie sa ai mai multe lucruri decat cunostinta de a scrie cod. Cateva exemple te intrebi?

O atitudine descurcareata

Programatorii ar trebui sa fie foarte descurcareti. In ziua de azi exista comunitati pentru programatori, am amintit mai sus de Stack Overflow. Aceste comunitati te ajuta sa rezolvi o problema, dar nu te poti baza doar pe acestea sau nu te poti astepta ca altcineva sa aiba raspunsul la problema ta. Un programator trebuie sa fie descurcaret si in primul rand, asa cum zice americanul, un problem solver. Un programator ar trebui sa fie tipul la care cineva merge si zice “vreau asta, asa, sa arate asa” si programatorul sa ii dea o solutie sau sa satisfaca cerintele respective. De multe ori, unele probleme au mai fost rezolvate de altii si in aceste cazuri te poti baza pe solutia altcuiva. Totusi, de multe ori esti pe cont propriu si trebuie sa iei propriile decizii. Daca nu esti in stare sa faci asta cu usurinta, s-ar putea ca programarea sa nu fie pentru tine.

Invatare continua

Domeniul IT se schimba cred ca cel mai rapid dintre toate domeniile. Un programator are nevoie sa invete mereu lucruri noi si tehnologii noi, altfel risca sa ramana in urma cu toate. Nu este de ajuns sa cunosti un singur limbaj, pentru ca maine s-ar putea sa dispara sau sa fie altul mai popular decat cel pe care il cunosti. De asemenea, nu exista un limbaj pentru orice problema. De multe ori aplicatia pe care trebuie sa o faci te impinge sa inveti tehnologii noi. Si sa zicem, chiar daca ramai fidel la un singur limbaj, chiar si acel limbaj se schimba. Eu de exemplu sunt fan 100% PHP, dar pana si acest limbaj se schimba constant si apar lucruri noi. Mie imi place sa folosesc aceste lucruri noi tot timpul si sa le invat, deci nu sunt adeptul “daca nu ii stricat, nu fa schimbari”.

Un programator (ideal) trebuie sa programeze ca un hobby. Sa faca asta pentru ca ii place sa invete lucruri noi. De exemplu, eu aseara (duminica seara, sa ne intelegem) ma jucam cu o tehnologie cu care nu am mai facut proiecte inainte, doar pentru ca am vazut un titlu de articol si m-a luat valul si in 10 minute deja testam noua tehnologie. Asta poate ca nu e e placul celor din jur (vreo ora sotia mea s-a uitat singura la o emisiune 🙁 ).

Daca nu iti place sa schimbi lucrurile sau sa inveti unele noi, programarea poate nu este pentru tine.

Diversitate

Punctul acesta seamana cu cel anterior, sau poate ca merg mana in mana. Nu este de ajuns pentru un programator sa codeze. Un programator trebuie sa cunoasca multe tehnologii si limbaje adiacente celor cu care lucreaza. In firmele mari de exemplu, exista un developer (poate) care scrie doar SQL, deci daca lucrezi intr-o companie mare, poate nu iti este necesar sa inveti si tu sa scrii SQL, dar simplu fapt ca te interesezi si inveti ceva nou, te face un programator (mai) bun.

S-ar putea sa nu fie nevoie sa configurezi tu servere sau sa dai deploy la o aplicatie, dar faptul ca stii aceste lucruri, din nou, te face mai bun ca programator.

Nu trebuie sa stii foarte multe lucruri ca sa termini un task, poti gasi cea mai simpla solutie. Dar cea mai simpla solutie nu este si cea mai eficienta uneori. Cel mai bun programator este cel full stack pentru ca stie platformele cu care lucreaza si toate tehnologiile adiacente.

De exemplu, daca tu cunosti Java, poti face aplicatii de Android. Dar daca tu nu cunosti platforma Android, nu te interesezi de cele mai folosite telefoane cu Android, s-ar putea ca aplicatia ta sa fie naspa!

Si la fel cu limbajele, platformele si tehnologiile se schimba foarte rapid. Ma uit sa iti dau exemplu la Apple (daca tot sunt un fan). La inceput a fost o singura platforma – iOS si un singur device – iPhone. Dupa 10 ani, sunt mult mai multe platforme in ecosistemul Apple: iOS, watchOS, tvOS, macOS. Sa nu mai zicem de device-uri: iPhone, iPad (mini, pro, regular), Apple TV, Apple Watch, Homepod. Sa zicem ca stiai sa faci o aplicatie de iPhone. Super, dar merge si pe iPad? Are si o aplicatie pentru ceas? Nu este de ajuns sa cunosti un singur lucru. Un programator va explora multe alte tehnologii si platforme.

Daca nu ai chef sa faci asta, programarea nu este pentru tine probabil.

O dorinta de a ajuta pe altii

Asta este ceva la care eu inca lucrez. Programatorii exista ca sa rezolve probleme. Oamenii au probleme. Deci, programatorii exista ca sa rezolve problemele oamenilor, deci sa ii ajute. Cum se poate face asta? Pai in mai multe feluri.

Fac public codul scris de ei de cate ori se poate, scriu carti, au blog, scriu articole, posteaza pe forumuri sau Stack Overflow ca sa ii ajute pe altii. Programarea este ciudata: este ceva ce trebuie sa stii sa faci pe cont propriu, cum am zis mai sus, dar este si un lucru ce trebuie facut in comunitate. Pentru ca atunci cand ajuti comunitatea, indirect te ajuti si pe tine.

Folosim librarii si pachete facute de alti programatori ca sa nu scriem noi acelasi cod de la zero, ca sa nu re-inventam roata. Programatorii ajuta pe altii. Trebuie sa fie regula de aur asta.

Daca va uitati la profilul meu de GitHub, am inceput sa fiu mai activ public. Pentru ca in privat, am vreo 2500 de contributions in privat in ultimul an, dar pe repository-uri publice, am doar vreo 50. Trebuie sa incep si eu sa ajut pe altii mai mult, mai ales pe tool-urile cu care lucrez zilnic.

Daca nu vrei sa ajuti pe altii sa stie ce stii si tu, programarea sigur nu este pentru tine.

Concluzie

Daca cele de mai sus te caracterizeaza, super, ai cateva din lucrurile necesare pentru ca sa fii programator. Totusi, succces-ul nu iti este garantat, dar daca iei initiativa si inveti lucruri noi, sa ajuti pe altii si sa cauti sa fi tot mai bun tot timpul, esti pe drumul cel bun. Sa inveti sa scrii cod e usor, pentru ca e un lucru logic. Sa ajungi programator este mult mai greu, deci este o mare diferenta. Exista oameni care scriu cod pentru job doar dar la 4-5 cand pleaca de la birou, nu mai invata nimic nou. Din punctul meu de vedere e cel mai gresit lucru sa programezi doar pentru job sau pentru bani. Pentru ca vei ajunge sa te plafonezi si nu vei castiga mai mult.

Promovarea ideei “oricine poate sa devina programator” face 2 lucruri, unul bun si unul rau: discrediteaza pe cei care fac asta cu brio si sunt programatori de exceptie, dar si prosteste pe cei care nu pot face aceste lucruri.

Postari asemanatoare

2 responses to “Toti ar trebui sa fim programatori?

  1. Salut. Ce limbaj de programare ar trebui sa invat pentru a avea succes pe piata muncii din Romania ? Stiu ca probabil o sa zici ca ce iti place, si schestii dde genul acesta, dar vreau sa invat un li,baj care sa cauta si pot face cariera. Vreau sa ma apuc de cursuri si o parere de la tine ar fi utila. Multumesc

    1. Salut, lumea se muta spre web si cloud deci orice limbaj web: php, ruby etc. Astea sunt de viitor si gasesti job oricand.

Leave a Reply

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.