MueR schreef op dinsdag 12 juli 2011 @ 12:30:
Waarom iemand geen opleiding wil doen is vrij breed natuurlijk. Dat kan een financiële reden zijn, dat kan een mentaliteit zijn. Voor mij persoonlijk: ik kan er niet tegen om een paar uur per dag in schoolbanken te zitten. Ik wil iets doen, iets maken en zo leren. In de praktijk tegen problemen op lopen en ze oplossen. Ik kan mezelf niet motiveren om enkele uren stil te zitten en kennis op te nemen op de vrij droge manier waarop scholen dat doen.
Natuurlijk, niet iedereen is gelijk. Maar in dit geval zou WO dan een stuk beter bij jouw mentaliteit passen als ik dat zo lees. De universiteit is strikt gezien geen 'school'. De docenten zijn niet officieel leraar (ze hebben geen officiële opleiding of graad in lesgeven), maar zijn mensen die in de praktijk de hele week met hun vakgebied bezig zijn en een percentage van de tijd in een college zaal staan.
Voor de meer theoretische richtingen (fundamentele informatica, algorithms) zou je ze meer zien als 'wetenschappers', maar voor de meer toegepaste richtingen (computer systems, software engineering) zijn het ook gewoon 'programmeurs'. Die zijn b.v. met dingen bezig als het coden van netwerk stacks, of een engine van een VM. Een goed voorbeeld is Herbert Bos van de VU:
http://www.cs.vu.nl/~herbertb/
Als zo iemand dan in een collega komt vertellen over zijn of haar ervaringen en visies en je direct vragen kunt stellen, is dat IMHO een voorrecht wat je moeilijk elders kan krijgen. Je kunt naar conferenties gaan en professionals uit het vak horen spreken en naderhand vragen stellen, je kunt mailen, (IRC) chatten of op blog postings reageren, maar dat is toch niet te vergelijken.
Vergeet niet dat op de universiteit aanwezigheid bij colleges niet verplicht is en je nagenoeg altijd tentamens (nagenoeg) in je eigen volgorde kan doen. Wat men op de universiteit eigenlijk zegt is: hier heb je lijst van boeken, hier is een lijst van tentamen datums en practicum opgaven en ga maar los.
Heel veel van wat je daar doet -is- zelfstudie en zelf experimenteren. Het mooie ervan is dat je 5 jaar lang eigenlijk volledig de kans hebt om je te verdiepen in kennis en te experimenteren met diverse technieken. Dat is een kans die je eigenlijk nimmer meer krijgt. Tijdens je jonge leven is er altijd school, en daarna heb je werk. De tijd die rest voor deze dingen is dan altijd gelimiteerd (avonden, weekeinden, eventueel vakanties voor de echte liefhebbers).
Er er komen echt interesante dingen voorbij tijdens de studie. Wel eens zelf een CPU emulator geschreven of een compiler? Een terminal emulator? Een filesystem? Een 3D graphics engine? Een neuraal netwerk? Die dingen komen aan de lopende band voorbij bij de uni en dat zijn veelal dingen die je niet even na het werk nog gaat doen, of misschien hooguit 1 van deze dingen maar zeker niet allemaal.
Daarnaast heb je nog de hele sfeer en de omgeving van je medestudenten. Leuk dat jij op je zolderkamertje aan die MIPS R4000 emu werkt voor je zelf, maar met wie valideer je of je standpunten redelijk zijn? Als je 15 jaargenoten hebt die op dit moment met exact hetzelfde bezig zijn en het het topic van de dag is, dan ontstaat er toch een hele andere mentaliteit bij je zelf. Je bent veel meer gedreven en gaat er veel meer in op.
Dan komt er nog het studeren van stof bij die nu eenmaal verplicht is gesteld maar die je vanuit je zelf nooit bestudeerd zou hebben. De meeste programmeurs gaan uit zich zelf niet de theorie achter turing machines leren. Ze weten misschien nog net dat een programmeertaal turing complete moet zijn om "alles te kunnen", maar wat een turing machine echt is weten ze niet. Zelfde verhaal voor finite state machines, petri nets en nog veel meer. Tegenwoordig kun je weliswaar alles in luttele seconden opzoeken, maar gegeven een abstract probleem zul je er niet een finite state machine in zien als je nog nooit zo'n ding bestudeerd hebt en niemand die term noemt.
-daar- ontstaan dan vaak de gaten bij iemand die geen opleiding heeft genoten.
Let op dat mijn stelling absoluut niet was dat een opleiding een talentloos iemand goed maakt, of dat iemand zonder opleiding slecht is, maar dat iemand met talent (en passie, etc) met een opleiding alleen maar beter wordt.
Wie moet bepalen of ik talent heb? Iemand die mij aanneemt. Als ik bij een sollicitatiegesprek de technische vragen gewoon kan beantwoorden zit de kennis er, en dan zou het niet uit moeten maken of die door een instelling of door mezelf daar is gekomen.
True, maar een sollicitatie gesprek van b.v. 2 uur blijft een steekproef. Het gaat niet de kennis test van tientallen tentamens die elk 3 uur kosten even vervangen.
Wij doen b.v. een sollicitatie die dan wel uit meerdere rondes bestaat, waar mensen o.a. zelf code moeten schrijven, bestaande code moeten lezen (en probleem uit doktoren), stukje 'messy code' moeten refactoren, reeks termen en concepten moeten uitleggen en uiteindelijk een eigen mening op een open vraag formuleren.
Uit ervaring blijkt dat de mensen die het het beste op alle punten doen mensen met een opleiding zijn.
Nogmaals, het is NIET zo dat mensen met een opleiding het het beste doen, maar dus dat van die mensen die het het beste doen ze nagenoeg allemaal een opleiding hebben.
De mensen zonder opleiding kunnen het af en toe best aardig doen op de code testen, maar gaan dan stuk op het uitleggen waarom bepaalde dingen zo werken als ze werken. Dat kunnen hele flauwe dingen zijn als het aangeven van hoe een linked list of Hashmap nu eigenlijk intern werkt (of te wel, hoe zou je zo'n ding schrijven), of hoe gaat een sorteer algoritme ongeveer te werk, hoe kan het zijn dat een CPU kan rekenen (hoe zou je heel rudimentair zelf een CPU bouwen), wat is in hele grote lijnen het verschil tussen hoe een computer rekent en hoe de hersenen van een mens 'rekent'. Dit is nu niet allemaal perse het hoogste niveau WO, maar de ongeschoolden weten hier zelden wat over te zeggen.
Ze weten de HashMap in Java te vinden, weten wat ie doet, maar hoe zo'n ding nu intern werkt? Sommige worden er zelfs kwaad over: "Dat hoef ik helemaal niet te weten, want Java heeft al zo'n ding en je wilt toch niet beweren dat ik in mijn functie HashMaps moet gaan lopen te implementeren???".
Dat laatste hoeft inderdaad niet, maar keer op keer blijkt in de praktijk dat mensen die wel grondige kennis hebben van onderliggende concepten de dingen toch beter aanpakken en problemen eerder en beter kunnen inschatten.
We hebben ook zeker mensen aangenomen zonder opleiding, omdat die gewoon een goede indruk maakte tijdens de sollicitatie. Later blijken er dan toch enkele fundamentele gaten te zijn. Zo'n persoon kan echt heel erg goed zijn, maar altijd blijft de gedachte knagen: deze persoon zou nog zoveel beter zijn als ie ook nog een solide theoretische basis had gehad.
NMe schreef op dinsdag 12 juli 2011 @ 12:50:
Iemand die niet geboren is met een bepaalde knobbel in zijn hoofd zal nooit een uitzonderlijke programmeur worden. Hij zal mogelijk wel een goede programmeur worden met een bijbehorende studie [...] Iemand die die knobbel wél heeft maar geen opleiding volgt kan wél een uitzonderlijk goede programmeur worden,discipline hebt.
Dit is een sterk terugkerend element in deze discussie, dat het zou gaan om OF een opleiding OF een talent. Alsof ze concurreren met elkaar. Opleiding vs Talent.
Maar waar het mij om ging waren mensen met talent EN opleiding.
De beste programmeurs hebben een natuurlijk talent, zijn op hun 6de of 7de begonnen met programmeren, hebben er volledig hun hobby van gemaakt en hebben een goede opleiding genoten.
It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.