Cum să înveți programare (de la zero!) (V)

Cum să înveți programare (de la zero!) (V)

Cred că ne cam apropiem cu pași repezi spre sfârșitul acestui mini-serial. Am explicat despre motivație, despre focus, despre ce nu ai nevoie. Dar… până la urmă, cum începi?

Cum începi?

Ei bine, lucrurile sunt mai simple decât crezi. Pentru că programarea asta are fix două părți. Prima parte e cea mai dificilă și, din fericire, treci doar o singură dată: antrenarea creierului să gândească… analitic cred că-i cuvântul.

Prima parte: învățarea

Atunci când înveți un concept nou, ajută extrem de mult să poți face analogii la ceea ce cunoști deja. În Code Complete treaba asta a fost numită „explicarea pe bază de metafore”. O definiție seacă, într-o limbă de lemn, intră pe o ureche, iese pe alta. Dar o metaforă… ei bine, asta rămâne.

Doar că noțiunile de programare nu au analogii bune, ergo tot procesul poate părea mai greu. Dar ajută enorm dacă ești familiar cu matematica.

Prin urmare, cursul/tutorialul/cartea care te-ar învăța programare ar trebui să înceapă cu noțiuni foarte bine explicate și, mai important, să fie bine înțelese. Dacă îți imaginezi că poți „sări” peste o anumită noțiune (din varii motive) și să te descurci ulterior… ei bine, am o veste nu prea bună pentru tine.

Partea a doua: re-învățarea

Dacă de învățarea efectivă te lovești o singură dată, când înveți programare, prin re-învățare treci de fiecare dată când treci la un limbaj nou și presupune învățarea subtilităților respectivului limbaj, a tooling-ului șamd.

În punctul ăsta se presupune că deja știi cum să înveți. Știi să te documentezi. Știi la ce să (nu) acorzi atenție și tot așa, prin urmare nu voi intra în mai multe detalii.

Cu ce limbaj de programare încep?

Chiar dacă am zis că nu contează limbajul cu care începi, contează să începi cu un limbaj. Care ar putea fi ăla? Ai nevoie de un limbaj ce se poate instala ușor și care are o gramatică simplă (adică ceva ce se poate citi cât mai ușor în engleză).

Sigur, în teorie poți începe cu orice limbaj, indiferent că-i C, Java sau ASM, dar scopul este să poată fi citit cât mai ușor de cineva care vede pentru prima dată cod scris. Iar main() sau strict-typing s-ar putea să nu aibă sens la început.

Eu aș recomanda ori Python ori Ruby pentru început, datorită eleganței codului scris și lipsa „zgomotului de fond”: acolade, punct și virgulă etc. Dar, până la urmă, contează și limbajul din cursul urmat, nu?

Recomandări

Ca o încheiere a acestei serii voi face câteva recomandări care îți vor permite să înveți programare singur. Și sigur.

  • CODE – Nu neapărat o carte de căpătâi, dar se explică la un nivel foarte accesibil anumite noțiuni din funcționarea unui CPU.
  • Learn to Program: The Fundamentals – se folosește de Python pentru a te învăța de la zero noțiunile esențiale în orice limbaj: strings arrays, boolean, loops etc. În plus, platforma permite și o auto-testare, ceea ce este un plus.
  • This is CS50x – vine de la Harvard și, la fel ca cel de mai sus, te ia de la zero să te învețe chestii. Spre deosebire de cursul de mai sus însă, face fix ce am zis eu mai sus: nu se concentrează pe un limbaj anume (treci prin Python, C, JavaScript) ci se concentrează pe explicarea noțiunilor care chiar contează.

Concluzii

Așa cum am zis, am început această serie de articole după ce l-am scris pe primul și mi-am dat seama că mă lungesc. Moment în care am zis să îl împart în două. La al doilea s-a repetat și tot așa. Nu am avut un outline ci doar o direcție în care am vrut să merg.

Că a ieșit bine sau nu, doar tu, cititorule, îmi poți spune într-un comentariu.

Spor la învățat!

4 Comentarii

Adaugă un comentariurăspuns pentru

Link-urile în context sunt binevenite. Comentariile fără nume/email valid sunt șterse.
PS: Comentariul NU este editabil.

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

Site-ul blog.iamntz.com utilizează cookie-uri. Continuarea navigării presupune acceptarea lor. Mai multe informații.

windows apple dropbox facebook twitter