Kodning er ikke let; eller i det mindste er det ikke at lære at kode, især når man starter fra bunden. Det kan tage mange års dedikeret arbejde at blive en virkelig god programmør; så er der en måde at vælge det rigtige sprog til at starte fra i dag for at blive ansat i et par år?
For at finde ud af, tog jeg dette spørgsmål til vores panel af indbyggere: Mens vi alle skriver, har flere af os også kodningserfaring. Det der fulgte var en interessant diskussion, som du gerne vil læse, før du påbegynder din rejse for at blive en prokoder.
En metode til galskaben?
Dette er ikke første gang vi diskuterer at vælge et programmeringssprog: Tilbage i 2011 har vi diskuteret hvilket programmeringssprog du skal lære til softwareudvikling? Hvilket programmeringssprog skal du lære til softwareudvikling? Hvilket programmeringssprog skal du lære til softwareudvikling? Når du begynder på programmeringsbanen, er det vigtigt, at du investerer din tid klogt i at vælge at lære noget, der både vil gavne dig i den nærmeste fremtid med synlige resultater på din platform af ... Læs mere, samt hvilken du skal lære til webprogrammering Hvilket programmeringssprog at lære - Webprogrammering Hvilket programmeringssprog at lære - Webprogrammering I dag tager vi et kig på de forskellige webprogrammeringssprog, der styrer internettet. Dette er den fjerde del i en begynderprogrammeringsserie. I del 1 lærte vi grunden til ... Læs mere.
Men det drejer sig ikke om et råd (som "gå med JavaScript"), men en metode - noget folk kunne bruge i to år fra i dag teoretisk . Hvordan man faktisk finde ud af, hvilke sprog der er på vej? Hvilken kode popularitet måler at stole på, og hvilke mistillid (og hvorfor)? Hvad er de bedste lønprojektionswebsteder? Er GitHub en indikation eller ej?
For eksempel finder du ingen gushing om PHP i disse dage - men mange, mange udviklere laver et godt levende kodende PHP, og det er stadig størstedelen af, hvad der kører på nettet. Så er det at lære PHP nu en dårlig idé? (Sandsynligvis…)
Der er ingen sprog
Det er her, James, vores hjemmehørende webudvikler og tech fyr, trådte ind for at sige dette:
Programmører lærer generelt ikke et enkelt sprog alligevel. Enhver, der går den klassiske CompSci-rute, vil ende med en masse Java, en smule Haskell, nogle Prolog, hvis de tager et kursus i AI, nogle Node, hvis de tager et kursus i opstartsteknik, nogle PHP, hvis de lærer traditionel CMS'er, nogle .NET hvis de praktiserer nogle værdiløse corporate kontorer, nogle JavaScript, hvis de gør webdesign, nogle C ++ hvis de laver spildesign og endelig nogle Ruby, hvis de gerne vil spilde deres liv væk med uklare sprog, at ingen faktisk bruger.
Der er ingen "metodologi", og du vælger ikke et sprog at lære: det vælger dig!
At lære et sprog er at spise kun fordøjelsesmidler i et år, når der er en hel gang med cookies. Og alvorligt, hvem vælger job efter forventet løn?
Men hvad hvis du ikke lærer CompSci?
Jeg svarede på James og sagde:
Her er sagen: Dette er ikke for nogen, der tager den klassiske CompSci-rute. At dømme efter MOOC-eksplosionen og antallet af online-programmeringskurser, masser af mennesker henter kodning lige fra bunden. Og når du starter sådan, har du brug for ét sprog til at starte fra. Måske vil du flytte væk fra det senere, men det første sprog vil være en kritisk investering i tid og kræfter - så det er bedre at være det værd.
Hvad der var mest resonans med mig, er den sidste lille ting han sagde - hvem vælger job efter forventet løn . Jeg tror, at nogle mennesker gør det, men jeg synes også, det er ikke en god måde at gå om det.
Når det kommer til det, forsøger folk at finde ud af hvilket sprog der skal begynde med, og brugen af det sprog, der kommer i den virkelige verden, bærer vægt i den beslutning (ikke bare hvor let det er at lære - Pascal ...).
Vælg et projekt først, så et sprog
James kom tilbage med dette:
Okay, måske et af punkterne i denne metode bør være: ikke har en metode. Da jeg først kom over PHP, var det gennem WordPress. Jeg havde en CompSci baggrund i programmering og nogle webdesign erfaring, men jeg havde aldrig set PHP før. Jeg lærte det, fordi WordPress så let nok ud, og jeg ønskede at rodne med WordPress. Ikke fordi jeg havde kigget på en liste over trending teknologier eller overvejede en karrierebevægelse, men fordi noget cool jeg ønskede at vide om brugt det.
Hvis nogen søgte at lære programmering udelukkende med henblik på et job, ville de mislykkes. Hvis de kiggede bare fordi de kunne lide lyden af at lære at programmere noget, ville det ikke være noget, hvilket sprog de valgte, så længe det kunne gnide deres lidenskab.
En anden grund til at vælge et projekt først
Dette er da Simon trådte ind med nogle pragmatiske råd:
Først og fremmest afhænger det af, om du vil udvikle til internettet eller "standard" softwaren.
For sidstnævnte er Java ret godt:
- Enkel OO
- Multi-platform (Linux, Windows, Mac, Android)
- Lignende syntaks til mange andre programmeringssprog (JS, C #).
Kan ikke sige meget om webudvikling, selv om HTML / JS / CSS / PHP / MySQL synes at fungere for mange mennesker. Python også.
Men ja, "for at få dig et godt stykke arbejde i 2 år", lidt irriterer mig også. Understreger det forkerte aspekt ved at lære at programmere. Når du først kan programmere, er det ret nemt at hænge på et andet sprog.
At blive ansat til at kende et bestemt sprog svarer til at blive ansat som en PA for at vide, hvordan man håndterer MS Excel. Hvis det er den vigtigste kvalifikation, vil det nok være et dårligt job.
Lær ikke et sprog: Lær software design
En konsensus begyndte at danne sig. Bruce Epper, af MakeUseOf Svar berømmelse, havde dette at sige:
Sproget i sig selv er ikke rigtig noget. Når det kommer til programmeringsjob, har de vigtigste aspekter tendens til at være forståelse for grundlæggende software design og arkitektur, kodningsprocessen generelt, viden om designmønstre, viden om, hvornår de skal bruges, og hvordan man anvender et bestemt mønster for opgaven ved hånden - som alle er sproguafhængige. Når en coder kender disse, er det en brise at opsamle et helt nyt sprog.
Der er endda projektledelse, dokumentation og skrivefærdigheder, der er vigtigere for en programmør end at vide noget specifikt sprog.
Basen som du bygger spørgsmål på: Engelsk eller Latin?
Det var da Guy trådte ind for at minde os alt, hvad sproget betyder noget i en grad:
Sproget i sig selv er ikke det vigtigste ved at få et job, jeg er enig. Men den base, som du bygger på gør. Siden jeg har lavet begge ruter, skal jeg sammenligne programmeringssprog til menneskelige sprog.
Python synes at være engelsk i dag. Mere og mere ser jeg Intro CompSci og programmeringskurser starter dig med Python i stedet for Java, som syntes at være mest populær i omkring 10 år. Du kan gøre meget af hvad du vil gøre med Python.
C ++ er programmeringsverdenens latin. Hvis du lærer det, kan du lære de underliggende principper for en lang række sprog og lære dem lettere. Python ville være en cakewalk, hvis du er velbegrundet i C ++.
Hvad er et "Programmeringsjob", alligevel?
Det var Matthews tur nu for at minde os alle om at være en coder kan betyde meget forskellige ting for forskellige mennesker:
En ting, der ikke er blevet snakket om i nogen større længde, er, hvad slags programmeringsjob du vil have.
Er du ikke forfremmt over de frynsegler, der blev kastet hos Startup-medarbejdere? Ønsker stabilitet og en anstændig betalingspakke, men ingen egenkapital? Kan du lide at bære business formalwear? Lær C #, Java eller COBOL. COBOL har også den fordel at have hver eneste bankansøgning nogensinde opfattet (hyperbole, men du får ideen) er blevet skrevet i den. Med de fleste COBOL-udviklere enten pensioneret eller død, er der meget efterspørgsel efter COBOL-udviklere med nogle indtjening af seks figursalærer! Du arbejder dog på store, dårligt skrevet kodebaser, der er oprettet over flere årtier. Det er ikke sjovt.
Men hvad nu hvis jobsikkerhed ikke er din ting? Ønsker du at arbejde på interessante produkter, men er du villig til at være ude af et job, når forretningsmodellen ikke virker? Jeg har fundet ud af at det foregår (Hacker News) er en surefire måde at finde ud af de sprog, der bruges ved startups. Da jeg internerede i et tidligt job brugte vi en blanding af Go, Python og CoffeeScript. Andre startups bruger Rails og Groovy og alle slags uklare rammer og sprog. Vælg bare en, og du finder et interessant job et eller andet sted.
Ny kode eller gammel?
At skrive ny kode er en meget anderledes oplevelse end at opretholde en eksisterende ansøgning, som Bruce tilføjede:
Med dine kommentarer til COBOL, har du haft en slags overvejelse: Vil du arbejde med ny kode eller vedligeholde andres kode? Dette kan være et kæmpe element, når man beslutter hvilken retning at flytte. For mindre projekter kan vedligeholdelse af en kodebase skrevet af en anden ikke være så slemt, men jeg har set nogle sektioner kode, hvor du har flere mennesker stirrer på det i flere timer og spørger: "Hvad syntes denne fyr?", Eller hvor originalen programmør var at udnytte en specifik funktion eller fejl i kompilatoren (der kan have været rettet i den nuværende compiler) for at opnå noget.
Hvad hvis du ikke har et valg?
Guy kom tilbage for at minde os om alt, at ikke alle har en bred vifte af valg:
Matthew rejser et godt spørgsmål med, " Hvilken slags programmeringsjob vil du have? ”
Det var mærkeligt, jeg troede aldrig rigtig, at jeg ville have meget af et valg i sagen. Jeg vidste, at jeg ønskede at gøre webudvikling, da jeg begyndte at have lavet anden programmering rekreativt. Men jeg regnede med, at jeg var bedre parat til at tage noget arbejde, jeg kunne få, og være villig til at lære, da jeg gik. Nu er jeg en jack of all trades, dygtige i flere teknologier - mester af ingen.
Hvad angår at finde ud af, hvor du vil arbejde, er det vigtigt at bestemme hvilken type livsstil du ønsker. Så kig på indlæg fra de virksomheder, der ser ud til at opfylde dine kriterier og se, hvad de søger generelt. At sammensætte en portefølje af ting, der ligner det, de gør, kan også være meget nyttige, især hvis du ikke har formel uddannelse i de teknologier, de bruger. Måske lærte du Java i skolen, men de bruger C #. Så du lærer dig selv C # og gør et par programmer med det som bevis på, at du ved, hvad du laver, og at du har væske intelligens.
Intet enkelt svar
Hvis der er noget, som denne diskussion viser, er det så enkle spørgsmål har ikke altid enkle svar. Og alligevel, efter at have læst alles mening, følte jeg mig meget mere informeret - de ændrede mig.
Jeg er sikker på, at vi ikke fangede alle mulige synspunkter her - det er det, som kommentarsektionen er til. Jeg ville være meget interesseret i at høre din tage på dette spørgsmål, uanset om du er en prokoder eller ej. Hvordan ville du vælge et programmeringssprog for at få et godt arbejde om to år? Er det endda en god måde at vælge et sprog på? Del dine tanker nedenfor.