Merită să înveți aceste limbaje de programare, chiar dacă nu le folosești: 1/6 C C este pe pas îndepărtat de la asamblarea scrisului. Vă obligă să înțelegeți diferența dintre "stivă" și "grămadă". De asemenea, trebuie să te încurci cu indicații – iar antrenamentul creierului tău pentru a gestiona indirecția te va ajuta să rezolvi probleme mai dificile mai târziu, deoarece aproape fiecare problemă "dificilă" trebuie modelată cu un anumit nivel de indirecție.
2/6 Adunare Învățarea modului în care funcționează asamblarea este o condiție prealabilă pentru a învăța cum funcționează compilatoarele. Spre deosebire de C, ești forțat să înveți și când folosești un "registru" și vei dezvolta un simț mai puternic pentru ceea ce este cod performant și ce nu. Cred că știind cum să programez în asamblare contribuie probabil cel mai mult la a mă ajuta să pot ridica un nou blockchain foarte repede. Le abordez cu un model mental de "orice arhitectură de mașină virtuală/procesor funcțională trebuie să aibă următoarele caracteristici, deci unde le pot găsi?" Acest lucru mă ajută să abordez noile sisteme cu un set de întrebări inteligente de pus, mai degrabă decât să mă întreb ce naiba se întâmplă.
3/6 Rugină Rust este foarte strict în ceea ce privește mai multe referințe la aceeași valoare, ceva la care alte limbi nu te obligă să te gândești, chiar dacă asta poate fi o sursă de erori reale. În plus, sistemul de tip Rust este destul de bine gândit, așa că aveți mai multe opțiuni despre cum să modelați lumea reală (aceasta este o sabie cu două tăișuri, desigur, deoarece s-ar putea să ajungeți să vă gândiți prea mult la probleme simple, așa că trebuie să învățați cum să controlați puterea pe care v-o oferă). Cineva care învață cum să scrie Rust idiomatic nu va fi departe de a învăța cum să scrie programare funcțională.
4/6 Lisp Dacă doriți să învățați programarea funcțională fără a fi pedepsit de compilator, acesta este cel mai bun mod de a face acest lucru. În plus, veți avea expunere la cel mai puternic sistem macro existent și veți "vedea" structura recursivă în lucruri precum JSON, XML și codul sursă. Structura recursivă nu înseamnă scrierea codului recursiv. Mai degrabă, te obligă să te gândești cum să împărțiți o problemă mare în probleme mai mici și să vă gândiți mai întâi la cazurile de colț decât mai târziu. Lisp a fost, de asemenea, pionier: colectarea gunoiului, instrucțiuni if, macro-uri, funcții de primă clasă și o mulțime de alte lucruri. Aproape toate limbile moderne împrumută o idee inventată de Lisp. Deci, dacă îl cunoașteți pe Lisp, puteți întreba inteligent "are acest limbaj un mod de a face X? Dacă nu, cum o realizez?" Dacă ești obsedat să fii "practic", îți recomand dialectul Clojure, dar doar pentru învățare, Racket este destul de prietenos (dacă știi unul, este extrem de ușor să-l înveți pe celălalt).
5/6 Haskell Haskell are probabil cel mai strict sistem de caractere existent (cel puțin dintre limbile pe care le cunosc). Este chiar mai strict decât Rust și te obligă să te gândești cum să gestionezi operațiunile care ar putea eșua (cum ar fi un apel de rețea). Este ca și cum ai lucra cu un programator senior extrem de pedant care prinde fiecare greșeală pe care o faci, chiar și lucrurile care au șanse foarte mici să ducă la un bug. Da, compilatorul este chiar mai pedepsitor decât Rust, dar feedback-ul constant despre "nu ați luat în considerare posibilitatea de..." te va ajuta să te îmbunătățești mai repede. Dacă sunteți un inginer junior și doriți un inginer senior la robinet, programați în Haskell și înțelepciunea strămoșilor noștri vă va fi acordată.
6/6 Cum ajută Învățarea eficientă are loc atunci când încerci să rezolvi o problemă și primești instantaneu feedback despre munca ta - ceva ce fiecare dintre aceste limbi face bine în felul său. Fiecare dintre aceste limbaje vă obligă să vă implicați în probleme pe care limbaje precum JavaScript sau Python le mătură sub covor și vă oferă feedback direct și imediat despre ceea ce ați greșit. Amintiți-vă: atât problemele junior, cât și cele senior pot scrie cod care "rezolvă" o problemă - dar codul senior este mult mai rafinat. Această "rafinare" vine din antrenament – ceva ce fiecare dintre aceste limbi îți oferă gratuit.
9,24K