Populaire onderwerpen
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Het is de moeite waard om deze programmeertalen te leren, zelfs als je ze niet gebruikt:
1/6
C
C is een stap verwijderd van het schrijven van assembly. Het dwingt je om het verschil tussen "stack" en "heap" te begrijpen. Je moet ook omgaan met pointers — en je hersenen trainen om met indirectie om te gaan, zal je helpen om moeilijkere problemen later te begrijpen, aangezien bijna elk "moeilijk" probleem op de een of andere manier moet worden gemodelleerd met een zekere mate van indirectie.
2/6
Assembly
Leren hoe assembly werkt is een vereiste om te leren hoe compilers werken. In tegenstelling tot C, ben je ook gedwongen om te leren wanneer je een "register" gebruikt en ontwikkel je een sterker gevoel voor wat performant code is en wat niet. Ik denk dat weten hoe je in assembly moet programmeren waarschijnlijk het meest bijdraagt aan mijn vermogen om snel een nieuwe blockchain op te pakken. Ik benader ze met een mentaal model van "elke functionerende virtuele machine/cpu-architectuur moet de volgende kenmerken hebben, dus waar kan ik ze vinden?" Dit helpt me om nieuwe systemen te benaderen met een set intelligente vragen om te stellen in plaats van me af te vragen wat er aan de hand is.
3/6
Rust
Rust is zeer strikt over meerdere verwijzingen naar dezelfde waarde, iets waar andere talen je niet toe dwingen om over na te denken, ook al kan dat een bron van echte bugs zijn.
Bovendien is het type systeem van Rust vrij goed doordacht, zodat je meer keuzes hebt over hoe je de echte wereld kunt modelleren (dit is natuurlijk een dubbelzijdig zwaard, omdat je misschien te veel gaat nadenken over eenvoudige problemen, dus je moet leren hoe je de kracht die het je geeft kunt beheersen). Iemand die leert hoe je idiomatisch Rust schrijft, zal ook niet ver verwijderd zijn van het leren schrijven van functionele programmering.
4/6
Lisp
Als je functioneel programmeren wilt leren zonder gestraft te worden door de compiler, is dit de beste manier om het te doen. Bovendien krijg je blootstelling aan het krachtigste macrosysteem dat bestaat en zul je "zien" hoe recursieve structuren in dingen zoals JSON, XML en source code voorkomen.
Recursieve structuren betekenen niet dat je recursieve code moet schrijven. Het dwingt je eerder om na te denken over hoe je een groot probleem in kleinere problemen kunt opsplitsen en om eerst over de randgevallen na te denken in plaats van later.
Lisp heeft ook pionierswerk verricht op het gebied van: garbage collection, if-statements, macros, first-class functies en nog veel meer. Vrijwel alle moderne talen lenen wel een idee dat Lisp heeft uitgevonden. Dus als je Lisp kent, kun je intelligent vragen: "heeft deze taal een manier om X te doen? Zo niet, hoe kan ik het dan bereiken?"
Als je geobsedeerd bent door "praktisch" zijn, raad ik de Clojure-dialect aan, maar voor alleen leren is Racket vrij vriendelijk (als je er één kent, is het extreem eenvoudig om de andere te leren).
5/6
Haskell
Haskell heeft waarschijnlijk het strengste type-systeem dat bestaat (tenminste van de talen die ik ken). Het is zelfs strenger dan Rust en het dwingt je om na te denken over hoe je omgaat met operaties die kunnen mislukken (zoals een netwerkoproep). Het is alsof je werkt met een extreem pedante senior programmeur die elke fout die je maakt opmerkt, zelfs dingen die een zeer kleine kans hebben om een bug te veroorzaken. Ja, de compiler is zelfs strenger dan Rust, maar de constante feedback over "je hebt de mogelijkheid van ... niet overwogen" zal je helpen sneller beter te worden. Als je een junior engineer bent en een senior engineer wilt die altijd beschikbaar is, programmeer dan in Haskell en de wijsheid van onze voorouders zal je ten deel vallen.
6/6
Hoe ze helpen
Effectief leren gebeurt wanneer je probeert een probleem op te lossen en direct feedback krijgt op je werk — iets wat elk van deze talen op hun eigen manier goed doet.
Elke van deze talen dwingt je om je bezig te houden met kwesties die talen zoals JavaScript of Python onder het tapijt vegen en geeft je directe en onmiddellijke feedback op wat je verkeerd deed.
Vergeet niet: zowel junior als senior problemen kunnen code schrijven die een probleem "oplost" — maar de senior code is veel verfijnder. Die "verfijning" komt van training — iets wat elke van deze talen je gratis biedt.
9,26K
Boven
Positie
Favorieten