Is programmeren moeilijk?
Deze vraag wordt me vaak gesteld door niet-programmeurs. Hij staat dan ook in de rij van vragen als: “Werken programmeurs van thuis uit?” en “Wat voor opleiding heb je nodig om programmeur te worden?” Nieuwsgierige geesten willen het weten.
Maar in tegenstelling tot sommige van die vragen, is deze eigenlijk best moeilijk. Het is een eenvoudige vraag, maar het antwoord is zeer genuanceerd.
Dus laten we er eens induiken, in detail, en je helpen begrijpen of programmeren moeilijk is of niet.
Is programmeren moeilijk? The Short Answer
Dus laten we eerst de vraag aanpakken met een kort en direct antwoord. Dit zal de toon zetten voor de rest van de post.
Is programmeren moeilijk?
Wel, zoals consultants graag zeggen, “het hangt ervan af.” Of programmeren moeilijk is of niet, hangt af van veel factoren, zoals het specifieke type programmering en hoe je als individu denkt. Dus het korte antwoord is dat programmeren echt de gamut loopt van verrassend makkelijk tot waanzinnig moeilijk.
Denk eens op deze manier. Probeer eens een paar van deze vragen te beantwoorden op basis van uw ervaring:
- Is basketballen moeilijk?
- Is Portugees spreken moeilijk?
- Hoe zit het met autorijden? Is dat moeilijk?
Je ziet waarom ik me indek en zeg, “ehhh… het hangt ervan af.”
Mensen hebben de neiging overmatig geïntimideerd te zijn door programmeren
Ik zal echter een beetje een kwalificerende mening geven. Ik denk namelijk dat niet-programmeurs de neiging hebben om te overschatten hoe moeilijk programmeren is.
Heb je ooit iemand zoiets horen zeggen:
Oh, ik ben gewoon echt geen wiskundig persoon!
Wel, dat hoor ik vaak. Maar ik hoor hetzelfde meer over programmeren. En ik vind dat ironisch, want voor sommige onderdelen van programmeren is echt wiskunde nodig, maar voor veel andere onderdelen niet. Programmeren is, naar mijn mening, veel meer dan “wiskunde.”
Ik geloof echt dat veel mensen denken dat ze het nooit zullen maken als programmeur, maar ze hebben het helemaal mis. Het is een veel toegankelijker onderwerp dan de wereld lijkt te geloven.
Let’s Dispel Some Programming Myths, Beyond the Math One
Om het punt echt te benadrukken, laten we eens kijken naar een aantal extra misvattingen over programmeren, buiten de mythe dat programmeurs echt goed moeten zijn in wiskunde.
Misvatting 1: Programmeurs zijn elite-hackers, zoals die vent in Mr. Robot
Of je nu zo oud bent, er is vast wel een film uit je jeugd waarin programmeurs worden neergezet als Bond-achtige (of Bond-villain-achtige) hackers. Toen ik opgroeide, was dat de film Sneakers. Als je wat later bent opgegroeid dan ik, heb je misschien de pech gehad Hackers of Swordfish tegen te komen. Tegenwoordig is het genre verbeterd, en je zou kunnen genieten van Mr. Robot.
Maar of de film nu geweldig is, zoals Sneakers, of verschrikkelijk, zoals Hackers, je hebt nog steeds hacker-hoofdrolspelers en hacker-antagonisten die zowel quasi-sociopathisch lijken te zijn als ongelooflijk briljante programmeurs.
Dit is niet het echte leven. Het is niet eens echt hacken, laat staan alledaags programmeren. Dus ga er niet van uit dat programmeren vereist dat je blokjes rond een scherm moet bewegen, of wat Hugh Jackman ook aan het doen is in Swordfish. Meestal moet je gewoon veel Googlen.
misvatting 2: je hebt een graad in de informatica nodig
We hebben dit al uitvoerig behandeld, dus ik zal er hier niet te veel over uitweiden. Maar nee, je hebt geen computerdiploma nodig om te programmeren. Je hebt geen vakdiploma nodig, en je hoeft misschien niet eens een bootcamp te volgen.
Die dingen maken het allemaal gemakkelijker om die eerste baan te krijgen, maar ze zijn niet vereist. Dus als je je afvraagt: “is programmeren moeilijk?”, verwar je waarschijnlijk de hoepels waar je doorheen moet springen met de activiteit. Er zijn geen andere vereisten om te programmeren dan een kladblok en het downloaden van een enkele interpreter of compiler.
Misvatting 3: Programmeurs hebben vreselijke sociale vaardigheden
Deze zal je misschien een beetje op je hoofd doen krabben. Je denkt waarschijnlijk: “Wat heeft het idee dat programmeurs vreselijke sociale vaardigheden hebben, met mij te maken, of met waarom programmeren moeilijk is?”
Wel, het is subtiel, maar echt. De wereld kijkt naar tv-programma’s en films waarin je ervaren programmeurs kunt herkennen aan hun neiging om “geek out” te doen.”
Dus de omgekeerde logica sluipt naar binnen en je denkt: “Als ik niet waanzinnig sociaal onhandig ben, kan ik dan ooit een ‘echte’ programmeur worden?”
Ja, dat kan. Programmeurs gaan naar veel conferenties en meetups, geven lezingen, vormen gemeenschappen, en hebben geweldige, normale sociale levens.
Misvatting 4: programmeurs zijn meteen goed in alles wat met computers te maken heeft
Ikzelf heb een graad in de informatica behaald, en daarna een baan als programmeur. En toen ik dat deed, nam iedereen meteen aan dat ik een expert was in alles wat met computers te maken had.
- Erik, mijn computer maakt zo’n raar geluid. Wat denk jij dat er mis is?
- Hey, ik krijg Error #90314 als ik MS Word probeer af te sluiten. Wat betekent dat?
- Welke van deze videokaarten is de beste?
Al deze vragen hoorde ik. En in principe, googelde ik gewoon het antwoord (als ik al niet zei, “wow, ik weet het echt niet.”). Ik verdiende mijn brood met het schrijven van software, maar dat betekende niet dat ik alles en alles over computers wist.
Ik noem dit omdat je niet moet denken dat je alles en alles over computers moet weten om een programmeur te zijn.
Er is veel variatie in programmeren
Nu we een aantal mythes hebben ontzenuwd, laten we eens kijken naar de realiteit van programmeren. En de realiteit is dat het eigenlijk heel divers is. Hier is slechts een kleine greep uit de dingen die mensen doen onder de algemene paraplu van “programmeren”:
- Het ontwerpen van de lay-out en visuele eigenschappen van een webpagina.
- Het maken van kunstmatige intelligentie algoritmen.
- Handmatige takenScripten om ze te automatiseren.
- Complexe statistische modellering.
- Het bouwen van eenvoudige, herhaalbare mobiele apps.
En dat is nog maar een kleine greep uit de verschillende soorten programmeren. Het gaat niet eens in op alle verschillende rollen die je zou kunnen bekleden die bijdragen aan deze inspanningen.
Er is evenveel variatie in “een programmeur zijn” als in “een zakenman zijn.”
Sommige programmeerrollen zijn meer benaderbaar
Gezien die variëteit, zou ik graag wat dieper ingaan op welke rollen meer benaderbaar lijken.
Ik ga een beetje weg van het “makkelijk tot moeilijk” spectrum, alleen maar omdat dat zo afhankelijk is van wat jij, als individu, moeilijk vindt. Ik heb het bijvoorbeeld altijd erg goed gedaan met wiskunde en algoritmen, maar ik ben eerlijk gezegd vreselijk in ontwerpen en lay-out. Misschien heb jij wel tegenovergestelde neigingen en vind je me belachelijk als ik zeg “een sorteeralgoritme programmeren is makkelijk” en daar iets tegenover stel wat ik net zo belachelijk zou vinden: “een mooie webpagina opmaken is makkelijk.”
Begrijp dus dat ik dingen niet categorisch makkelijk of moeilijk noem. In plaats daarvan wijs ik je op dingen waar je misschien niet aan gedacht zou hebben, als je programmeren alleen maar als zeer wiskundig had gezien.
- Sommige mensen in programmeerfuncties richten zich grotendeels op lay-out en gebruikerservaring. Dit betekent dat ze zich intensief bezighouden met de esthetiek van de toepassing en de manier waarop gebruikers ermee omgaan.
- Andere programmeurs richten zich vooral op gegevens en databases. In plaats van grote stukken software te bouwen met behulp van complexe instructies, richten zij zich veel meer op de feitelijke gegevens en het redeneren over die gegevens.
- Nog een andere discipline staat dichter bij operaties en ondersteuning. Sommige mensen werken een aardig eindje met computers als “power users” en leren programmeren door hier en daar te leren hoe ze wat ze handmatig doen kunnen automatiseren en efficiënter kunnen maken.
En dat zijn nog maar een paar voorbeelden. Dus begrijp dat, zelfs als programmeren je moeilijk lijkt, er misschien rollen binnen zijn die eigenlijk meer benaderbaar lijken.
Programmeren is, echter, buitenaards, wat kan betekenen dat programmeren moeilijk is
Op dit punt wil ik even van versnelling veranderen. Ik heb het gevoel dat ik al heel wat tijd heb besteed aan het thema “hé, programmeren is niet zo moeilijk als je denkt.” En dat is waar. Ik denk dat veel mensen de vraag “is programmeren moeilijk” met “ja” zouden beantwoorden, gewoon omdat ze niet weten wat programmeren inhoudt.
Maar ik ga dat hier een beetje temperen. Programmeren is moeilijk in de zin dat het je vraagt om op een manier te denken die je niet gewend bent.
Om te begrijpen wat ik bedoel, denk maar aan de omgang met Alexa.
Alexa kan een heleboel tactische vragen beantwoorden, en soms zal ze je verrukken en verrassen. Maar ze is ook echt frustrerend. Haar computer-ish-ness laat zich soms zien als ze op komische wijze menselijke basisinteractie niet begrijpt.
Nou, bedenk dat, voor zover computerprogramma’s gaan, Alexa volledig is geoptimaliseerd om haar best te doen om je te begrijpen. Je moet extreem precies, letterlijk en stompzinnig zijn terwijl je met haar praat, en ze is er om je te begrijpen.
De compiler (het ding dat je code vertaalt in actie) is net als Alexa, maar het is niet ontworpen om je leven gemakkelijk te maken. Het is ontworpen om het nut te maximaliseren. Dus als je precies moet zijn in de omgang met Alexa, beschrijft precies niet eens wat de compiler wil. Als je een puntkomma verwisselt met een dubbele punt, dan kan je computer crashen.
Dus programmeren is moeilijk? Ja, in de zin dat het vereist dat je denkt op een manier die de meeste mensen normaal niet denken.
Programmeren de stand van de techniek is legitiem moeilijk
Om door te gaan met het thema “ja, programmeren is moeilijk,” laten we eens overwegen dat er delen van de programmeerwereld zijn die veel vaardigheid en oefening vereisen om binnen te komen. Overdenk het niet. Soms is programmeren echt moeilijk.
Het doen van geavanceerde dingen met robotica, blokketens, kunstmatige intelligentie, handelsalgoritmen, enz. vereist veel vaardigheid, oefening, talent en competitiedrang. Sommige van de grote Silicon Valley-bedrijven betalen enorme salarissen aan softwareontwikkelaars, en ze gaan dat niet doen voor iedereen die toevallig langsloopt.
Er zijn specialiteiten in de programmeerwereld die bliksem in een fles vereisen, in de zin dat je oefening, talent, slimheid en geluk nodig hebt. En verder zijn er rollen, posities, uitdagingen en situaties die niet veel mensen naar behoren kunnen vervullen. Programmeren kan behoorlijk moeilijk zijn.
Zoals alle andere dingen, het gaat van een leien dakje
Maar, uiteindelijk, varieert het echt. Denk terug aan wat ik in het begin zei.
Is basketbal moeilijk? Nee, als je bedoelt “kan iedereen een bal oppakken en naar een basket gooien?” Ja, als je bedoelt: “Hoe groot is de kans dat Golden State me tekent om naast Steph Curry te spelen?”
Is het moeilijk om Portugees te spreken? Nou, waarschijnlijk niet als je in Brazilië of Portugal bent geboren. Maar waarschijnlijk wel als je 70 jaar oud bent en nooit iets anders dan Japans hebt gesproken.
Dus, is programmeren moeilijk? Ja en nee. Ja, het is moeilijk om het op elite-niveau te doen of in een zeer gespecialiseerd en competitief gebied. Maar nee, het is niet moeilijk om te beginnen. En het is zeker niet boven je macht.
Dit bericht is geschreven door Erik Dietrich. Erik is een veteraan in de software wereld en heeft zowat elke positie daarin bekleed: ontwikkelaar, architect, manager, CIO, en, uiteindelijk, onafhankelijk management en strategie consultant. Deze brede ervaring heeft hem in staat gesteld om te spreken met alle industrie personas en om verschillende boeken en ontelbare blog posts te schrijven op tientallen sites.