Annonse
Koding er ikke lett; eller i det minste er det ikke å lære å kode, spesielt når du starter fra bunnen av. Det kan ta mange års dedikert arbeid å bli en virkelig god programmerer; så er det en måte å velge riktig språk å starte fra i dag, for å bli ansatt i løpet av et par år?
For å finne ut av det, tok jeg dette spørsmålet til vårt panel av eksperter fra bosatt side: Mens vi alle skriver, har flere av oss også kodingserfaring. Det som fulgte med var en interessant diskusjon som du ønsker å lese før du begir deg ut på reisen din for å bli en prokoder.
En metode til galskapen?
Dette er ikke første gang vi diskuterer valg av programmeringsspråk: Tilbake i 2011 har vi diskutert hvilket programmeringsspråk du bør lære deg for programvareutvikling? Hvilket programmeringsspråk skal du lære for programvareutvikling?Når du begynner på programmeringsveien, er det viktig at du bruker tiden din klokt i å velge å lær noe som både vil være til nytte for deg i umiddelbar fremtid med synlige resultater på plattformen din av... Les mer
, samt hvilken du bør Lær for programmering på nettet Hvilket programmeringsspråk å lære - nettprogrammeringI dag skal vi se på de forskjellige nettprogrammeringsspråkene som driver Internett. Dette er den fjerde delen i en nybegynner-programmeringsserie. I del 1 lærte vi det grunnleggende om ... Les mer .Men dette handler ikke om ett råd (for eksempel “gå med JavaScript”), men en metodikk - noe folk kunne bruke om to år fra i dag, teoretisk. Hvordan finne ut hvilke språk som er på vei opp? Hvilke koder for popularitetsmålinger du skal stole på og hvilke du skal mistro (og hvorfor)? Hva er de beste lønnsframskrivingsnettstedene? Er GitHub en indikasjon eller ikke?
For eksempel vil du finne at ingen kjenner på PHP i disse dager - men mange, mange utviklere lever godt med å kode PHP, og det er fremdeles hoveddelen av det som kjører på nettet. Så er det å lære PHP nå en dårlig idé? (Sannsynligvis…)
Det er ingen språk
Dette er hvor James, vår fastboende nettutvikler og teknolog, begynte å si dette:
Programmerere lærer vanligvis 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 et kurs i AI, noen Node hvis de tar et kurs i oppstartingeniør, noen PHP hvis de lærer tradisjonelle CMS-er, noen. NET hvis de praktiserer ved noe verdiløst bedriftskontor, noen JavaScript hvis de gjør webdesign, noen C ++ hvis de gjør spilldesign, og til slutt noen Ruby hvis de ønsker å kaste bort livet sitt med obskure språk som ingen faktisk bruker.
Det finnes ingen "metodikk", og du velger ikke språk du vil lære: den 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 alvorlig, hvem velger jobber i henhold til anslått lønn?
Men hva hvis du ikke lærer CompSci?
Jeg svarte på James og sa:
Dette er tingen: Dette er ikke for noen som tar den klassiske CompSci-ruten. Dømt etter MOOC-eksplosjonen og antall online programmeringskurs, er det mange som plukker opp koding fra bunnen av. Og når du begynner sånn, trenger du ett språk å starte fra. Kanskje du kommer bort fra det senere, men det førstespråket kommer til å bli en kritisk investering av tid og krefter - så det er bedre å være verdt det.
Det som resonerte mest med meg er at den siste lille biten sa han - som velger jobber i henhold til anslått lønn. Jeg tror noen gjør det, men jeg synes også det ikke er en fin måte å gjøre det på.
Når det kommer til stykket, folk er å prøve å finne ut hvilket språk man skal begynne med, og bruken språket får i den virkelige verden, bærer vekt i den avgjørelsen (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 et av poengene med denne metodikken skal være: ikke ha en metodikk. Da jeg først kom over PHP, var det gjennom WordPress. Jeg hadde en CompSci-bakgrunn innen programmering og litt webdesignopplevelse, men jeg hadde aldri sett PHP før. Jeg lærte det fordi WordPress så lett ut, og jeg ønsket å rote med WordPress. Ikke fordi jeg hadde sett på en liste over trendteknologier, eller vurderte en karriereflytting, men fordi noe kult jeg ville vite om, brukte det.
Hvis noen var ute etter å lære programmering utelukkende med tanke på en jobb, ville de mislyktes. Hvis de så ut bare fordi de liker lyden av å lære å programmere noe, ville det ikke ha noe å si hvilket språk de valgte så lenge det kunne vekke lidenskapen deres.
En annen grunn til å velge et prosjekt først
Dette er når 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
- Multiplattform (Linux, Windows, Mac, Android)
- Tilsvarende syntaks til mange andre programmeringsspråk (JS, C #).
Kan ikke si så mye om nettutvikling, selv om HTML / JS / CSS / PHP / MySQL ser ut til å fungere for mange mennesker. Python også.
Men ja, "å skaffe deg en god jobb om 2 år" 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 å ha et spesifikt språk ligner på å bli ansatt som PA for å vite hvordan du skal håndtere MS Excel. Hvis det er hovedkompetansen, vil det sannsynligvis være en dårlig jobb.
Ikke lær et språk: Lær programvaredesign
En konsensus begynte å danne. Bruce Epper, fra MakeUseOf Answers-berømmelse, hadde dette å si:
Språket i seg selv betyr ikke noe. Når det gjelder programmeringsjobber, har de viktigste aspektene en forståelse av grunnleggende programvaredesign og arkitektur, kodingsprosessen i generelt, vite om designmønstre, vite når du skal bruke dem, og hvordan du bruker et spesifikt mønster på oppgaven du har - alt dette er språkuavhengig. Når en koder vet dette, er det en lek å 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 spesifikt språk.
Grunnlaget for hva du bygger spørsmål: engelsk eller latin?
Dette var da Fyr gikk inn for å minne oss alle om at språket gjør saken, til en viss grad:
Språket i seg selv er ikke det viktigste for å få jobb, er jeg enig. Imidlertid gjør basen du bygger på. Siden jeg har gjort begge rutene, kommer jeg til å sammenligne programmeringsspråk med menneskelige språk.
Python ser ut til å være engelsk i dag. Mer og mer ser jeg Intro CompSci og programmeringskurs starte deg med Python i stedet for Java, som så ut til å være mest populær i omtrent ti år. Du kan gjøre mye av det du vil gjøre med Python.
C ++ er latin i programmeringsverdenen. Hvis du lærer det, kan du lære de underliggende rektorene i et mangfold av språk og lære dem lettere. Python ville være en cakewalk hvis du er godt grunnlagt i C ++.
Hva er en "programmeringsjobb"?
Det var Matteus ' slå nå for å minne oss alle om at det å være en koder kan bety veldig forskjellige ting for forskjellige mennesker:
En ting som ikke har blitt snakket om i så stor lengde, er hva slags programmeringsjobb du ønsker.
Er du ikke altfor opptatt av fordelene som kastes på Startup-ansatte? Vil du ha stabilitet og en anstendig lønnspakke, men ingen egenkapital? Liker du å bruke forretningsklær? Lær C #, Java eller COBOL. COBOL har også fordelen av at alle bankeprogrammer som noen gang er unnfanget (hyperbole, men du får ideen) har blitt skrevet i den. Med de fleste COBOL-utviklere enten pensjonerte eller døde, er det mye etterspørsel etter COBOL-utviklere som har noen lønn på seks figurer! Du vil imidlertid jobbe med enorme, dårlig skrevne kodebaser opprettet over flere tiår. Det er ikke morsomt.
Men hva hvis jobbsikkerhet ikke er din greie? Vil du jobbe med interessante produkter, men er du villig til å sjanse til å være ute av jobb når forretningsmodellen ikke fungerer? Jeg har funnet ut at det å gå på (Hacker News) er en sikker måte å finne ut språkene som brukes av startups. Da jeg stilte 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 så finner du en interessant jobb et sted.
Ny kode, eller gammel?
Å skrive ny kode er en veldig annen opplevelse enn å vedlikeholde en eksisterende applikasjon, som Bruce la til:
Med kommentarene dine til COBOL, treffer du en annen vurdering: vil du jobbe med ny kode eller vedlikeholde andres kode? Dette kan være et stort element når du bestemmer deg for hvilken retning du vil bevege deg. For mindre prosjekter er det ikke så ille å vedlikeholde en kodebase skrevet av noen andre, men jeg har sett noen deler av koden der du har flere som stirrer på den i flere timer med spørsmål om: "Hva tenkte denne fyren? ”, eller der den opprinnelige programmereren utnyttet en spesifikk funksjon eller feil i kompilatoren (som kan ha blitt fikset i den aktuelle kompilatoren) for å oppnå noe.
Hva om du ikke har noe valg?
Fyren 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 nok trodde jeg egentlig aldri at jeg ville ha mye valg i saken. Jeg visste at jeg ville drive med webutvikling da jeg begynte, etter å ha gjort annen programmering på fritid. Men jeg regnet med at jeg bedre skulle være forberedt på å ta en hvilken som helst jobb jeg kunne få, og være villig til å lære mens jeg gikk. Nå er jeg en knekt av alle bransjer, dyktig i flere teknologier - ingen mester.
Når det gjelder å finne ut hvor du vil jobbe, er det viktig å bestemme hvilken livsstil du ønsker. Så kan du se på innlegg fra de virksomhetene som ser ut til å oppfylle kriteriene dine, og se hva de leter etter generelt. Det kan være veldig nyttig å sette sammen en portefølje av ting som ligner på det de gjør, spesielt hvis du ikke har noen formell opplæring i teknologiene de bruker. Kanskje lærte du Java på skolen, men de bruker C #. Så du lærer deg selv C # og gjør noen få programmer med det som bevis på at du vet hva du gjør og at du har flytende intelligens.
Ingen enkle svar
Hvis det er noe denne diskusjonen viser, er det at enkle spørsmål ikke alltid har enkle svar. Og likevel, etter å ha lest alles meninger, følte jeg meg mye mer informert - de ombestemte meg.
Jeg er sikker på at vi ikke har fanget opp alle mulige synspunkter her - det er det kommentarfeltet er til for. Jeg vil være veldig interessert i å høre hva du tar om dette spørsmålet, enten du er en pro koder eller ikke. Hvordan vil du velge et programmeringsspråk for å få en god jobb om to år? Er det til og med en god måte å velge språk? Del tankene dine nedenfor.