De ce salariul unui programator este atât de mare când oricine poate învăța să programeze gratuit?
Programarea este ca și cum ai juca șah. Toată lumea știe să miște piesele pe tablă. A juca bine este cu totul altceva. De fapt, sunt încă 10.000 de ore de practică.
Învățarea gratuită a programelor, devenind dezvoltator autodidact cu ajutorul internetului a devenit și mai accesibil în aceste zile.
Cunosc programatori grozavi care au început să programeze cu un suport minim. Nu au mers la școli de informatică, nu au avut acces la internet, dar în același timp au devenit mari profesioniști.
Pentru fiecare dintre acei programatori buni care au ieșit de nicăieri, există mii de programatori mediocri care joacă un rol nepotrivit. Nu au vocație sau dorință de a face asta, dar totuși primesc un loc de muncă ca programator.
Deci, ce separă un programator bun de unul rău?
Pentru a răspunde la această întrebare, este necesar să înțelegem o parte fundamentală a meserii unui programator de a rezolva probleme.
Un programator bun nu este cineva care programează zeci de mii de linii de cod.
În cuvintele lui Ken Thompson însuși, unul dintre cei mai mari guru ai computerelor, un programator nu este plătit pentru a codifica, ci pentru a rezolva probleme.
Dacă încetați să mai analizați, va fi treaba programatorului să traducă problema într-un limbaj pe care computerul îl poate înțelege și astfel să găsească o soluție la problemă.
Trebuie să o facă rapid, bine și în așa fel încât soluția să poată fi dezvoltată rapid pentru a rezista lumii în continuă schimbare în care funcționează o astfel de soluție.
Mai mult, un programator bun trebuie să știe când merită să dezvolte (modificarea) un program pentru a-l adapta la o situație nouă, sau când trebuie să abandoneze acest program vechi și să creeze unul nou complet de la zero.
Pentru a face acest lucru, programatorul trebuie să înțeleagă situația.
De exemplu:
Imaginați-vă un programator care va crea un program de înregistrare a clienților pe un site/aplicație care va deservi în principal populația urbană.
Pentru a identifica un astfel de client, se folosește metoda de utilizare a CPF sau Facebook (pentru a facilita autentificarea clientului în sistem).
Acum imaginați-vă că înființați un program de înregistrare a clienților într-o zonă rurală cu acces redus la internet și cu o populație săracă.
Nu veți putea folosi Facebook pentru a identifica clientul, pentru că cea mai mare parte a acestui public nu are nici măcar un smartphone, ca să nu mai vorbim de acces la Facebook.
Un programator bun anticipează această situație și dezvoltă o modalitate de a face față acesteia. Mai degrabă, un programator bun va veni cu o soluție mai inteligentă, care funcționează transparent în ambele cazuri, dând seama când să folosească unul sau altul, având în vedere unele date care oferă un indiciu asupra situației care se aplică.
Când înveți să programezi pe cont propriu, pierzi ocazia de a învăța din experiențele trecute ale altor programatori care au trecut printr-o astfel de situație. Și apoi, ca în orice carieră, un lucru este să ai educație formală oferită de furnizorii de formare și educație.
Un alt lucru este să ai cunoștințe acumulate după mulți ani de experiență.
Având experiență și conexiuni cu mediul în care lucrează, un programator bun își merită greutatea în aur.