Hvordan velge et programmeringsspråk for å lære i dag og få en god jobb i 2 år
Koding er ikke lett; eller i det minste, å lære å kode er ikke, spesielt når du starter fra bunnen av. Det kan ta mange år med dedikert arbeid å bli en virkelig god programmerer; så er det en måte å velge riktig språk for å starte fra i dag, for å bli ansatt i et par år?
For å finne ut, tok jeg dette spørsmålet til vårt panel av innbyggere: Mens vi alle skriver, har flere av oss også kodingserfaring. Det som skjedde var en interessant diskusjon som du ville ønske å lese før du begynte på reisen for å bli en pro-koder.
En metode til galskapen?
Dette er ikke første gang vi diskuterer å velge et programmeringsspråk: Tilbake i 2011 har vi diskutert hvilket programmeringsspråk du bør lære for programvareutvikling? Hvilket programmeringsspråk bør du lære for programvareutvikling? Hvilket programmeringsspråk bør du lære for programvareutvikling? Når du begynner på programmeringsbanen, er det viktig at du investerer tiden din klokt ved å velge å lære noe som både vil være til nytte for deg i nær fremtid med synlige resultater på plattformen din av ... Les mer, samt hvilken du bør lære for Web programmering Hvilket programmeringspråk som skal læres - Webprogrammering Hvilket programmeringsspråk å lære - Webprogrammering I dag skal vi ta en titt på de ulike webprogrammeringsspråkene som driver Internett. Dette er den fjerde delen i en nybegynnere programmeringsserie. I del 1 lærte vi grunnlaget for ... Les mer .
Men dette handler ikke om et råd (for eksempel “gå med JavaScript”) men en metodikk - noe folk kunne bruke om to år fra i dag, teoretisk. Hvordan faktisk finne ut hvilke språk som er på vei opp? Hvilken kode popularitet måler å stole på og hvilke mistillid (og hvorfor)? Hva er de beste lønnsprognosene? Er GitHub en indikasjon eller ikke?
For eksempel finner du ingen gushing om PHP i disse dager - men mange, mange utviklere lager en god levende koding PHP, og det er fortsatt det meste av det som kjører på nettet. Så er å lære PHP nå en dårlig idé? (Sannsynligvis… )
Det er ingen språk
Dette er hvor James, vår bosatt webutvikler og teknisk fyr, gikk inn for å si dette:
Programmører lærer generelt ikke et enkelt språk uansett. Alle som går den klassiske CompSci-ruten vil ende opp med mye Java, litt Haskell, noen Prolog hvis de tar kurs i AI, noen Node hvis de tar kurs i oppstartsteknologi, noen PHP hvis de lærer tradisjonell CMSer, noen. NET hvis de praktiserer på noe verdiløs bedriftskonto, noen JavaScript hvis de gjør webdesign, noen C ++ hvis de gjør spilldesign og til slutt noen Ruby hvis de vil kaste bort livet med uklare språk som ingen faktisk bruker.
Det er ingen “metodikk”??, og du velger ikke språk for å lære: det velger deg!
Lære ett språk er som å spise bare fordøyelsesmidler i et år når det er en hel gang med informasjonskapsler. Og seriøst, hvem velger jobber i henhold til forventet lønn?
Men hva hvis du ikke lærer CompSci?
Jeg svarte til James og sa:
Her er saken: Dette er ikke for noen som tar den klassiske CompSci-ruten. Dømmer etter MOOC-eksplosjonen og antall online programmeringskurs, henter mange mennesker opp koding like fra grunnen av. Og når du starter slik, trenger du ett språk for å starte fra. Kanskje du vil flytte bort fra det senere, men det første språket skal være en kritisk investering av tid og krefter - så det er bedre verdt det.
Det som resonansert mest med meg, er det siste lille han sa - hvem velger jobber i henhold til forventet lønn. Jeg tror noen mennesker gjør det, men jeg tror også det er ikke en fin måte å gå om det.
Når det kommer til det, folk er prøver å finne ut hvilket språk som skal begynne med, og bruken som språket kommer i den virkelige verden bærer vekt i den beslutningen (ikke bare hvor lett det er å lære - Pascal ...).
Velg et prosjekt først, deretter et språk
James kom tilbake med dette:
Ok, kanskje en av punktene i denne metoden bør være: ikke ha en metodikk. Da jeg først kom over PHP, var det gjennom WordPress. Jeg hadde en CompSci-bakgrunn i programmering og litt webdesignopplevelse, men jeg hadde aldri sett PHP før. Jeg lærte det fordi WordPress så lett nok ut, og jeg ønsket å rote med WordPress. Ikke fordi jeg hadde sett på en liste over trending-teknologier, eller tenkte på en karriereflyt, men fordi noe kult jeg ønsket å vite om brukt det.
Hvis noen var ute etter å lære programmering rent for en jobb, ville de mislykkes. Hvis de så ut, bare fordi de liker lyden av å lære å programmere noe, ville det ikke være noe som språket de valgte så lenge det kunne gjenkjenne sin lidenskap.
En annen grunn til å velge et prosjekt først
Dette er da Simon gikk inn med noen pragmatiske råd:
Først og fremst avhenger det av om du vil utvikle for Internett eller “standard” programvare.
For sistnevnte er Java ganske bra:
- Enkel OO
- Multi-plattform (Linux, Windows, Mac, Android)
- Lignende syntaks til mange andre programmeringsspråk (JS, C #).
Kan ikke si mye om webutvikling, selv om HTML / JS / CSS / PHP / MySQL ser ut til å fungere for mange mennesker. Python også.
Men ja, det “for å få deg en god jobb om 2 år” litt irriterer meg også. Understreker feil aspekt ved å lære å programmere. Når du kan programmere, er det ganske enkelt å få tak i et annet språk.
Å bli ansatt for å vite et bestemt språk ligner på å bli ansatt som PA for å vite hvordan man håndterer MS Excel. Hvis det er hovedkvalifikasjonen, blir det sannsynligvis en dårlig jobb.
Ikke lær et språk: Lær programvaredesign
En konsensus begynte å danne seg. Bruce Epper, av MakeUseOf svar berømmelse, hadde dette å si:
Språket i seg selv spiller ingen rolle. Når det gjelder programmeringsjobber, har de viktigste aspektene en tendens til å være forståelse av grunnleggende programvareutforming og arkitektur, kodingsprosessen generelt, å vite om designmønstre, å vite når de skal bruke dem og hvordan å bruke et bestemt mønster for oppgaven ved hånden - som alle er språkuavhengige. Når en koder kjenner disse, er det en bris å plukke opp et helt nytt språk.
Det er til og med prosjektledelse, dokumentasjon og skriveferdigheter som er viktigere for en programmerer enn å vite noe bestemt språk.
Basen som du bygger på: engelsk eller latin?
Dette var da Guy gikk inn for å minne oss alle om språket gjør i en grad:
Språket i seg selv er ikke det viktigste ved å få en jobb, er jeg enig. Imidlertid basen som du bygger på gjør. Siden jeg har gjort begge ruter, skal jeg sammenligne programmeringsspråk til menneskelige språk.
Python ser ut til å være engelsk i dag. Mer og mer ser jeg Intro CompSci og programmeringskursene starter deg med Python i stedet for Java, som syntes å være mest populært i ca 10 år. Du kan gjøre mye av det du vil gjøre med Python.
C ++ er det latinske av programmeringsverdenen. Hvis du lærer det, kan du lære de underliggende prinsippene til en rekke språk og lære dem lettere. Python ville være en cakewalk hvis du er godt grunnlagt i C++.
Hva er en “Programmeringsjobb,” Uansett?
Det var Matthews tur nå, for å minne oss alle om at det å være en koder kan bety svært forskjellige ting for forskjellige mennesker:
En ting som ikke har vært snakket om i noen stor lengde, er hva slags programmeringsjobb du vil ha.
Er du ikke så opptatt av fordelene som er kastet på Startup-ansatte? Vil du ha stabilitet og en anstendig lønnspakke, men ingen egenkapital? Liker du å ha på seg business formalwear? Lær C #, Java eller COBOL. COBOL har også fordelen av å ha hver eneste bankapplikasjon noensinne oppfattet (hyperbole, men du får ideen) har blitt skrevet inn i den. Med de fleste COBOL-utviklere, enten pensjonert eller død, er det stor etterspørsel etter COBOL-utviklere med noen tjene penger på seks figurer! Du vil imidlertid jobbe med store, dårlig skrevet kodebaser opprettet over flere tiår. Det er ikke morsomt.
Men hva om jobbsikkerhet er ikke din ting? Ønsker du å jobbe med interessante produkter, men er du villig til å få sjansen til å være ute av jobb når forretningsmodellen ikke trener? Jeg har funnet ut at det skjer (Hacker News) er en surefire måte å finne ut av språkene som brukes av oppstart. Da jeg internerte på en tidlig jobb brukte vi en blanding av Go, Python og CoffeeScript. Andre oppstart bruker Rails og Groovy og alle slags obskure rammer og språk. Bare velg en og du vil finne en interessant jobb et sted.
Ny kode eller gammel?
Å skrive ny kode er en helt annen opplevelse enn å opprettholde et eksisterende program, som Bruce la til:
Med dine kommentarer på COBOL, har du slag på en annen vurdering: vil du jobbe med ny kode eller opprettholde andres kode? Dette kan være et stort element når du bestemmer hvilken retning du skal flytte. For mindre prosjekter kan det ikke være så dårlig å opprettholde en kodebase skrevet av noen andre, men jeg har sett noen deler av koden der du har flere personer som stirrer på det i flere timer spør, “Hva tenkte denne fyren på?”, eller hvor den opprinnelige programmereren benyttet seg av en bestemt funksjon eller feil i kompilatoren (som kan ha blitt løst i den nåværende kompilatoren) for å oppnå noe.
Hva hvis du ikke har et valg?
Guy kom tilbake for å minne oss alle om at ikke alle har et bredt utvalg av valg:
Matthew reiser et godt spørsmål med, “Hva slags programmeringsjobb vil du ha?”
Merkelig, jeg trodde aldri at jeg ville ha mye valg i saken. Jeg visste at jeg ønsket å gjøre webutvikling da jeg startet, etter å ha gjort andre programmering rekreasjonsmessig. Men jeg skjønte jeg var bedre forberedt på å ta noen jobb jeg kunne få, og være villig til å lære som jeg gikk. Nå er jeg en jack av alle handler, dyktige i flere teknologier - mester av ingen.
Når det gjelder å finne ut hvor du vil jobbe, er det viktig å bestemme hvilken type livsstil du vil ha. Så se på innlegg fra de bedriftene som ser ut til å oppfylle dine kriterier og se hva de leter etter generelt. Å sette sammen en portefølje av ting som ligner på hva de gjør, kan også være svært nyttig, spesielt hvis du ikke har formell opplæring i teknologiene de bruker. Kanskje du lærte Java på skolen, men de bruker C #. Så lærer du deg selv C # og gjør noen programmer med det som bevis på at du vet hva du gjør, og at du har væskeunderretning.
Ingen enkelt svar
Hvis det er noe denne diskusjonen viser, er det så enkle spørsmål har ikke alltid enkle svar. Og likevel, etter å ha lest alle meninger, følte jeg meg mye mer informert - de forandret meg.
Jeg er sikker på at vi ikke fanger alle mulige synspunkter her - det er hva kommentarseksjonen er for. Jeg ville være veldig interessert i å høre din ta på dette spørsmålet, enten du er en prokoder eller ikke. Hvordan ville du velge et programmeringsspråk for å få en god jobb om to år? Er det en god måte å velge språk? Del dine tanker nedenfor.
Utforsk mer om: Jobbsøking, programmering.