Hoe kies ik een programmeertaal om vandaag te leren en een geweldige baan te krijgen in 2 jaar?
Codering is niet eenvoudig; of althans, leren coderen is dat niet, vooral als je helemaal opnieuw begint. Het kan jaren van toegewijd werk vergen om een echt goede programmeur te worden; dus is er een manier om de juiste taal te kiezen om vanaf vandaag te beginnen, om over een paar jaar gehuurd te worden?
Om daar achter te komen, heb ik deze vraag voorgelegd aan ons panel van residentexperts: hoewel we allemaal schrijven, hebben velen van ons ook codeerervaring. Wat volgde was een interessante discussie die je zou willen lezen voordat je aan je reis begint om een pro-codeur te worden.
Een methode voor de waanzin?
Dit is niet de eerste keer dat we het kiezen van een programmeertaal bespreken: terug in 2011 hebben we besproken welke programmeertaal je moet leren voor softwareontwikkeling? Welke programmeertaal moet je leren voor softwareontwikkeling? Welke programmeertaal moet je leren voor softwareontwikkeling? Wanneer u begint met het programmeren, is het belangrijk dat u uw tijd verstandig investeert in het kiezen van iets dat u in de nabije toekomst ten goede zal komen, met zichtbare resultaten op uw platform van ... Lees meer, evenals welke u moet leren voor het web programmeren Welke programmeertaal om te leren - Webprogrammering Welke programmeertaal om te leren - Webprogrammering Vandaag gaan we de verschillende webprogrammeertalen bekijken die het internet voeden. Dit is het vierde deel in een beginnersprogrammaserie. In deel 1 leerden we de basis van ... Lees meer .
Maar dit gaat niet om één advies (zoals “ga met JavaScript”) maar een methodiek - iets dat mensen over twee jaar vanaf vandaag zouden kunnen gebruiken, theoretisch. Hoe eigenlijk uitvinden welke talen in de lift zitten? Welke code populariteitsstatistieken te vertrouwen en welke te wantrouwen (en waarom)? Wat zijn de beste salarisprojectiesites? Is GitHub een indicatie of niet?
Je zult bijvoorbeeld merken dat niemand tegenwoordig over PHP meesleept - maar veel, veel ontwikkelaars maken een goede levenscodering voor PHP, en het is nog steeds het grootste deel van wat er op het web draait. Dus is het leren van PHP nu een slecht idee? (Waarschijnlijk… )
Er is niemand een taal
Dit is waar James, onze inwonende webontwikkelaar en tech-man, binnenkwam om dit te zeggen:
Programmeurs leren hoe dan ook over het algemeen geen enkele taal. Iedereen die de klassieke CompSci-route aflegt, krijgt veel Java, een beetje Haskell, een beetje Prolog als ze een cursus AI volgen, een ander knooppunt als ze een cursus opstarttechnologie volgen, een beetje PHP als ze traditioneel leren CMSes, wat .NET als ze intern studeren bij een waardeloos hoofdkantoor, wat JavaScript als ze webdesign doen, een beetje C ++ als ze game-design doen en als laatste wat Ruby als ze hun leven willen verspillen met obscure talen die niemand eigenlijk gebruikt.
Er is geen “methodologie”??, en u kiest geen taal om te leren: het kiest jou!
Een taal leren is als het eten van alleen digestieven gedurende een jaar wanneer er een heel gangpad aan cookies is. En serieus, die volgens het verwachte salaris kiest voor een baan?
Maar wat als u CompSci niet leert?
Ik antwoordde aan James en zei:
Hier is het ding: dit is niet voor iemand die de klassieke CompSci-route neemt. Te oordelen naar de MOOC-explosie en het aantal online programmeercursussen, halen veel mensen de codering helemaal opnieuw op. En als je zo begint, heb je een taal nodig om mee te beginnen. Misschien ga je er later van af, maar die eerste taal zal een cruciale investering van tijd en moeite zijn - dus het is de moeite waard het te zijn.
Wat bij mij het meest resoneerde, is dat laatste kleine beetje dat hij zei - die banen kiest volgens het verwachte salaris. Ik denk dat sommige mensen dat doen, maar ik denk ook dat dat niet een goede manier is om het te doen.
Als het erop aankomt, mensen zijn proberen te achterhalen om welke taal het begint, en het gebruik dat die taal in de echte wereld krijgt, draagt bij die beslissing gewicht (niet alleen hoe gemakkelijk het is om te leren - Pascal ...).
Kies eerst een project, dan een taal
James kwam hiermee terug:
Oke, misschien moet een van de punten van deze methodologie zijn: geen methodiek hebben. Toen ik voor het eerst PHP tegenkwam, was het via WordPress. Ik had een CompSci-achtergrond in programmeren en enige webontwerpervaring, maar ik had PHP nog nooit gezien. Ik heb het geleerd omdat WordPress er gemakkelijk genoeg uitzag en ik wilde rotzooien met WordPress. Niet omdat ik naar een lijst met trending-technologieën had gekeken of een carrièrestap overwoog, maar omdat iets cools dat ik wilde weten over het gebruik ervan.
Als iemand op zoek was om programmeren te leren louter voor het doel van een baan, dan zouden ze falen. Als ze alleen maar uitkwamen omdat ze het leuk vonden om iets te programmeren, dan zou het niet uit maken welke taal ze kiezen, zolang het maar hun passie zou kunnen aanwakkeren..
Een andere reden om eerst een project te kiezen
Dit is het moment waarop Simon stapte in met wat pragmatisch advies:
Eerst en vooral hangt het ervan af of je je wilt ontwikkelen voor het web of “standaard-” software.
Voor de laatste is Java behoorlijk goed:
- Eenvoudig OO
- Multi-platform (Linux, Windows, Mac, Android)
- Vergelijkbare syntaxis voor veel andere programmeertalen (JS, C #).
Ik kan niet veel zeggen over webontwikkeling, hoewel HTML / JS / CSS / PHP / MySQL voor veel mensen lijkt te werken. Python ook.
Maar ja, de “om je een fantastische baan te bezorgen in 2 jaar” bit irriteert mij ook. Benadrukt het verkeerde aspect van het leren programmeren. Als je eenmaal kunt programmeren, is het vrij gemakkelijk om een andere taal onder de knie te krijgen.
Inhuur voor het kennen van een specifieke taal is vergelijkbaar met het krijgen van een baan als PA om te weten hoe om te gaan met MS Excel. Als dat de hoofdkwalificatie is, wordt het waarschijnlijk een slechte baan.
Do not Learn a Language: Learn Software Design
Er begon zich een consensus te vormen. Bruce Epper, van MakeUseOf Answers fame, had dit te zeggen:
De taal zelf doet er niet echt toe. Als het gaat om het programmeren van opdrachten, hebben de belangrijkste aspecten de neiging om basisontwerp en architectuur van de software te begrijpen, het coderingsproces in het algemeen, weten over ontwerppatronen, weten wanneer ze moeten worden gebruikt en hoe een specifiek patroon op de betreffende taak moet worden toegepast - die allemaal taalonafhankelijk zijn. Zodra een coder deze weet, is het oppakken van een volledig nieuwe taal een koud kunstje.
Er zijn zelfs projectmanagement, documentatie en schrijfvaardigheden die voor een programmeur belangrijker zijn dan het kennen van een specifieke taal.
De basis waarop u aan het bouwen bent: Engels of Latijn?
Dit was het moment waarop Guy binnenkwam om ons allemaal te herinneren aan de taal doet materie, tot op zekere hoogte:
De taal zelf is niet het belangrijkste bij het vinden van een baan, daar ben ik het mee eens. De basis waarop u bouwt, doet dat echter wel. Aangezien ik beide routes heb gedaan, ga ik programmeertalen vergelijken met menselijke talen.
Python lijkt het Engels van vandaag te zijn. Meer en meer zie ik Intro CompSci en programmeercursussen beginnen met Python in plaats van Java, dat ongeveer 10 jaar het populairst leek. Je kunt veel doen wat je met Python wilt doen.
C ++ is het Latijn van de programmeerwereld. Als je het leert, kun je de onderliggende principes van een groot aantal talen leren en ze gemakkelijker leren. Python zou een cakewalk zijn als je goed gefundeerd bent in C++.
Wat is een “Taak programmeren,” Hoe dan ook?
Het was Matthew's beurt nu, om ons eraan te herinneren dat codeerwerk heel verschillende dingen voor verschillende mensen kan betekenen:
Eén ding waarover nog niet veel is verteld, is wat voor programmeerwerk je wilt.
Ben je niet al te druk over de voordelen van Startup-medewerkers? Wil je stabiliteit en een fatsoenlijk loonpakket, maar geen eigen vermogen? Vind je het leuk om zakelijke formalwear te dragen? Leer C #, Java of COBOL. COBOL heeft ook het voordeel dat elke bankapplicatie ooit is bedacht (hyperbool, maar je begrijpt het wel) erin is geschreven. Omdat de meeste COBOL-ontwikkelaars met pensioen of dood zijn, is er veel vraag naar COBOL-ontwikkelaars met een salaris van zes cijfers! U zult echter werken aan enorme, slecht geschreven codebases die gedurende meerdere decennia zijn gemaakt. Dat is niet leuk.
Maar wat als werkzekerheid niet jouw ding is? Wil je werken aan interessante producten, maar ben je bereid om kansloos werkloos te zijn als het bedrijfsmodel niet werkt? Ik heb gemerkt dat het doorgaan (Hacker News) een betrouwbare manier is om te achterhalen welke talen worden gebruikt door startups. Toen ik in een vroeg stadium heb geïnterneerd, gebruikten we een combinatie van Go, Python en CoffeeScript. Andere startups gebruiken Rails en Groovy en allerlei obscure kaders en talen. Kies er gewoon een en je zult ergens een interessante baan vinden.
Nieuwe code of oud?
Het schrijven van een nieuwe code is een heel andere ervaring dan het onderhouden van een bestaande applicatie, zoals Bruce heeft toegevoegd:
Met je opmerkingen over COBOL raakte je een andere overweging: wil je werken aan nieuwe code of de code van iemand anders behouden? Dit kan een enorm item zijn bij het bepalen van de richting die moet worden verplaatst. Voor kleinere projecten is het misschien niet zo erg om een door iemand anders geschreven codebasis bij te houden, maar ik heb sommige delen van de code gezien waar je meerdere mensen hebt die er uren naar staarden, “Wat dacht deze man??”, of waar de originele programmeur gebruik maakte van een specifieke functie of bug in de compiler (die mogelijk in de huidige compiler is hersteld) om iets te bereiken.
Wat als je geen keuze hebt?
Guy kwam terug om ons eraan te herinneren dat niet iedereen een breed scala aan keuzes heeft:
Matthew werpt een goede vraag op met, “Wat voor soort programmeeropdracht wilt u??”
Vreemd genoeg dacht ik nooit echt dat ik veel keus zou hebben. Ik wist dat ik de ontwikkeling van het web wilde doen toen ik begon, nadat ik op een andere manier recreatief andere programma's had gedaan. Maar ik dacht dat ik beter voorbereid kon zijn op elke klus die ik kon krijgen en wees bereid om te leren zoals ik ging. Nu ben ik een manusje-van-alles, bekwaam in verschillende technologieën - meester van niemand.
Wat betreft het uitzoeken waar je wilt werken, is het bepalen van het type levensstijl dat je wilt belangrijk. Bekijk vervolgens de berichten van bedrijven die aan uw criteria voldoen en zie wat ze in het algemeen zoeken. Het samenstellen van een portfolio met dingen die vergelijkbaar zijn met wat ze doen, kan ook heel nuttig zijn, vooral als je geen formele training hebt gevolgd in de technologieën die ze gebruiken. Misschien heb je Java op school geleerd, maar ze gebruiken C #. Dus je leert jezelf C # en doet er een paar programma's mee als bewijs dat je weet wat je doet en dat je een vloeibare intelligentie hebt.
No One Simple Answer
Als er iets in deze discussie te zien is, zijn het dat simpele vragen niet altijd eenvoudige antwoorden hebben. En toch, na het lezen van ieders meningen, voelde ik me veel beter geïnformeerd - ze veranderden van gedachten.
Ik weet zeker dat we hier niet alle mogelijke standpunten hebben vastgelegd - dat is waar het commentaargedeelte voor is. Ik zou heel graag willen weten wat je mening was over deze vraag, of je nu een pro-coder bent of niet. Hoe zou je een programmeertaal kiezen om over twee jaar een goede baan te krijgen? Is dat zelfs een goede manier om een taal te kiezen? Deel je gedachten hieronder.
Ontdek meer over: Job Searching, Programming.