Hva er de beste ressursene for å bli en god selvlært programvareingeniør?


Beste svaret

Det virkelige svaret er «Det kommer an!». Det avhenger av hvilket stykke som interesserer deg mer – Front-end, Full-stack, Backend, Data-science osv. Grunnlaget for alle disse kan trekkes ut som nedenfor:

  • Velg din favoritt programmeringsspråk. Og lær hvert konsept med det språket ved å øve deg på å bruke det i et eller annet kodeproblem. Dette vil legge et godt grunnlag for å lære et annet programmeringsspråk, selv om paradigmet er helt annerledes. For å sette pris på A, bør du ha smak for B, for på en eller annen måte er alt relativt. Du vil begynne å sammenligne språk basert på hvordan det løser noen problemer.
  • Gjør Code Katas. Prøv å løse det samme problemet på forskjellige måter. Tenk gjennom de forskjellige tilnærmingene du prøvde. Gjør dette for hver annen kodekata du gjør. Det hjelper!
  • Gjør et miniprosjekt som løser noen problemer. Gå tilbake til det etter en stund, og se om du kan legge til funksjoner. Du bør mest sannsynlig misbruke deg selv for den dårlige jobben du gjorde. Dette er en god realisering. Tenk gjennom feilene dine, tenk på hva som er den bedre måten du tok. Lær av feilene dine. Dette er det som er ekte opplevelse. Erfaring er ikke i antall, men det du lærer når du arbeider gjennom ting.
  • Velg noe miniprosjekt eller bibliotekekode fra Github, og les koden for å se hvordan noen problemer blir løst. Å lese og tenke gjennom andre koder hjelper en.
  • Les bøker, blogger osv.
  • Begynn å pene tankene dine via blogger. Det hjelper læringen din helt sikkert.
  • Delta på møter og konferanser for å få kunnskap om hva som skjer rundt. Det kan føre til læring. Når alt kommer til alt trenger vi alle en dose motivasjon og en følelse av formål fremkalt fra tid til annen.
  • Prøv å dele dine erfaringer i møter og konferanser. Det virker magisk på deg – seriøst.

Spesiell anbefaling: Nevnte jeg, underveis, vil du sannsynligvis komme over mange jokere som vil tappe din energi og tid, og motløse deg fra hva du gjør. Å lære å skille kritikere fra jokere er en enorm livredder.

Dette gjorde jeg siden starten av karrieren min, og jeg fortsetter å gjøre det hele selv i dag.

Svar

Det kommer an på hva du mener med programvareingeniør. Den beste ressursen for programvareutvikling jeg har funnet er erfaring. Ha med meg et øyeblikk. De fleste svarene her ser ut til å handle om programmering, og det er virkelig mange gode ressurser på programmering (med mange gode eksempler i svarene her). Jeg har alltid følt at problemet brytes ned i tre kategorier:

  • Programmering. Velg et rimelig språk for de slags problemer du liker å takle i dag. Lær det godt. Mye øvelse. Mye lesing av andre respekterte ekspertkoder. Skriv litt til. Legg til et språk etter behov eller som interessert.
  • Algoritmer, datastrukturer, sammenligningsspråk og kunnskapsgruppen generelt referert til som datavitenskap. Dette er det som løfter spillet fra å løse problemer i det lille, til å løse store problemer, løse dem effektivt (ikke bare effektivt), og forstå grensene for løsningene slik at du kan forklare dem.
  • “Software engineering ”Er en annen ting for meg enn de to ovennevnte ideene. Det er prosessen programvare leveres til «kunder». Det er konsekvent repeterbar pålitelig levering av løsningen. Det er forståelse for at en GUI er fin for å bygge innledende proof-of-concept / prototypeløsninger på skrivebordet, men ikke tilstrekkelig til å levere til «produksjon». Det er forståelsen av leveringsrørledningen ved hvert trinn, og hvorfor hvert trinn er gjort. Det er all automatisering og disiplin. Uten disiplin skaleres programvaren ikke. Jeg har ennå ikke sett et kurs på dette, for det meste er det trening på jobben. Og mange steder får dette feil. Feil er kostbare.

Kanskje den beste metaforen jeg kan gi deg er å lage mat. Du kan lære å lage mat for deg ganske raskt. Du kan bli god på en håndfull oppskrifter, og øvelse gjør deg rask. Trinn det til å lage et fancy måltid for venner og familie, og du går litt ut av komfortsonen din, kanskje trenger du nye ferdigheter, nye verktøy, nye oppskrifter. Ta en klasse eller to, så kan du dramatisk øke spillet ditt, og klassene spenner over alt fra nattkurs på den lokale høgskolen til Le Cordon Bleu. Så er det trinnet til «restaurant» som endrer alt. Det handler nå om pålitelig repeterbar levering av mat til folk med forventninger. Du kilde, batch, pre-stage, forberede og verktøy på en annen måte. «Industrialiseringen» av prosessen er «engineering». Og du er nå en del av et team. Og det er en kunde. Det spiller ingen rolle om du er en tacostand eller en restaurant med Michelin-stjerne, det er annerledes. Ingen mengder klassearbeid forbereder deg for all læring på jobben.

Og du kan begynne å lære alle tre på en gang. Bare forstå hvilke av de tre ferdighetssettene du jobber med, og ikke glem de to andre ferdighetssettene. De to første har en tendens til å komme med praksis, men den siste kommer med erfaring.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *