Mijn beste tips voor nieuwe ontwikkelaars: advies van een (meestal) autodidactische software-ingenieur

De meest voorkomende vraag die ik krijg van bloglezers is: "Wat is je advies voor nieuwe programmeurs?" Dus ik dacht dat het tijd was om mijn gedachten op te schrijven.

Ik zal in de toekomst mijn hele verhaal schrijven, maar ik heb twee informatica-lessen gevolgd aan de universiteit. Kort daarna kreeg ik een stage in software engineering. Ik begon met webontwikkeling. Aanvankelijk werkte ik aan de backend en uiteindelijk aan de frontend. Mijn universiteit heeft absoluut geen webontwikkeling gegeven in die eerste paar lessen informatica, dus ik heb mezelf geleerd.

Ik denk niet dat mijn verhaal uniek is. Alle programmeurs zijn tot op zekere hoogte autodidact, of ze nu volledig autodidact zijn of een master in informatica hebben. Iedereen heeft zichzelf zoiets als RegEx geleerd. Zelfstudie kan zelfs een van de belangrijkste vaardigheden zijn die u als ontwikkelaar kunt hebben.

Naast mijn eigen ervaring, leer ik ook mensen coderen als mijn primaire taak en voor organisaties waar ik vrijwilligerswerk bij doe. Dus dit artikel put ook uit die ervaring.

Dus hier zijn mijn tips om te beginnen.

Mijn tips voor nieuwe programmeurs

1. Heb je reden en onthoud het

Als je wilt beginnen met programmeren, moet daar een reden voor zijn. Die reden kan zijn dat je dol bent op het schrijven van code of dat je een lucratievere carrière wilt hebben. Het kan zijn dat u veel Excel-werk doet en dat wilt u efficiënter maken.

Houd die reden bij. Programmeren is moeilijk en u zult soms gefrustreerd raken. Het is essentieel om die reden in gedachten te houden en u eraan te houden. U kunt een plaknotitie op uw computer plaatsen of een notitie op uw startscherm. Of (zoals ik) schrijf het op je spiegel met een droog uitwisbare marker.

2. Bouw een solide basis

Dit is misschien een minder vaak voorkomend advies, maar ik vind het echt nuttig. Voordat je code gaat schrijven, als je al een tijdje niet naar wiskunde hebt gekeken, zou ik de concepten uit Algebra 1 opnieuw bekijken. Programmering is gebaseerd op Algebra 1 wiskunde, zoals functies en variabelen. Het begrijpen van deze concepten buiten het programmeren zal in de toekomst super waardevol zijn. Ik raad de Algebra 1-cursus van Khan Academy aan!

laat x = 1; // conceptueel hetzelfde als algebraïsche variabelen!
functie add (x, y) {// hetzelfde als algebraïsche functies!
  retourneer x + y
}

3. Zoek een community

Het zal nuttig zijn om een ​​community te vinden die je ondersteunt bij het schrijven van code. Deze community zal waardevol zijn, omdat andere mensen zich op dezelfde plaats als jij zullen bevinden. Ze kunnen middelen bieden die hen hebben geholpen en aanmoediging bieden.

Ik zou willen voorstellen een ontmoeting bij u in de buurt te vinden als de beste oplossing hier. Zelfs kleine steden hebben meestal een groep in de buurt. Als er geen is, zou ik dev.to en de CodeNewbie-gemeenschap als twee uitstekende alternatieven willen voorstellen. CodeNewbie heeft een wekelijkse Twitter-chat, een Slack-groep en podcasts om naar te luisteren. Dev.to heeft een aantal blogposts en een #discuss-tag waar u uw vragen kunt plaatsen.

4. Breek problemen op in kleinere

Een van de belangrijkste onderdelen van programmeren is het nemen van een groot probleem en het in kleinere en kleinere stukjes te breken totdat die stukjes oplosbaar zijn. Als u op zoek bent naar een lege teksteditor die niet weet waar u moet beginnen, kan het zijn dat u het probleem niet voldoende hebt opgesplitst!

5. Pseudocode

In verband met het vorige punt, is het vaak handig om in detail op te schrijven wat u in gewone woorden probeert te doen voordat u zelfs code probeert te schrijven. Dit proces wordt pseudocodering genoemd en het kan elke gewenste vorm aannemen. Het kan ook nuttig zijn om een ​​probleem eerst heel langzaam op papier op te lossen. Je denkt na of schrijft zelfs de individuele stappen op die je gaat nemen om dat probleem op te lossen.

// als de gebruiker meer dan tien punten heeft
// "winnaar" weergeven op de pagina
// anders
//     blijven spelen

6. Omarm de leercyclus

Als je leert om te coderen als een tweede carrière, vooral als je een tijdje uit de klas bent geweest, zal leren leren een groot deel van je proces zijn. Er zijn veel ups en downs bij betrokken, wat heel natuurlijk is! Ik zet me schrap voor die achtbaan voordat je begint.

7. Begin met gratis bronnen

Er zijn een miljoen en een middelen om te leren hoe te coderen. Sommige zijn gratis en sommige zijn betaald. Ik zou beginnen met de gratis middelen. Zorg ervoor dat je eerst code schrijft. Daarna zou je kunnen overwegen om naar betaalde bronnen of zelfs een bootcamp te gaan.

8. Vind je niche

Er zijn veel werelden binnen het programmeren, dus probeer een wereld te vinden waar je van houdt en richt je daarop. In plaats van te proberen 8 programmeertalen, frontend en backend, gecompileerde en geïnterpreteerde talen, alle teksteditors, ontwikkeltools, enzovoort te leren, vind je een paar dingen waarin je echt geïnteresseerd bent en word je er goed in.

9. Word goed in patroonherkenning

Het herkennen van patronen in code is een van de belangrijkste vaardigheden die u kunt hebben. Als mensen het hebben over het schrijven van "DRY" -code (d.w.z. niet herhalen), hebben ze het over het verminderen van de patronen in uw code. Ik raad de game Set aan voor patroonherkenning - je kunt zelfs elke dag online spelen op de website van de New York Times!

// niet DRY-code
let reversedString = string.split (""). reverse (). join ("")
let reversedString2 = string2.split (""). reverse (). join ("")
// schonere code
const reverse = string => string.split (""). reverse (). join ("")
let reversedString = reverse (string)
let reversedString2 = reverse (string2)

10. Maak vroeg goede gewoonten

Het zal gemakkelijker zijn om in de toekomst schone code te schrijven als je er al vroeg aan begint. Slechte gewoonten kunnen moeilijk te doorbreken zijn. Hier zijn mijn tips voor het schrijven van schonere code. Als u bezig bent met webontwikkeling, kan het uitvoeren van HTML- en CSS-validators op uw code u precies vertellen wat u moet oplossen!

// Niet goed
functie avg (a) {
  let s = a.reduce ((x, y) => x + y)
  retourneer s / a.lengte
}
// Veel beter!
functie sumArray (array) {
  return array.reduce ((number, currentSum) => number + currentSum)
}

function averageArray (array) {
  return sumArray (array) / array.length
}

11. Bepaal je leerstijl

Iedereen leert anders. Of u nu een visuele, audio- of kinesthetische leerling bent, u leert anders dan de volgende persoon. Bepaal hoe u het beste leert en vertrouw op middelen die goed bij die stijl passen. Ik leer bijvoorbeeld het beste van het lezen van de documentatie en de codevoorbeelden. Ik verlies de focus gemakkelijk in tutorials.

12. Worstelen, maar niet teveel

Een beetje worstelen tijdens het leren is erg belangrijk. U wilt het probleem zelf oplossen en een antwoord vinden met behulp van bestaande bronnen. Dat gezegd hebbende, het is niet productief en demotiverend om te lang met een probleem te worstelen. Neem na een paar uur contact op met iemand voor hulp!

13. Word vertrouwd met mislukking

Programmeren is moeilijk en het vinden van het juiste antwoord zal niet onmiddellijk zijn. Een van de meest cruciale momenten in mijn programmeerreis was het niet schrijven van een Sudoku-oplosser. Het kan een uitdaging zijn om je aan te passen om niet alles meteen te krijgen en die foutmeldingen te zien. Maar dat is een enorm onderdeel van programmeren.

14. Houd van je foutmeldingen

Foutmeldingen zijn super handig! Wanneer je begint, kan die rode foutmelding angstaanjagend zijn! Een enorme stap om te nemen is om deze berichten te lezen, te begrijpen en ze vervolgens te gebruiken om het probleem op te lossen. In feite komt u op een punt waarop een programma dat stilletjes faalt veel irritanter is dan een nuttige foutmelding.

Python-foutbericht

15. Sommige programmeertalen zijn eenvoudiger dan andere

Er is geen goed antwoord voor welke programmeertaal eerst moet worden geleerd. Sommige zijn gemakkelijker op te halen. Mijn top drie zijn Python, Ruby en JavaScript. Ik vind ze leuk omdat ze een grote community achter zich hebben, een meer eenvoudige syntaxis hebben en worden geïnterpreteerd, dus je hoeft geen compilatieproces te doorlopen.

16. U hoeft niet alles te weten

Het is meteen 100% onmogelijk om alles over programmeren te weten. Niemand kent elke programmeertaal, elke methode die er is, elke bibliotheek en elk framework, of de perfecte oplossing voor elk probleem. Maak je geen zorgen om alles te leren, concentreer je alleen op wat je weet en breid dat uit.

17. Focus op diepte boven breedte

Eén ding diepgaand leren is beter dan een klein beetje over veel dingen leren, vooral in het begin. Die diepgaande kennis zal overbrengen en het leren van dat volgende ding gemakkelijker maken. Zet de oogkleppen aan, zodat je niet in de verleiding komt om te laten vallen wat je aan het leren bent en naar iets nieuws te gaan.

18. Focus eerst op de fundamenten

De basisprincipes van programmeren zijn van onschatbare waarde. Je zult ze gebruiken, ongeacht wat je uiteindelijk met programmeren doet. Concentreer u op een gedegen kennis van lussen, conditionals, functies, gegevenstypen en (in de meeste talen) objectgeoriënteerde programmering voordat u verder gaat met het leren over die geweldige bibliotheek waar iedereen het over heeft.

Het zal zoveel gemakkelijker zijn om die bibliotheek te leren als je de basisprincipes heel goed kent. Ze gaan ook van taal naar taal, dus je hoeft ze maar één keer echt te leren. Daarna is het gewoon syntaxis!

19. Word goed in het oplossen van problemen

Probleemoplossing is de basis van programmeren! Hier beter in worden is van cruciaal belang. Raadsels oplossen, code op papier schrijven en problemen oplossen kan echt helpen bij het oplossen van problemen.

Iets wat ik bij nieuwe ontwikkelaars soms zie, is dat ze programmeren als een onderzoeksprobleem benaderen in plaats van een probleemoplossend project. Als ze iets goed genoeg googlen, hebben ze een oplossing. Ja, Google en Stack Overflow zijn super handig, maar vertrouwen soms ook op jezelf. Probeer een paar verschillende manieren uit voordat u het onderzoekt. Of onderzoek kleine delen van het probleem in plaats van het probleem zelf - d.w.z. "verander een string in een array JavaScript" in plaats van "reverse string JavaScript".

20. Word goed in onderzoek

Een van de grootste dingen om te leren is hoe u goede antwoorden op uw vragen kunt vinden of nieuwe functies van uw taal of bibliotheek kunt leren. Het gebruik van Google is belangrijk, net als het aansluiten bij communities en het abonneren op bronnen. De Google-sjabloon die ik normaal gebruik is "probleemtaal / framework / bibliotheek" in zo min mogelijk woorden en zonder vulmiddel. Dus "sort array JavaScript", "spin element CSS" of "create router Vue".

21. Bouw projecten waar je van houdt

Wanneer je leert, bouw je verschillende projecten om je vaardigheden te oefenen (en te laten zien). Kies projectideeën die voor u interessant zijn - het is veel waarschijnlijker dat u ze afmaakt en eraan wilt werken. Gerelateerd: voltooi die projecten. Een paar echt goed afgewerkte projecten is veel indrukwekkender dan een aantal half afgewerkte projecten!

22. Vergelijk jezelf alleen met jezelf

Er zijn veel mensen die daar leren coderen. Vergelijk je voortgang niet met die van iemand anders. Vergelijk jezelf in plaats daarvan met jou en concentreer je op je eigen groei.

23. Doe een aantal code-uitdagingen

Snelle code-uitdagingen kunnen echt helpen om de fundamenten te verstevigen. Ze zijn geweldig voor het oplossen van problemen en oefenen voor interviews. Ik post er elke dag een op Twitter met de hashtag #CodingPuzzle als je wilt dat iemand anders ze oplost!

"""
Zoek het element in een array die maar één keer voorkomt
van https://www.hackerrank.com/challenges/ctci-lonely-integer
"""
uit collecties import Counter
def lonely_integer (a):
    a_counter = Counter (a)
    voor l, tel in a_counter.items ():
        indien aantal == 1:
            terug l

24. Vier je overwinningen

Leren programmeren kan een heel moeilijk proces zijn, dus als je iets bereikt, ook al is het klein, vier het dan! Ik houd mijn overwinningen bij in Google Keep, dus als ik een slechte dag heb, kan ik terugkomen op die overwinningen en ze onthouden.

25. Programmering is geweldig

Programmeren is echt cool omdat je dingen kunt bouwen. Ik kom altijd terug op dit citaat van Sandi Metz:

Degenen onder ons die software willen schrijven, hebben ongelooflijk veel geluk. Software bouwen is een plezier zonder schuldgevoel omdat we onze creatieve energie gebruiken om dingen voor elkaar te krijgen. We hebben ons leven zo geregeld dat het beide kanten op gaat; we kunnen genieten van de pure handeling van het schrijven van code in de wetenschap dat de code die we schrijven gebruik heeft. We produceren dingen die ertoe doen. We zijn moderne ambachtslieden, bouwen structuren die de huidige realiteit vormen, en niet minder dan metselaars of bruggenbouwers, we zijn gerechtvaardigd trots op onze prestaties.
Dit delen alle programmeurs, van de meest enthousiaste newbie tot de schijnbaar ouderwetse oudere, of ze nu werken bij de lichtste start-up op internet of de meest standvastige, diepgewortelde onderneming. We willen ons best doen. We willen dat ons werk betekenis heeft. We willen onderweg plezier hebben.
Sandi Metz

In contact te blijven!

Als je dit artikel leuk vond, is er nog veel meer waar het vandaan kwam! Ik stuur elke week een nieuwsbrief met mijn favoriete links en wat ik die week heb geschreven. Je kunt me ook volgen op Twitter om mijn berichten te zien zodra ze uitkomen!

Oorspronkelijk gepubliceerd op zen-of-programming.com.