Învățați să codificați: înțelepciune și instrumente pentru călătorie
Publicat: 2022-03-11Programarea este o abilitate grozavă de avut. Este extrem de plină de satisfacții atât la nivel personal, cât și profesional, oferindu-vă abilitatea de a construi, de a modifica și de a inventa. Poate deschide uși către tot felul de căi de carieră cu mari beneficii, fie că este vorba despre un salariu respectabil, libertatea de a lucra când și unde doriți, sau toate cele de mai sus.
Nu este deloc surprinzător faptul că tot mai mulți oameni, din tot felul de medii, decid să învețe să codifice. Dar, fiecare persoană care abordează sarcina se confruntă în curând cu o realitate neplăcută: a învăța să programezi este greu.
Complicat și confuz, la început, o mare parte din codificare nu are deloc sens. Contrar așteptărilor, sentimentul „nu înțeleg” poate persista neclintit mult timp în călătorie, făcându-i pe începătorii odată cu ochi strălucitori să se simtă fără speranță, pierduți și gata să renunțe.
Morala poveștii este următoarea: Fii pregătit. Calea către paradisul programatorilor este una lungă și, fără mentalitatea potrivită la început, își poate pierde rapid atractivitatea.
În acest articol, voi încerca să vă ofer câteva îndrumări cu privire la ce să vă așteptați în călătoria dvs., cum să procedați cel mai bine și ce instrumente și resurse puteți găsi utile pe parcurs.
La ce să te aștepți
Poate că este evident, dar primul lucru pe care să te asiguri că îți înțelegi capul este că programarea, în esență, este o disciplină tehnică. Cele mai timpurii abilități pe care le învățați vor necesita multă „exactitate” și „corectitudine”, iar încercarea de a tăia colțuri nu vă va duce nicăieri. Va trebui să înveți măcar puțină matematică, precum și o mulțime de lucruri care s-ar putea simți ca matematică, cum ar fi logica procedurală.
Ideea este că învățarea bazelor programării necesită multă concentrare și practică. Cu toate acestea, nenumărați oameni, techy și non-techy deopotrivă, au făcut această călătorie înaintea ta, așa că nu te descuraja. După cum vom vedea, există o abundență de resurse pentru oameni ca tine pentru a ajuta procesul să fie cât mai ușor posibil.
Curba de învățare pentru programare este cea mai abruptă la început. Există o cantitate uriașă de „fundamente” de absorbit, inclusiv diferitele părți ale unui limbaj de programare (expresii, variabile, tipuri de date, operatori, bucle, instrucțiuni condiționale, funcții, clase) și tehnici pentru înțelegerea cât de mult din computerul dvs. timpul și spațiul de memorie pe care îl va folosi codul dvs. (complexitate). Veți scrie mult cod care nu funcționează prima dată, așa că va trebui să vă împăcați cu nenorocirea existenței fiecărui programator: depanarea.
Odată ce ați învățat cum să scrieți cod, veți putea învăța cum să scrieți cod robust . A face codul eficient, ușor de citit și de înțeles și ușor de extins este o artă și una care evoluează constant. Veți putea începe să explorați diferite filozofii de software și să treceți de la pur și simplu „codificator” la „arhitect software”. Acesta este, de asemenea, un proces care necesită mult timp și practică, dar cu cât te descurci mai bine, cu atât vei găsi mai multe oportunități care se deschid pentru tine.
Cum să înveți să codificăm
Călătoria fiecărei persoane către paradisul programării este diferită, dar există câteva principii bune de care pot beneficia toți călătorii. Iată procesul de bază pe care îl recomand dacă sunteți abia la început:
1. Alegeți-vă destinația: alegeți o limbă, orice limbă
Dacă sunteți serios să învățați să codificați, limbajul pe care îl alegeți chiar nu contează prea mult. Cele mai populare limbaje de programare împărtășesc aceleași concepte fundamentale și, în momentul în care ați învățat cu adevărat programarea în prima limbă, va fi mai ușor să alegeți una nouă decât prima dată. Dacă înveți printr-un program de studii universitare sau similar, probabil că limba ta va fi aleasă pentru tine.
În orice caz, cu excepția cazului în care știi exact ce vrei să faci pe termen lung, sunt doar cinci limbi pe care recomand să le ia în considerare, care realizează un echilibru între ușurința de învățare, versatilitatea cunoștințelor dobândite și o mulțime de locuri de muncă pe termen lung. perspective: Ruby , JavaScript , Python , C și Java .
Iată câteva note generale despre fiecare, pentru a vă ajuta să decideți:
Limbi interpretate
Este mai ușor să începeți cu limbile interpretate. Acest lucru se datorează faptului că codul lor sursă poate fi rulat imediat ce este scris. În schimb, limbajele compilate necesită un pas suplimentar între scrierea și rularea codului.
Drept urmare, limbile interpretate permit o codificare mai rapidă , dar nu folosesc resursele computerului la fel de eficient și este mai ușor ca erorile să rămână nedetectate . Sunt cele mai potrivite pentru aplicațiile în care performanța nu este o prioritate. Aceste limbi sunt foarte populare pentru dezvoltarea web. De fapt, una dintre ele, JavaScript, este singura limbă care poate fi rulată direct într-un browser web, contribuind la creșterea rapidă a acestuia ca una dintre cele mai profitabile limbi de cunoscut.
Limba | Pro | Contra | Folosit în mod obișnuit pentru |
Rubin |
|
|
|
JavaScript |
|
|
|
Piton |
|
|
|
Limbi compilate
Când codul este compilat , acesta este convertit din cod care poate fi citit de om în cod de mașină optimizat înainte de a rula. Rezultatul rulează mult mai rapid și mai eficient decât limbile interpretate. Compilatorul care face acest lucru trebuie, ca parte a sarcinii sale, să se asigure că tot ceea ce a fost codificat „are sens” și, ca urmare, poate identifica și preveni multe tipuri de erori la care sunt susceptibile limbajele interpretate.
Din acest motiv, este mai greu să scapi de greșeli sau coduri greșite cu aceste limbi. Vă vor forța să înțelegeți mai profund ce se întâmplă cu adevărat „sub capotă” și veți afla mult mai multe despre cum funcționează cu adevărat un computer . Prețul este că aceste limbi necesită mai multă muncă și, de obicei, mai dificil de învățat pentru începători.
Limbajele compilate sunt folosite în aplicații care necesită performanță și fiabilitate, inclusiv aplicații încorporate, care pot rula pe hardware cu limitări stricte de resurse și în aplicații mari și complexe, în care chiar și o mică eroare poate face ravagii.
Limba | Pro | Contra | Folosit în mod obișnuit pentru |
C |
|
|
|
Java |
|
|
|
HTML și CSS: nu limbaje de programare
Trebuie remarcat faptul că HTML și CSS, care sunt folosite în aproape toate paginile web care au existat vreodată, nu sunt limbaje de programare . Sunt limbaje de prezentare, folosite pentru a defini cum ar trebui să arate ceva și ce ar trebui să conțină, dar nu cum ar trebui să se comporte. Cu toate acestea, ele pot fi un loc bun pentru a începe, deoarece sunt mult mai ușor de preluat și vă vor învăța cum să scrieți corect lucrurile. În plus, dacă intenționați să faceți orice dezvoltare web, oricum va trebui să le învățați la un moment dat.
2. Începeți mic
Învățarea necesită timp și sunt multe de absorbit. Dacă încercați să construiți o aplicație completă în prima zi, nu va funcționa. Pentru a vă scuti de frustrare, începeți prin a rezolva probleme mici și simple și mergeți în sus.
De exemplu, primul program care este scris în mod tradițional atunci când se învață o nouă limbă este programul „Hello World”, care pur și simplu imprimă cuvintele „Hello World” pe ecran. În majoritatea limbilor, este aproape imposibil să scrieți un program mai simplu și, în mod clar, acest program nu folosește efectiv. Cu toate acestea, încă încorporează multe dintre părțile fundamentale ale limbii și, prin urmare, este perfect pentru a vă prezenta modul în care este scrisă limba.
De aici, puteți scrie ceva care adună sau scădea unele numere, apoi ceva care preia intrare de la utilizator. Apoi puteți afla despre condiționale, care sunt o modalitate de a lua decizii și despre bucle, care efectuează sarcini repetitive. În curând, vei fi gata să-ți construiești primul obiect și, în acel moment, poți începe să experimentezi construirea de aplicații complete.
3. Fii răbdător
Conceptele de bază ale programării pot fi destul de provocatoare. Multe dintre ele nu sunt deloc intuitive dacă nu știi deja cum funcționează computerul la un nivel mai profund.
De exemplu, când începeam, am considerat că depanarea este un proces enervant; nu avea chef de programare. În loc să scriu cod nou care făcea lucruri noi, mi-am petrecut o zi întreagă cercetând ceva ce am scris, încercând să-mi dau seama: „Cum am făcut-o de data asta?” scărpinându-mă pe cap și gata să renunț. În cele din urmă, aș descoperi că am lăsat un singur punct și virgulă pe undeva sau am folosit o filă în loc de spațiu și, până când am reluat codul, avea să fie sfârșitul zilei. M-aș simți ca un total idiot; s-ar simți ca o astfel de pierdere de timp.

Ți se vor întâmpla așa ceva și te va înnebuni absolut. Așadar, una dintre cheile succesului este aceasta: ai răbdare și ai grijă de tine . Unele dintre cele mai bune sfaturi pe acest subiect recomandă să vă concentrați pe proces, nu pe obiective. Dacă te concentrezi pe eventualul tău obiectiv („Vreau să construiesc un site web până la sfârșitul lunii iunie”), te vei descuraja și te vei simți ca un eșec. Permițându-vă să vă luați atât timp cât este nevoie pentru a progresa, veți avea mai mult succes.
4. Practică Practică Practică
Ca orice abilitate, a deveni bun la asta se rezumă într-adevăr la exersare. Nu există nimic ca să faci ceva, să înveți cum să faci! Chiar dacă nu poți economisi decât câteva ore pe săptămână, dacă continui să exersezi în mod regulat, te vei descoperi, într-o zi, că știi să programezi. În cele din urmă, veți dezvolta o intuiție pentru lucruri și ceva care a durat o zi întreagă la început (cum ar fi urmărirea unui bug), poate dura acum doar câteva secunde.
Când simți că ai învățat mai mult sau mai puțin noțiunile de bază ale programării, o modalitate excelentă de a te exersa este să începi primul tău proiect. Gândiți-vă la o aplicație simplă pe care ați dori să o creați, cum ar fi o listă de lucruri de făcut sau un calculator (din nou, începeți mic) și încercați. Acest lucru vă va învăța cum să rezolvați problemele de arhitectură și design și să construiți diferite piese, astfel încât să se potrivească într-un întreg funcțional. Acestea sunt abilitățile esențiale care vă vor permite să vă numiți cu adevărat programator.
Resurse
În funcție de obiectivele, stilul de învățare și mijloacele dvs., este posibil să doriți să utilizați diferite resurse de-a lungul călătoriei. Pentru a vă ajuta să determinați ce metode sunt potrivite pentru dvs., iată un rezumat rapid al unora dintre instrumentele pe care le puteți utiliza, ordonate, aproximativ, de la învățare mai structurată la învățare mai puțin structurată.
Învățare structurată
Aceasta este categoria de opțiuni care oferă instructori, teme, teste, note, termene limită și consecințe reale dacă nu faceți din studiile dvs. cea mai mare prioritate. Acestea sunt opțiunile în care va trebui să mergi la curs sau să renunți la program.
Gradul universitar formal
Cea mai costisitoare, dar, pentru mulți, cea mai valoroasă opțiune, o diplomă universitară formală vă va oferi cea mai bună bază pentru o carieră înfloritoare în programare și tehnologia computerelor. Veți primi recunoaștere pentru realizările dvs. sub forma diplomei dvs. (un pas important atunci când intrați pe piața profesională). Dar, mai important, vei ieși cu o înțelegere profundă și detaliată a tuturor lucrurilor legate de computer, iar abilitățile tale de a scrie un software cu adevărat de top și eficient vor reflecta acest lucru.
Iată câteva dintre lucrurile pe care vă puteți aștepta să le învățați în profunzime de la orice program universitar decent și care ar putea fi mai dificil să găsiți instrucțiuni aprofundate în altă parte.
- Circuite electrice - Fizica de bază care stă la baza practic întregului hardware de calculator.
- Circuite logice digitale - Cum să reprezentați adevărul și constructele logice cu circuite.
- Microprocesoare și sisteme informatice - Cum sunt combinate circuitele logice pentru a face o mașină de calcul programabilă. Ce se întâmplă cu toți acești ace mici de metal și fire imprimate.
- Sisteme de operare - Cum să programați un computer pentru a gestiona, organiza și proteja singur și pentru a permite funcționarea în siguranță a mai multor aplicații.
- Baze de date - Cum să stocați și să copiați cantități mari de date fără a le pierde, a le corupe sau a face imposibilă căutarea.
- Rețele - Cât de multe sisteme informatice diferite și care nu au legătură între ele pot vorbi între ele.
- Matematică superioară - Inclusiv calcul și algebră liniară. Esențial pentru orice carieră în domenii avansate sau de ultimă oră.
- Procesarea semnalului - Cum să treceți granița dintre lumea analogică și cea digitală și invers.
- Metode numerice - Pentru atunci când problemele din lumea reală nu se potrivesc perfect într-un computer.
Școala de informatică și inginerie vă va da în fund și va trebui să vă sacrificați și să vă dedicați pentru a o finaliza. Dar recompensele vor merita din plin. M-am străduit să-mi obțin propria diploma, dar ziua în care am primit-o rămâne una dintre cele mai mândre zile din viața mea.
Bootcamp-uri
Așa-numitele programe „bootcamp” au apărut pentru a satisface nevoile celor care nu au timp sau resurse pentru a urma o diplomă oficială, dar sunt dispuși să muncească din greu și măcar să învețe minimul necesar pentru a începe o carieră de dezvoltare software. Atât în ceea ce privește costul, cât și angajamentul necesar, ele se încadrează între o diplomă formală și opțiunile auto-dirijate discutate mai jos.
Bootcamp-urile implică de obicei 8 până la 12 săptămâni de studiu intens și costă aproximativ 10.000 USD. Acestea acoperă o mulțime de materiale într-un timp scurt, timp în care va trebui să sacrifici majoritatea celorlalte activități. Dar, ei promit să te pregătească pentru dezvoltarea de software în lumea reală și să te pună pe calea rapidă către o carieră în programare. Multe tabere de pregătire culminează cu zile de carieră sau încearcă în alt mod să te plaseze într-un loc de muncă plătit la scurt timp după absolvire.
Bootcamp-urile sunt un fenomen relativ recent și exploziv. Ca atare, este încă greu de măsurat rata de succes și mulți încă nu au dezvoltat un istoric dovedit de plasare a absolvenților în locuri de muncă. Acestea fiind spuse, se poate aștepta ca programele disponibile să se îmbunătățească pe măsură ce această nouă industrie în plină dezvoltare continuă să crească. Atâta timp cât îți faci cercetările cu atenție, s-ar putea să descoperi că aceasta este opțiunea perfectă pentru tine.
Cele mai multe bootcamp-uri sunt programe locale, așa că va trebui să vezi ce este disponibil în orașul tău. Dacă locuiți într-o metropolă importantă, poate puteți găsi ceea ce căutați pe această listă sau pe aceasta.
Învățare semi-structurată
Din ce în ce mai multe resurse devin disponibile în fiecare zi pentru cei care lucrează cel mai bine cu un element de structură și îndrumare, dar nu au timpul sau resursele pentru a se angaja într-o diplomă oficială sau un program de bootcamp. Aceste opțiuni sunt de obicei oferite în întregime online, iar multe sunt complet gratuite! Pe măsură ce cererea mare pentru astfel de servicii a devenit evidentă, aceste instrumente au crescut rapid în rafinament și valoare oferită. Cursurile de dezvoltare software au determinat în mod natural o mare parte din această evoluție, deoarece învățarea și predarea software-ului prin intermediul software-ului are beneficii evidente.
Cursuri online masive deschise (MOOC)
MOOC-urile sunt o resursă uimitoare și fac progrese majore în egalizarea condițiilor de concurență pentru o educație de calitate, la prețuri accesibile. Ele oferă o mare parte din structura și îndrumarea celor mai bune clase universitare formale din lume, dar sunt disponibile online pentru oricine, oriunde, care are o conexiune la internet. Multe MOOC populare sunt, de asemenea, complet gratuite , deși pentru un preț suplimentar (și angajamentul de a studia), creditul formal poate fi câștigat și pentru multe clase, echivalent cu creditele universitare.
Există multe platforme MOOC de primă clasă disponibile online, cu cursuri predate de profesori din cele mai prestigioase universități din lume și platforme comunitare, astfel încât tu și colegii tăi din întreaga lume să te poți ajuta reciproc să învețe. Iată câțiva dintre cei mai cunoscuți furnizori:
- Coursera
- EdX
- Udacity
Rețineți că, așa cum este anunțat, aceste cursuri oferă cursuri la nivel universitar, așa că ar fi bine să fiți pregătit să munciți din greu pentru a le trece!
Site-uri web de tutoriale ghidate
Dacă vă place structura și îndrumarea, dar nu vă plac termenele limită, există o mulțime de platforme online grozave care oferă instruire automată, pas cu pas, printr-o gamă largă de metode de livrare. Unele sunt conduse de tutoriale video, altele de text. Multe includ editori de cod interactiv pe care să le exersați în browser. Acestea vă oferă o mare flexibilitate de a învăța în propriul ritm, fie că este vorba de o jumătate de oră de practică la sfârșitul fiecărei zile sau de un maraton de 10 ore în weekend.
În timp ce multe dintre aceste platforme necesită un abonament plătit pentru a accesa tot conținutul, majoritatea oferă probe gratuite, astfel încât să puteți începe imediat și să decideți singur dacă funcționează pentru dvs.
- Academia Kahn
- Udemy
- Codecademy
- Codul Răzbunătorilor
- Scoala de cod
- Casă in copac
- Lynda
- Vedere plurală
Aceasta este doar o listă scurtă, așa că căutați în jur și vedeți ce mai există acolo!
Învățare nestructurată
Pentru cei care doresc să-și găsească propriul drum sau să-și îmbunătățească cunoștințele în timpul liber, fără presiunea lecțiilor structurate, următoarele instrumente oferă o abordare auto-dirijată. Chiar dacă veți adopta una dintre abordările de mai sus, s-ar putea să găsiți multe dintre aceste resurse utile pentru a vă completa învățarea sau pentru a oferi o platformă pentru exersare.
Site-uri web de foraj
Dacă scopul tău este doar să exersezi rezolvarea problemelor de programare, internetul, încă o dată, te-a acoperit. Următoarele site-uri oferă seturi din ce în ce mai extinse de provocări de codare, împreună cu interfețe interactive de codare, pentru rezolvarea problemelor, pentru a avea soluțiile evaluate din mers și pentru a compara modul în care se combină cu soluțiile altor utilizatori.
- Exercism.io
- CheckiO
- CodeChef
- CodeEval
- Războiul de cod
- Codilitatea
- HackerRank
Videoclipuri
Învățarea programării pasiv are un caracter practic limitat, dar dacă doriți să absorbiți unele dintre conceptele mai profunde, între întâlniri sau cu un pahar de vin seara, aceste serii de prelegeri sunt unele dintre cele mai bune. Dacă vă place acest gen de lucruri, verificați ce mai sunt disponibile pe YouTube și pe web.
- MIT OpenCourseWare
- Seria de prelegeri de la Universitatea Stanford
Cărți
Chiar și cu toate minunile tehnologiei disponibile, pentru mulți oameni încă nu există nimic ca o carte bună în care să se scufunde și să înțeleagă profund un subiect. Dacă vă place să învățați în acest fel, consultați Lista Toptal cu cele mai bune cărți de programare gratuite.
În încheiere
Învățarea codificării este o călătorie foarte personală. Fiecare începe cu resurse diferite și obiective diferite și întâmpină provocări și oportunități diferite pe parcurs. Nu vă faceți griji pentru ceea ce fac alții sau cum au ajuns acolo. Chiar și pentru programatorii experimentați, călătoria în sine nu se termină niciodată, deoarece există constant lucruri noi de învățat.
Așadar, sfatul meu pentru tine este să faci încet și să te bucuri de călătorie! Sunt multe de explorat și te așteaptă o lume de minuni. O călătorie de o mie de mile începe cu un singur pas. Iată niște pantofi buni. Noroc!