Wat zijn de beste bronnen om een ​​goede autodidactische software-engineer te worden?

Beste antwoord

Het echte antwoord is “Het hangt ervan af!”. Het hangt af van welk segment u het meest interesseert: front-end, full-stack, backend, data-science, enz. De basis van al deze aspecten kan worden samengevat zoals hieronder:

  • Kies je favoriet programmeertaal. En leer elk concept van die taal door te oefenen om het in een of ander codeprobleem te gebruiken. Dit zal een goede basis leggen voor het leren van een andere programmeertaal, ook al is het paradigma compleet anders. Om A te waarderen, moet je smaak hebben voor B, want in zekere zin is alles relatief. Je zou talen gaan vergelijken op basis van hoe het sommige problemen oplost.
  • Codeer Katas. Probeer hetzelfde probleem op verschillende manieren op te lossen. Denk na over de verschillende benaderingen die u hebt geprobeerd. Doe dit voor elke andere code kata die je doet. Het helpt!
  • Doe een mini-project om een ​​probleem op te lossen. Bezoek het na enige tijd opnieuw en kijk of u functies kunt toevoegen. Je zou jezelf waarschijnlijk moeten misbruiken voor het slechte werk dat je hebt gedaan. Dit is een goed besef. Denk na over uw fouten, bedenk wat de betere manier is waarop u bent gegaan. Leer van je fouten. Dit is wat echte ervaring is. Ervaring is niet in aantal, maar wat je leert terwijl je dingen doorneemt.
  • Kies een miniproject of bibliotheekcode van Github en lees de code om te zien hoe een probleem is opgelost. Het lezen en doordenken van code van anderen helpt iemand.
  • Lees boeken, blogs, enz.
  • Begin met het schrijven van je gedachten via blogs. Het helpt zeker bij het leren.
  • Woon bijeenkomsten en conferenties bij om te weten wat er in de buurt gebeurt. Het kan uw leerproces stimuleren. We hebben tenslotte allemaal een dosis motivatie en een gevoel van doelgerichtheid nodig dat van tijd tot tijd wordt opgewekt.
  • Probeer uw lessen te delen tijdens bijeenkomsten en conferenties. Het werkt magisch op je – serieus.

Speciale ProTip: Had ik al gezegd dat je onderweg waarschijnlijk veel grappenmakers zult tegenkomen die je energie en tijd zouden verspillen en je ervan zouden weerhouden wat je doet. Leren om critici te onderscheiden van grappenmakers is een enorme levensredder.

Dit is wat ik deed sinds het begin van mijn carrière en ik blijf het allemaal doen, zelfs vandaag nog.

Antwoord

Het hangt ervan af wat u bedoelt met software engineer. De beste bron voor software-engineering die ik heb gevonden, is ervaring. Heb even geduld. De meeste antwoorden lijken hier over programmeren te gaan, en er zijn inderdaad veel uitstekende bronnen over programmeren (met veel goede voorbeelden in de antwoorden hier). Ik heb altijd het gevoel gehad dat het probleem in drie categorieën is opgesplitst:

  • Programmeren. Kies een redelijke taal voor het soort problemen dat u vandaag graag aanpakt. Leer het goed. Veel oefenen. Veel lezen van andere gerespecteerde expertcodes. Schrijf nog wat meer. Voeg een taal toe als dat nodig is of zoals geïnteresseerd.
  • Algoritmen, gegevensstructuren, vergelijkende talen en de hoeveelheid kennis die over het algemeen informatica wordt genoemd. Dit is wat het spel oproept van het oplossen van kleine problemen tot het oplossen van grote problemen, het effectief oplossen (niet alleen efficiënt), en het begrijpen van de beperkingen van de oplossingen zodat je ze kunt uitleggen.
  • “Software engineering ”Is iets anders voor mij dan de bovenstaande twee ideeën. Het is het proces waarmee software aan klanten wordt geleverd. Het is een consistente, herhaalbare, betrouwbare levering van de oplossing. Het is begrijpelijk dat een GUI handig is voor het bouwen van eerste proof-of-concepts / prototype-oplossingen op uw desktop, maar onvoldoende om in “productie” te leveren. Het is het begrip van de leveringspijplijn bij elke stap en waarom elke stap wordt uitgevoerd. Het is allemaal automatisering en discipline. Zonder discipline kan software niet opschalen. Ik moet hierover nog een cursus zien, omdat het voor het grootste deel een training op de werkplek is. En veel plaatsen begrijpen dit verkeerd. Fouten zijn kostbaar.

Misschien is koken de beste metafoor die ik je kan geven. Je kunt vrij snel leren koken. Je kunt goed worden in een handvol recepten en oefenen maakt je snel. Voer het op om een ​​chique maaltijd te koken voor vrienden en familie en je stapt een beetje uit je comfortzone, misschien heb je nieuwe vaardigheden, nieuwe gereedschappen, nieuwe recepten nodig. Neem een ​​les of twee en je kunt je spel dramatisch verbeteren, en de lessen omvatten alles van avondlessen op de plaatselijke universiteit tot Le Cordon Bleu. Dan is er de stap naar “restaurant” die alles verandert. Het gaat nu om de betrouwbare, herhaalbare bezorging van voedsel aan mensen met verwachtingen. U sourcen, batchen, prefaseeren, voorbereiden en bewerken op een andere manier. De “industrialisatie” van het proces is “engineering”. En je maakt nu deel uit van een team. En er is een klant. Het maakt niet uit of je een tacokraam bent of een restaurant met een Michelin-ster, het is anders. Geen enkele hoeveelheid werk in de klas bereidt u volledig voor op al het leren op de werkplek.

En je kunt ze alle drie tegelijk gaan leren. Begrijp gewoon aan welke van de drie vaardigheden u werkt, en vergeet de andere twee sets niet. De eerste twee komen meestal met oefenen, maar de laatste met ervaring.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *