Gå til innhold

Kan man gjøre karriere som selvlært programmerer?


Anbefalte innlegg

Heisann!

 

Etter nærmere 16 år som gitarist måtte jeg legge instrumentet på hylla pg.a. hudsykdom som ble uforenelig med hobbyen min, men jeg rakk å bli ganske god da jeg øvde i snitt 1-3 timer annenhver dag i alle disse årene.

 

Nå ønsker jeg å finne meg en ny hobby og jeg har alltid vært interessert i IT og programmering og leker med tanken om å gjøre dette som en hobby.

 

På bakgrunn av dette så ønsker jeg å spørre dere her på forumet om man på sikt kan gjøre karriere som selv-lært programmerer, og hvor lang tid man må beregne å bruke for å bli dyktig nok til at en arbeidsgiver ville vurdere ansettelse? Og er det noen programmeringsspråk som er selvsagte til en slik plan? Jeg ser for meg å kunne dedikere 1-3 timer annenhver dag til denne hobbyen.

 

I dag jobber jeg i logistikkbransjen, men på lengre sikt ser jeg at jeg vil bytte karriere til et mindre fysisk belastende arbeid.

 

Håper på en konstruktiv tråd rundt denne situasjonen som kan hjelpe meg å forstå hva som er realistisk.

  • Liker 1
Lenke til kommentar
Videoannonse
Annonse

Jeg vet ikke hvor gammel du er, men jeg antar 30+ hvis du har vært gitarist i 16 år. Det tar mange år å bli en dyktig programmerer. Først noen år mer utdanning, deretter noen år med erfaring fra prosjekter.

 

Selv om det er et stort behov etter programmerere tror jeg du vil få det vanskelig med å konkurere om jobbene mot nyutdannede ingeniører.

 

Hvis jeg var deg ville jeg satset mer på et spesifikt område innen data, ikke nødvendigvis programmering generelt. F.eks web-design. Der der er det mange som deg uten formell utdanning, men det er lett å vise at du har talent ved å vise til web-sider du selv har designet og kodet på hobbybasis.

 

Et annet tips: Skytjenester blir mer og mer vanlig og det er, og vil bli, et stort behov for såkalte DevOps ingeniører. Hvis du tar sertifiseringer for f.eks. AWS eller Azure DevOps vil det kunne åpne seg mange jobbtilbud uten formell datautdanning. Du bør først lære deg nettverk, Linux i tillegg til Windows sysadmin, generell programmering og AWS eller Azure. Jeg ville valgt AWS siden de har størst markedsandel, men Azure er også et godt valg. Jeg har erfaring med AWS, siden vi bruker et konsulentselskap for å håndtere vår AWS server-park, men vi har diskutert  å ansette en hel eller deltidsstilling etterhvert. Vi har faktisk eksplisitt vurdert at utdanning ikke er viktig så lenge vedkommende er sertifisert. Tror mange vil tenke som oss.

Lenke til kommentar
Gjest Slettet-t8fn5F

Retorisk svar. Kan man bli en god oversetter til f.eks. Mandarin, ved å lære seg språket selv?

 

Kjappeste måten å læres seg programmering, er første året på et eller annet Informatikk linje ved et universitet.

Først da er man klar for å lære seg å programmere i arbeidslivet.

 

Ved NTNU forventer foreleserne av du bruker vel 20 timer i uka på faget. I de 20 timene er det inkludert 4 timer forelesing. Resten er egeninnsats.

  • Liker 1
Lenke til kommentar
Gjest Slettet-t8fn5F

20 timer i uka per emne? 30sp (4 emner) svarer til 45 timer per uke, dvs. rundt 11.2 timer per emne i uka.

30 studiepoeng, 3 emner, blir totalt 60 timer i uka. Kommer jo helt an på hvor lett man tar til seg kunnskapen også.

Lenke til kommentar

Om jeg forstår deg rett så ønsker du å lære programmering ved å bruke 1-3 timer annenhver dag og ønsker å gjøre dette som hobby.

Jeg driver selv med webutvikling og spillutvikling, så jeg går innenfor det jeg kan litt om selv :)

 

Om du ikke har drevet med programmering før eller noe data-relatert, anbefaler jeg deg å forstå hvordan selve internett fungerer først, alt med DNS, hvordan alt henger sammen, det finnes mange gode tutorials på nettet / YouTube. Jeg vet ikke hvor erfaren du er innenfor dette området men å begynne slik er en god start. Så kan det også være ganske greit å vite hvordan en datamaskin fungerer, og hvordan vi bruker programmeringsspråk til å få en datamaskin til å gjøre slik vi ønsker. Da har du et ålreit grunnlag for videre læring.

 

Om du vil gå innenfor det å lage nettsider og drive med webutvikling generelt, så kan du i hvertfall vite at det er flere firmaer / bedrifter som er på utkikk etter utviklere, og i de aller fleste annonsene sier de at kompetanse dekker for manglende "formell" utdanning. Om du ønsker å gå innenfor webutvikling er JavaScript å anbefale. JavaScript (forkortet JS) kan du bruke både på servere (backend) og i nettleser (frontend). Server-språket kalles for "Node.js", men ellers er det bare å kalle det JavaScript. 

(Kan være verdt å merke seg at det er flere varianter av JS, men det er ikke relevant ennå).

 

Og før noen anbefaler dette, IKKE lær deg programmeringsspårket "PHP". Det er utdøende og brukes kun til "gammeldagse" nettsider/applikasjoner. PHP har en forferdelig syntaks som jeg ikke liker i det hele tatt. Et raskt Google-søk så vil du se at jeg ikke er den eneste som synes det :). Men, om du føler det er rett for deg, så kan du selvsagt lære deg det, men jeg liker det i alle fall ikke.

 

Til den andre kategorien...

 

Om du ønsker å drive med spillutvikling, så er det lurt å være god i matematikk. Jeg er ikke god på dette i det hele tatt, slik at det er sagt. Og igjen så har vi en backend (server) og frontend (klient / spiller). Så som du ser, alt er bygget opp av prinsippet mellom frontend og backend. Under kategorien spillutvikling så må du finne ut hvilken "engine" du vil bruke for å utvikle spillet. Det er et hav av disse, og noen av de mer populære er vel UE4 (Unreal Engine) og Unity. Nå, disse er ganske komplekse for nye utviklere.

 

Noen kommer til å gi meg "hate" for dette, men kanskje begynn med Scratch eller Roblox om du ønsker en lettere start. Da vil du i det minste få en smakebit av hvordan det er og finne ut selv om du ønsker å fortsette med det. Roblox bruker programmeringsspråket "Lua", og brukes på backend og frontend. Lua er i bunn og grunn ganske så enkelt å lære seg, og kan være lettere enn JS til å begynne med.

 

Nå, noen sier at det kan være lurt å gå på et eller annet kurs på nett, i utlandet (bootcamps) for å lære seg programmering. Det som alle programmerere vet er at alle lærer på ulik måte, men at man lærer ingenting ved å ikke gjøre noe selv (med unntak av genier som forstår alt). Du trenger motivasjon, fokus, og når du følger tutorials er det ikke nok å se at personen skriver kode, men du må faktisk gjøre det selv.

 

Jeg har selv gått i fellen med å tenke "ja han skriver så lite så da slipper jeg å gjøre det"... det gjør jeg aldri igjen. Jeg lærte ingenting, og du har jo lyst å lære deg å skrive kode selv, og ikke være avhengig av at andre skal gjøre det for deg, for det er jo jobben din.

 

Jeg håper selvsagt nå at du fortsatt ønsker å drive med IT og slikt. 

Lenke til kommentar
Gjest Slettet-t8fn5F

Om jeg forstår deg rett så ønsker du å lære programmering ved å bruke 1-3 timer annenhver dag og ønsker å gjøre dette som hobby.

Jeg driver selv med webutvikling og spillutvikling, så jeg går innenfor det jeg kan litt om selv :)

 

Om du ikke har drevet med programmering før eller noe data-relatert, anbefaler jeg deg å forstå hvordan selve internett fungerer først, alt med DNS, hvordan alt henger sammen, det finnes mange gode tutorials på nettet / YouTube. Jeg vet ikke hvor erfaren du er innenfor dette området men å begynne slik er en god start. Så kan det også være ganske greit å vite hvordan en datamaskin fungerer, og hvordan vi bruker programmeringsspråk til å få en datamaskin til å gjøre slik vi ønsker. Da har du et ålreit grunnlag for videre læring.

 

Om du vil gå innenfor det å lage nettsider og drive med webutvikling generelt, så kan du i hvertfall vite at det er flere firmaer / bedrifter som er på utkikk etter utviklere, og i de aller fleste annonsene sier de at kompetanse dekker for manglende "formell" utdanning. Om du ønsker å gå innenfor webutvikling er JavaScript å anbefale. JavaScript (forkortet JS) kan du bruke både på servere (backend) og i nettleser (frontend). Server-språket kalles for "Node.js", men ellers er det bare å kalle det JavaScript. 

(Kan være verdt å merke seg at det er flere varianter av JS, men det er ikke relevant ennå).

 

Og før noen anbefaler dette, IKKE lær deg programmeringsspårket "PHP". Det er utdøende og brukes kun til "gammeldagse" nettsider/applikasjoner. PHP har en forferdelig syntaks som jeg ikke liker i det hele tatt. Et raskt Google-søk så vil du se at jeg ikke er den eneste som synes det :). Men, om du føler det er rett for deg, så kan du selvsagt lære deg det, men jeg liker det i alle fall ikke.

 

Til den andre kategorien...

 

Om du ønsker å drive med spillutvikling, så er det lurt å være god i matematikk. Jeg er ikke god på dette i det hele tatt, slik at det er sagt. Og igjen så har vi en backend (server) og frontend (klient / spiller). Så som du ser, alt er bygget opp av prinsippet mellom frontend og backend. Under kategorien spillutvikling så må du finne ut hvilken "engine" du vil bruke for å utvikle spillet. Det er et hav av disse, og noen av de mer populære er vel UE4 (Unreal Engine) og Unity. Nå, disse er ganske komplekse for nye utviklere.

 

Noen kommer til å gi meg "hate" for dette, men kanskje begynn med Scratch eller Roblox om du ønsker en lettere start. Da vil du i det minste få en smakebit av hvordan det er og finne ut selv om du ønsker å fortsette med det. Roblox bruker programmeringsspråket "Lua", og brukes på backend og frontend. Lua er i bunn og grunn ganske så enkelt å lære seg, og kan være lettere enn JS til å begynne med.

 

Nå, noen sier at det kan være lurt å gå på et eller annet kurs på nett, i utlandet (bootcamps) for å lære seg programmering. Det som alle programmerere vet er at alle lærer på ulik måte, men at man lærer ingenting ved å ikke gjøre noe selv (med unntak av genier som forstår alt). Du trenger motivasjon, fokus, og når du følger tutorials er det ikke nok å se at personen skriver kode, men du må faktisk gjøre det selv.

 

Jeg har selv gått i fellen med å tenke "ja han skriver så lite så da slipper jeg å gjøre det"... det gjør jeg aldri igjen. Jeg lærte ingenting, og du har jo lyst å lære deg å skrive kode selv, og ikke være avhengig av at andre skal gjøre det for deg, for det er jo jobben din.

 

Jeg håper selvsagt nå at du fortsatt ønsker å drive med IT og slikt. 

De der er nærmere koding enn programmerings. Man bruker programmering for å lage de kodespråkene. Dette er ikke hate, men men. Man tar det som man vil ta det.

 

Programgrinespråket som har veldig lav inngangterskel og som ikke har så alt for bratt læringskurve, er C++.

Når man har lært seg det, så er det ikke så store problem å til seg et nytt språk.

 

Men har man tålmodigheten, så går man for GO med en gang.

Lenke til kommentar

De der er nærmere koding enn programmerings. Man bruker programmering for å lage de kodespråkene. Dette er ikke hate, men men. Man tar det som man vil ta det.

 

Programgrinespråket som har veldig lav inngangterskel og som ikke har så alt for bratt læringskurve, er C++.

Når man har lært seg det, så er det ikke så store problem å til seg et nytt språk.

 

Men har man tålmodigheten, så går man for GO med en gang.

 

Jeg mener i hvertfall at C++ ikke egner seg så bra som det første språket da det kan gi et litt komplekst bilde av programmering siden det er low-level, og det er ikke egnet så bra til å forstå viktige prinsipper som objekt-orientert programmering. Jeg anbefaler å begynne med et mer "high-level" språk som f.eks. JavaScript, Go, Python eller Lua da disse kan være lettere å lære. De gir også gjerne en mer "positiv effekt" da du kan få "gode" resultat av mindre kode.

 

Men, om man ønsker å gå dypere inn, som med C++, bør en være mer innstilt på å lære.

 

Jeg beklager også om jeg feilet på terminologien, da jeg ikke var helt sikker på om det var koding eller programmering de mente.

Lenke til kommentar
Gjest Slettet-t8fn5F

Jeg mener i hvertfall at C++ ikke egner seg så bra som det første språket da det kan gi et litt komplekst bilde av programmering siden det er low-level, og det er ikke egnet så bra til å forstå viktige prinsipper som objekt-orientert programmering. Jeg anbefaler å begynne med et mer "high-level" språk som f.eks. JavaScript, Go, Python eller Lua da disse kan være lettere å lære. De gir også gjerne en mer "positiv effekt" da du kan få "gode" resultat av mindre kode.

 

Men, om man ønsker å gå dypere inn, som med C++, bør en være mer innstilt på å lære.

 

Jeg beklager også om jeg feilet på terminologien, da jeg ikke var helt sikker på om det var koding eller programmering de mente.

C++ er så objektorientert som du kan få det og det er langt fra low level programming, men det er en helt annen side av diskusjonen for en som ønsker å begynne med programmering.

Lenke til kommentar

Det største problemet med C++, er nok at det er forholdsvis "low level", selv om det ikke trenger å være det selvfølgelig, kommer an på hva man driver med, men det er tross alt kun en utvidelse av C, med iostream, pointers osv, hvor man fremdeles bør ha grei kunnskap om hvordan man håndterer minne, "søppel" og den slags.

Det nest største problemet med C++, er at det er vanskelig å komme i gang med.

Det er komplisert, det må kompileres, man må ha en egnet editor osv. og det er faktisk svært vanskelig å starte opp med når man ikke kan noe som helst fra før.

 

For å ikke snakke om alle bibliotekene, det finnes så mange at det er nesten umulig å ha oversikt over alle, og noen av de benytter ofte merkelig syntaks og er vanskelige å forstå.

For en nybegynner vil nær sagt et hvert programmeringsspråk som er "interpreted" være enklere å komme i gang med, JavaScript er blant de aller enkleste å lære, og komme i gang med, med enormt god dokumentasjon, og det er C-lignende, så mye av det man lærer er nyttig senere dersom man velger å lære seg flere språk.

Python er også ganske greit å komme i gang med, i forhold til C/C++.

Generelt sett er det dårlig med jobber i spillbransjen, det var ikke noe jeg ville satset på som en karriere med mindre det er noe man brenner virkelig for.

 

Skal man jobbe med programmering, er de mest ettertraktede språkene i dag Java og C#, men som webutvikler kan man komme langt med kunnskap om JavaScript, CSS og HTML, og skal man kun jobbe med mobile applikasjoner, kan det være Swift er et bedre valg?

Det er ikke noe fasit på hvilket språk man burde lære seg, egentlig burde man bare forsøke å komme i gang så enkelt og greit som mulig, dette er ikke noe for alle, men dersom man liker det, så kan man heller finne ut hva man ønsker å drive med senere, og så lære seg de relevante språkene som trengs.

 

Personlig ville jeg kanskje faktisk anbefalt Go, for egen del synes jeg det er veldig likt C++, men det fjerner mange av problemene og fallgrubene med C++, å er mye enklere å bruke, selv om det også er en rimelig bratt læringskurve i starten med Go.
 

Endret av 0laf
  • Liker 1
Lenke til kommentar

Himmel og hav. Man lærer ikke å tenke på lavnivå om man programmerer i høynivå hele dagene, på samme måte som man ikke lærer å sykle med støttehjul.

 

Man blir heller ikke mer klar til å ta av støttehjulene bare man har syklet lenge nok med de. Å sy puter under armene på nybegynnere, med høynivåspråk som holder deg i hånden, er både nedlatende for nybegynneren og en invitasjon for vranglære og ignoranse.

 

At enkelte kan lage en karriere uten å vite hva en pointer er, er helt greit. Men da har du gjort et bevisst valg om å begrense deg.

Lenke til kommentar

Poenget er vel at dersom læringskurven er for bratt, og det er for vanskelig å komme i gang, så er det mindre sannsynlig at man fortsetter.

Har man startet på en utdannelse innen faget, så har man liksom ikke noe valg, med mindre man hopper av, man kommer seg nok minst igjennom "Hello World".
 
Skal man starte på egen hånd, så er det ufyselig enkelt å dytte ut ...

alert("Hello World")

i en nettleser, i forhold til å sette opp en kompiler og en IDE, inkludere "iostream", og så forstå hva …
 

#include <iostream>
using namespace std;
int main() {
  cout << "Hello World!";
  return 0;
}

..gjør i C++?

Derfra blir det fort veldig komplisert med C++, i forhold til enkelte andre språk.

 

De færreste starter med C++, de aller fleste starter med JavaScript, Python, PHP eller lignende, for så å gå over til C/C++ når man har forstått det mest elementære, man trenger ikke slutte å lære nye ting fordi man begynner med et enkelt språk, men selv ikke JavaScript er "enkelt" når man begynner å sette seg inn i ECMA-standarden, eller når en nybegynner skal forstå scope, closures, async osv.

Endret av 0laf
  • Liker 1
Lenke til kommentar

Jeg mener i hvertfall at C++ ikke egner seg så bra som det første språket da det kan gi et litt komplekst bilde av programmering siden det er low-level, og det er ikke egnet så bra til å forstå viktige prinsipper som objekt-orientert programmering. Jeg anbefaler å begynne med et mer "high-level" språk som f.eks. JavaScript, Go, Python eller Lua da disse kan være lettere å lære. De gir også gjerne en mer "positiv effekt" da du kan få "gode" resultat av mindre kode.

 

Men, om man ønsker å gå dypere inn, som med C++, bør en være mer innstilt på å lære.

 

Jeg beklager også om jeg feilet på terminologien, da jeg ikke var helt sikker på om det var koding eller programmering de mente.

Etter nærmere et tiår på baken som profesjonell C++-utvikler så kan jeg fastslå en ting med en gang: Den mest bedrite C++-koden jeg har jobbet med stammer fra C-utviklere og utviklere generelt som i ettertid har lært seg C++.

 

Ønsker man å utvikle i C++ så er min klare anbefaling å starte med C++. Moderne C++ er såpass bra at det å begynne og argumentere med at det er for lavnivå er tullete. Misforstå meg rett, C++ kan være svært lavnivå hvis man vil, men det er da virkelig ingenting som tilsier at man på død og liv må starte med det absolutt lavnivå man finner. Det kan faktisk introduseres i små porsjoner når det passer seg.

Lenke til kommentar

Begynn med C før C++, så er det ikkje så vanskeleg. C er et fint språk å starte å lære seg programmering med.

Kan du utdype det litt mer? For meg så blir det å anbefale C omtrent som å anbefale å starte med assembly. Det er jo tross alt bare lavnivå uten støttehjul. Flott når man mestrer det, men ikke så veldig nybegynnervennlig.

Lenke til kommentar

Du kan fokusere på din egen kode fremfor å ta i bruk andre sin kode, det er for læring. Pekere, malloc, structs og helt banalt enkle ting.

Selv synes eg at C++ er grusomt, det er eit gigantisk språk og tusenvis av måter å angripe samme problem på og selv en dreven C++ utvikler må noen ganger rive seg i håret over hva en annen C++ utvikler har funnet på. Fordelene med C++ betyr at eg like godt kan kode Java.

Lenke til kommentar

Takk for mange innspill!

 

Her er min erfaring fra tidligere utvikling:

 

Jeg vet hvordan en datamaskin opererer, og fra 2000 til 2008 lærte jeg meg, og kodet på hobby basis, HTML, PHP, CSS og MySQL. I tillegg så "scriptet" jeg en mIRC-klient i sin tid til å oppføre seg som en enkel bot som jeg kunne få til å styre en kanal på IRC nettverket for meg (det er her jeg har fått en del kunnskap om IF-statements). Jeg lot den kjøre der jeg gjemte den fra start-linjen på skolen sånn at ingen skulle slå den av. (Det var bredbånd på skolen, men ikke hjemme).

 

Jeg synes det var litt artig med webutvikling, MEN jeg synes alltid at det virket mere nyttig å kunne lage programvare (i mine øyner). Jeg har kikket litt på noen ny-begynner kurs på youtube om Java som jeg synes virket spennende, og artig å tenke på potensialet (tenk på alle som kjører android?) dersom jeg skulle være kreativ med dette sånn som en musiker kan være kreativ med instrumentet sitt.

 

Jeg tenker å lære det som en hobby, men det ville vært kjekt å jobbe seg god nok på sikt til "å ha et ekstra kort på hånden" når det gjelder en mulig karriere-vei. Men er dette mulig eller må jeg dedikere 8 timer daglig for å bli interessant for en arbeidsgiver? Og holder det med et språk, eller hvor mange regner man med å måtte kunne bruke?

Lenke til kommentar

Men er dette mulig eller må jeg dedikere 8 timer daglig for å bli interessant for en arbeidsgiver? Og holder det med et språk, eller hvor mange regner man med å måtte kunne bruke?

Ja, det er mulig, men med noen få timer annenhver dag, så kan det ta lang tid å lære seg et språk som Java, det er derfor mange sitter hele dagen … hver dag.

 

Hvorvidt det holder med ett språk eller ikke, kommer an på hva du skal lage, eller hva du skal jobbe med, i noen tilfeller vil ett språk være nok, men i de fleste tilfeller bør man i det minste ha generell kunnskap om andre språk også.

 

Det finnes ingen fasit på dette, men har du først lært deg et språk, så er de fleste språk "C-lignende", og mange av prinsippene er like på tvers av språk, slik at det er ofte lettere å lære seg nye språk når de ligner på språk du kan allerede kan godt.

Endret av 0laf
Lenke til kommentar

Jeg kunne litt PHP/SQL og fikk fast jobb som utvikler. Man må selge seg inn på et vis, og være forberedet på å lære alt den første uken.

Med google + stackexchange kan hvem som helst, lage hva som helst.

 

Ikke hør på gatekeepers med mastergrad.

Endret av djgudleif
  • Liker 1
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...