Hur man väljer ett programmeringsspråk för att lära sig idag och få ett bra jobb på 2 år
Kodning är inte lätt; eller åtminstone att lära sig att koda är inte, särskilt när man börjar från början. Det kan ta år av dedikerat arbete att bli en riktigt bra programmerare; så finns det ett sätt att välja rätt språk för att börja från och med idag, för att bli anställd på ett par år?
För att ta reda på, tog jag denna fråga till vår panel av inhemska experter: medan vi alla skriver har flera av oss också kodningserfarenhet. Det som följde var en intressant diskussion som du skulle vilja läsa innan du påbörjar din resa för att bli en prokoder.
En metod till galenskapen?
Det här är inte första gången vi diskuterar att välja ett programmeringsspråk. Tillbaka i 2011 har vi diskuterat vilket programmeringsspråk du ska lära dig för mjukvaruutveckling? Vilket programmeringsspråk ska du lära dig för programutveckling? Vilket programmeringsspråk ska du lära dig för programutveckling? När du börjar på programmeringsbanan är det viktigt att du investerar din tid klokt när du väljer att lära dig något som både kommer att gynna dig i den närmaste framtiden med synliga resultat på din plattform av ... Läs mer, och vilken du ska lära dig för webben programmering Vilket programmeringsspråk att lära sig - Webbprogrammering Vilket programmeringsspråk som ska läras - Webbprogrammering Idag ska vi titta på de olika webbprogrammeringsspråken som driver Internet. Detta är den fjärde delen i en nybörjare programmeringsserie. I del 1 lärde vi oss grunden till ... Läs mer .
Men det här handlar inte om ett råd (t.ex. “gå med JavaScript”) men en metod - något folk kunde använda om två år från idag, teoretiskt. Hur man faktiskt kan ta reda på vilka språk som stiger? Vilken kod popularitet mäter att lita på och vilka misstroende (och varför)? Vilka är de bästa lönprojektionswebbsidorna? Är GitHub en indikation eller inte?
Till exempel hittar du ingen i dag om PHP - men många, många utvecklare gör ett bra levande kodande PHP, och det är fortfarande största delen av det som körs på webben. Så är det att lära sig PHP nu en dålig idé? (Förmodligen… )
Det finns inget språk
Det här var James, vår bosatta webbutvecklare och tech guy, gick in för att säga detta:
Programmerare läser i allmänhet inte ett enda språk. Den som följer den klassiska CompSci-rutten kommer att sluta med en hel del Java, lite Haskell, någon Prolog om de tar en kurs i AI, en Node om de tar en kurs i startteknik, vissa PHP om de lär sig traditionell CMS, några. NET om de praktiserar på några värdelösa företagskontor, några JavaScript om de gör webbdesign, några C ++ om de gör speldesign och äntligen Ruby om de vill slösa bort sitt liv med obskyra språk som ingen faktiskt använder.
Det finns inget “metodik”??, och du väljer inte ett språk att lära dig: det väljer dig!
Att lära sig ett språk är som att äta endast matsmältningsämnen i ett år när det finns en hel gång av kakor. Och allvarligt, vem väljer jobb enligt beräknad lön?
Men vad om du inte lär dig CompSci?
Jag svarade på James och sade:
Här är saken: Det här är inte för någon som tar den klassiska CompSci-rutten. Att döma av MOOC-explosionen och antalet onlineprogrammeringskurser, massor av människor plockar upp kodning bara från början. Och när du börjar så, behöver du ett språk för att börja från. Kanske kommer du att flytta bort från det senare, men det första språket kommer att bli en kritisk investering av tid och ansträngning - så det är bättre att det är värt det.
Vad resonerade mest med mig är den sista lilla han sa - vem väljer jobb enligt beräknad lön. Jag tror att vissa människor gör det, men jag tycker också att det inte är ett bra sätt att ta itu med det.
När det kommer till det, människor är Att försöka lista ut vilket språk som ska börja med och användningen som språket får i den verkliga världen bär vikt i det beslutet (inte bara hur lätt det är att lära sig - Pascal ...).
Välj ett projekt först, sedan ett språk
James kom tillbaka med detta:
Okej, kanske en av punkterna i denna metodik bör vara: har ingen metodik. När jag först kom över PHP, var det genom WordPress. Jag hade en CompSci-bakgrund i programmering och lite webbdesign erfarenhet, men jag hade aldrig sett PHP förut. Jag lärde mig det eftersom WordPress såg så lätt ut, och jag ville röra med WordPress. Inte för att jag hade tittat på en lista över trendingteknik eller övervägde en karriärrörelse, men för att något coolt ville jag veta om använt det.
Om någon letade efter att lära sig programmering rent för sysselsättning, skulle de misslyckas. Om de letade bara för att de gillar ljudet av att lära sig att programmera något, skulle det inte vara något vilket språk de valde så länge det kunde sparka sin passion.
En annan anledning att välja ett projekt först
Det här är när Simon gick in med några pragmatiska råd:
För det första beror det på om du vill utveckla för webben eller “standard-” programvara.
För den senare är Java ganska bra:
- Enkel OO
- Multiplattform (Linux, Windows, Mac, Android)
- Liknande syntax till många andra programmeringsspråk (JS, C #).
Kan inte säga mycket om webbutveckling, även om HTML / JS / CSS / PHP / MySQL verkar fungera för många människor. Python också.
Men ja, det “för att få dig ett bra jobb på 2 år” lite irriterar mig också. Betonar den felaktiga aspekten av att lära sig hur man programmerar. När du väl kan programmera är det ganska lätt att hänga på ett annat språk.
Att bli anställd för att känna till ett visst språk liknar att bli anställd som en PA för att veta hur man hanterar MS Excel. Om det är huvudkvalificeringen kommer det förmodligen att bli ett dåligt jobb.
Lär inte ett språk: Lär dig programdesign
Ett samförstånd började bildas. Bruce Epper, av MakeUseOf Svar berömmelse, hade detta att säga:
Språket i sig spelar ingen roll. När det gäller programmeringsjobb tenderar de viktigaste aspekterna att vara förståelse för grundläggande mjukvaruutveckling och arkitektur, kodningsprocessen i allmänhet, att veta om designmönster, att veta när man ska använda dem och hur man tillämpar ett specifikt mönster för uppgiften vid handen - som alla är språkoberoende. När en kodare vet det, är det en bris att ta upp ett helt nytt språk.
Det finns även projektledning, dokumentation och skrivförmåga som är viktigare för en programmerare än att veta något specifikt språk.
Basen som du bygger på: Engelska eller Latinska?
Det var när Guy gick in för att påminna oss allt som språket gör i en utsträckning:
Språket i sig är inte det viktigaste i att få jobb, jag håller med. Dock basen som du bygger på gör. Eftersom jag har gjort båda vägarna ska jag jämföra programmeringsspråk till mänskliga språk.
Python verkar vara engelska idag. Mer och mer ser jag Intro CompSci och programmeringskurser startar dig med Python istället för Java, som tycktes vara mest populär i ca 10 år. Du kan göra mycket av vad du vill göra med Python.
C ++ är programmeringsvärldens latin. Om du lär dig det kan du lära dig de underliggande principerna i en mängd olika språk och lära dig dem lättare. Python skulle vara en cakewalk om du är välgrundad i C++.
Vad är en “Programmeringsjobb,” I alla fall?
Det var Matteus vänd nu, för att påminna oss alla om att vara en kodare kan betyda mycket olika saker för olika människor:
En sak som inte har pratats i någon stor längd är vilken typ av programmeringsjobb du vill ha.
Är du inte förskräckt över de förmåner som kastas hos Startup-anställda? Vill du ha stabilitet och ett anständigt lönepaket, men inget eget kapital? Gillar du att ha på sig business formalwear? Lär dig C #, Java eller COBOL. COBOL har också fördelen att ha varje enskild bankansökan någonsin tänkt (hyperbole, men du får idén) har skrivits i den. Med de flesta COBOL-utvecklare, antingen pensionerade eller döda, finns det stor efterfrågan på COBOL-utvecklare, med en del som tjänar sex sifferlöner! Du kommer dock att arbeta med stora, dåligt skrivna kodbaser skapade under flera årtionden. Det är inte kul.
Men vad sägs om arbetssäkerhet är inte din sak? Vill du jobba med intressanta produkter, men är du villig att chans vara ute av ett jobb när affärsmodellen inte fungerar? Jag har funnit att det pågår (Hacker News) är ett surefire sätt att ta reda på vilka språk som används vid start. När jag internerade i ett tidigt jobb använde vi en blandning av Go, Python och CoffeeScript. Andra uppstart använder Rails och Groovy och alla slags obskyrliga ramar och språk. Välj bara en och du hittar ett intressant jobb någonstans.
Ny kod eller gammal?
Att skriva ny kod är en helt annan upplevelse än att behålla en befintlig applikation, som Bruce lade till:
Med dina kommentarer till COBOL, har du slagit på ett annat övervägande: vill du arbeta med ny kod eller behålla någon annans kod? Detta kan vara ett stort objekt när du bestämmer vilken riktning du ska flytta. För mindre projekt kan det inte vara så dåligt att behålla en kodbas av någon annan, men jag har sett några avsnitt av kod där du har flera personer som stirrar på det i timmar frågar, “Vad tänkte den här killen på?”, eller där den ursprungliga programmeraren utnyttjade en specifik funktion eller bugg i kompilatorn (som kan ha blivit fixad i den aktuella kompilatorn) för att uppnå någonting.
Vad om du inte har ett val?
Guy kom tillbaka för att påminna oss alla att inte alla har ett brett utbud av val:
Matthew lyfter en bra fråga med, “Vilken typ av programmeringsjobb vill du ha??”
Konstigt trodde jag aldrig att jag skulle ha mycket av valet i frågan. Jag visste att jag ville göra webbutveckling när jag började, efter att ha gjort annan programmering rekreativt. Men jag tänkte att jag var bättre beredd att ta något jobb jag kunde få och vara villig att lära mig när jag gick. Nu är jag en jack i alla affärer, skickliga i flera teknologier - ingen mästare.
När det gäller att bestämma var du vill arbeta, bestämmer du vilken typ av livsstil du vill ha är viktig. Kolla sedan på inlägg från de företag som verkar uppfylla dina kriterier och se vad de letar efter i allmänhet. Att sätta ihop en portfölj av saker som liknar vad de gör kan också vara till stor hjälp, särskilt om du inte har en formell utbildning i den teknik som de använder. Kanske lärde du dig Java i skolan, men de använder C #. Så du lär dig själv C # och gör några program med det som bevis på att du vet vad du gör och att du har flytande intelligens.
Inget enkelt svar
Om det finns något som denna diskussion visar, är det så enkla frågor har inte alltid enkla svar. Men efter att ha läst allas åsikter kände jag mig mycket mer informerad - de ändrade mig.
Jag är säker på att vi inte fångat alla möjliga synpunkter här - det är vad kommentarsektionen är för. Jag skulle vara väldigt intresserad av att höra din fråga om denna fråga, oavsett om du är en prokoder eller ej. Hur skulle du välja ett programmeringsspråk för att få ett bra jobb på två år? Är det ens ett bra sätt att välja språk? Dela dina tankar nedan.
Utforska mer om: Jobbsökning, programmering.