Sub codul zace o limbă, dorind să fie învățată.

În momentul redactării acestui articol, căutarea "ce limbă de programare să învăț prima dată" dă 517 milioane de rezultate. Fiecare dintre aceste site-uri va lăuda un anumit limbaj, iar 90% dintre ele, în final, vor recomanda Python sau JavaScript.
Fără multe preambuluri, aș dori să declar oficial că toate cele 517 milioane de site-uri se înșală și să afirm că limbajul care trebuie învățat primul este logica fundamentală.
Să știi doar cum să programezi nu este suficient. Piața este atât de saturată de absolvenți de instituții și cursuri, încât poziția de junior aproape că a dispărut. Pentru a reuși în lumea de astăzi, trebuie să programezi și să ai o gândire logică fundamentală avansată.
* Aici și mai departe, vă rog să rețineți că acesta este un traducere și situația de pe piața muncii poate varia de la autor la țara dvs. (precum și alte nuanțe), care însă, în sine, nu face originalul mai slab — n.r.
Prima mea lecție de informatică
Prima mea întâlnire cu informatica a fost un seminar opțional pe care l-am luat în clasa a 10-a. În prima zi, când am intrat în clasă, am fost încântat să văd un număr mare de cupe de înghețată și toppinguri diverse. După ce toți s-au așezat, profesoara a declarat:
„Astăzi vom degusta înghețata făcută de noi. Dar cu o condiție: trebuie să faceți o listă de instrucțiuni specifice despre cum se prepară desertul, iar eu voi urma aceste instrucțiuni.”
„Fără probleme”, m-am gândit eu, „această lecție nu va dura mult”. După un minut, am schițat o rețetă excelentă pentru înghețata visurilor mele:
- Înghițiți și puneți trei bile de înghețată cu zmeură într-un bol
- Deschideți sosul de ciocolată și adăugați două linguri în același bol
- Adăugați frișcă în bol
- Presărați totul cu bezele de zahăr și puneți o cireșă deasupra
Profesora mea — „computerul” în această metaforă drăguță — a avut o reprezentație mai sarcastică și mai literară decât am văzut vreodată. A început să lovească cu furculița cupe de înghețată, fără să atingă capacul.
„Bine-bine, dar mai întâi trebuie să o deschidem!” — am exclamat eu, încercând să obțin deliciul cât mai repede.
„Nu ai menționat asta în instrucțiuni și nu am reușit să-ți fac înghețata. URMĂTORUL!“
Să așteptăm până la încercarea nr. 2
- Deschide înghețata de zmeură, îndepărtând capacul
- Înghițiți și puneți trei bile de înghețată cu zmeură într-un bol
- Deschideți sosul de ciocolată și adăugați două linguri în același bol
- Adăugați frișcă în bol
- Presară totul cu batoane de zahăr și pune o vișină deasupra
Ei, acum nu ar trebui să fie probleme. Chiar m-am asigurat, de dragul siguranței, că toate ingredientele pentru capolavorul meu culinar sunt deschise.
Învățătoarea a îndepărtat capacul, a luat cu lingura și a pus trei bile de înghețată în bol. „În sfârșit, splendidul meu înghețat a început să prindă viață!” Apoi a deschis sosul de ciocolată și a adăugat două linguri în bol. Nu „a adăugat sos de ciocolată din două linguri” — să nu vă imaginați asta — a pus, desigur, lingutele în bol. Fără sos în ele. Din nou am omis să explic totul exact. După ce restul a fost îndeplinit în același spirit, am primit un bol cu înghețată și două linguri, abia vizibile sub marea de frișcă. Deasupra erau câteva batoane de zahăr.
Se pare că în acel moment am realizat în sfârșit: computerul este logic în vid. Nu știe nimic despre circumstanțele externe și nu face presupuneri. Urmaște doar instrucțiuni clar formulate și le respectă cuvânt cu cuvânt.
Rezultatul final a fost rezultatul unei serii lungi, dar necesare de încercări și greșeli:
- Deschide, dacă nu a fost făcut deja, fiecare dintre următoarele pachete: înghețată de zmeură, sos de ciocolată, frișcă, batoane de zahăr.
- Ia un bol și pune-l în fața ta
- Ia o lingură de înghețată și pune, pe rând, trei bile de înghețată de zmeură în bol. Pune lingura de înghețată la loc.
- Ia borcanul cu sos de ciocolată, ia cu lingura sos și toarnă în bol conținutul lingurii. Repetă acțiunea de a lua și turna sos încă o dată. Pune lingura și borcanul la loc.
- Ia și întoarce cu susul în jos ambalajul de frișcă și, ținându-l deasupra bolului, toarnă-i peste înghețată timp de 3 secunde, apoi înapoiază ambalajul la loc.
- Ia borcanul cu batoane de zahăr, toarnă aproximativ patruzeci de batoane în bol și pune borcanul la loc.
- Ia o vișină din bolul cu vișine și pune-o deasupra înghețatei.
- Dă elevului bolul cu înghețata gata pregătită și lingura.
Ultimul punct a fost deosebit de important, deoarece fără acesta, în penultimul rând, profesoara a început pur și simplu să mănânce înghețata mea.
Dar aceasta este programarea. O creație stresantă a unui set meticulos de instrucțiuni pentru computer. În esență, acesta este ceea ce se reduce fiecare limbaj de programare – la formularea instrucțiunilor.
Carieră în programare
Programarea a ajuns într-un punct în care este greu de discutat ca o singură industrie, la fel de greu cum este să folosești un singur cuvânt „programator” ca descriere a unui loc de muncă. Doi dezvoltatori pot fi la fel de căutați de piață, cunoscând limbaje complet diferite, așa că abilitatea de a dezvolta este mai importantă decât cunoașterea unui limbaj specific. Un atribut universal care este comun tuturor dezvoltatorilor de succes este – logica fundamentală.
Cel mai bun programator este capabil să privească codul dintr-un unghi nou. Și acest lucru este esențial, deoarece majoritatea produselor software sunt un set de cioburi de cod prost documentate. Acestea trebuie constant adunate la un loc, acoperind deficiențele pe măsură ce este necesar. Persoanele care nu pot uni punctele disparate într-o linie unică vor trebui să fie mereu pe locul doi.
Toate acestea mă conduc la o altă declarație, de data aceasta cu litere îngroșate: cunoștințele fundamentale au fost întotdeauna și vor rămâne esențiale pentru programator.
Limbajele vin și pleacă. Framework-urile devin învechite, iar companiile răspund cererii, schimbând stiva de tehnologii utilizate. Există ceva care nu se va schimba niciodată? Da – cunoștințele fundamentale, care sunt numite fundamentale tocmai pentru că stau la baza tuturor!
Cum să îmbunătățești cunoștințele fundamentale
Fotografia lui Christopher pe
Dacă cauți un punct de plecare pentru a-ți îmbunătăți gândirea logică fundamentală, încearcă să începi de aici:
Cunoaște complexitatea programului tău
De asemenea, numită Big O „complexitatea algoritmului” se referă la dependența timpului de execuție al programului de dimensiunea datelor de intrare ale acestuia (n). A avea o mână pe pulsul algoritmilor utilizați este un pas important.
Cunoaște-ți structurile de date
Structurile de date stau la baza oricărei aplicații moderne. Cunoașterea structurii de date potrivite pentru fiecare situație reprezintă o disciplină de sine stătătoare. Structurile de date sunt direct corelate cu complexitatea în timp de execuție, iar alegerea unei structuri greșite poate duce la probleme fundamentale de performanță. Căutarea unui element într-un array este egală O(n), ceea ce subliniază costisitoritatea utilizării array-urilor ca date de intrare. Căutarea într-o hash table este O(1), așadar, în acest caz, timpul de căutare a valorii nu depinde de numărul de elemente.
La interviu au venit persoane care afirmau că căutarea într-un array este mai rapidă decât în cazul unei hash table. Acesta era un semn clar că nu ar trebui angajate — cunoaște-ți structurile de date.
Citește / vizionează / ascultă
Site-uri precum , și sunt o alegere excelentă pentru a învăța noi limbaje de programare. Însă pentru noțiunile de bază, consultă cărți despre principii generale, practici și stiluri de codare. Cele mai recomandate cărți sunt „Design Patterns”, „Refactoring: Improving the Design of Existing Code”, „Code Complete”, „Clean Code” și „The Pragmatic Programmer”. În cele din urmă, fiecare dezvoltator ar trebui să aibă la îndemână o copie a „”.
Exersează!
Nu poți să prepari o omletă fără să spargi ouăle. Site-uri precum , , , și oferă mii de sarcini interesante pentru a-ți verifica cunoștințele despre structurile de date și algoritmi. Încearcă-ți norocul în rezolvarea unei probleme care ți-a atras atenția, publică soluția ta pe Github și apoi vezi cum s-au descurcat ceilalți. Ceea ce ne duce la ultimul punct:
Citește codul altora
Cea mai mare greșeală pe care o poți face pe calea dezvoltării este să parcurgi acest drum singur. Dezvoltarea software-ului este, în mare parte, o muncă de echipă. Împreună stabilim standarde, facem împreună greșeli și, în ciuda tuturor eșecurilor, împreună devenim mai buni. Timpul petrecut citind codul altora se va răsplăti din plin. Asigură-te doar că este un cod de calitate.
Cel mai bun sfat pe care îl pot da este să nu te ruşinezi niciodată că nu știi totul. Așa cum s-a menționat, industria noastră este imensă, iar numărul tehnologiilor este vast. Este nevoie de mult timp și efort pentru a construi o imagine de ansamblu, și chiar mai mult pentru a deveni un profesionist într-un domeniu specific, cu mult mai mult pentru a-ți perfecționa abilitățile în acea zonă. Te voi anunța când voi reuși și eu.
Sursa: habr.com
