<advocate type="devil">
Topicstarter: het lijkt wellicht dat je wat hebt aan wat hier in deze thread verteld wordt. Dit is niet zo. Het doel van een opleiding is dat je leert denken en leert rudimentaire informatie te bundelen tot nieuwe informatie. Je hebt een opdracht gekregen om een zeker puzzeltje op te lossen. De fout die je maakt is dat je denkt dat het DOEL van die opdracht is het inleveren van werkende code. Dit is niet het geval, de docent heeft die waarschijnlijk al jaren in de kast liggen. Het doel van die opdracht is dat JIJ (en niemand anders, anders leer JIJ er nl. geen hol van) leert hoe je zo'n probleem aanpakt, welke mogelijkheden zie je, wat heb je geleerd qua methodieken en wat krijg je wanneer je ze toepast op deze opdracht etc. etc. Het is niet erg dat je wellicht niet een werkende oplossing kunt tonen, je zit nl. nog op school. Waar het om gaat is dat je ZELF die opdrachten oplost.
Wat je nu doet is dat anderen het je voorkauwen, althans de weg vertellen tussen de problemen door. Wat overblijft is het vertalen van de oplossing in text naar een oplossing die werkt, en dat kan iedere boerel*l, het moeilijke is nl. al gedaan.
Je leert hierdoor NIET hoe je een probleem aanpakt, hoe je problemen overwint. Als je dit niet leert, wordt het ook niks later, want je strandt dan op het niveau waar veel 'software engineers' op stranden: nauwelijks in staat zelf oplossingen te verzinnen en chronisch via google proberen hun werk te doen. Het nare van die situatie is dat je niet verder komt wanneer je eenmaal gestrand bent, want je hebt nooit geleerd zelf te denken, zelf kennis om te zetten in wijsheid.
Software engineering is precies dat: problemen oplossen, door toepassen van wijsheid, gebaseerd op kennis. En problemen zijn soms erg lastig en soms weet niemand de oplossing en moet je dus op zoek naar hoe het aan te pakken. En juist DAARVOOR zit je op school, om te leren hoe dat te doen. Immers, hoe je een programmaatje maakt staat in de eerste de beste sams paperbacks: learn <language> in 21 days!.
Altijd leuk is bv spoj (
http://www.spoj.pl). Een waslijst aan computer problemen waar je een oplossing voor kunt indienen en als deze capabel is en snel genoeg is dan krijg je een punt. Beste Nederlander is iemand die supergoed is in het opbreken van een probleem in kleine stukjes en daar dan de oplossing voor te vinden, proberen, kennis toepassen etc. De oplossingen zijn soms echt bizar als je er zo naar kijkt, maar het zijn wel DIE oplossingen die maken dat je het probleem oplost, de voor de hand liggende flutoplossingen zijn het steevast niet. Het zijn ultieme tests of je problemen kunt oplossen met je eigen werkwijze, precies wat deze opdracht ook toetst.
In 'het echte leven' is het precies eender: als software engineer weet je nooit wat je op je pad krijgt, en vaak zit je naar een probleem te kijken waar je je echt even achter de oren krabt hoe je het moet aanpakken. Denk je dat je dan even op een forum een vraag kunt stellen hoe je het op moet lossen? Tuurlijk, 'problemen' als 'hoe open ik een file' wellicht wel, maar dat zijn niet de problemen waar ik het over heb. Ik heb het over problemen waarbij je bv input kunt verwachten van elementen in oneindig verschillende volgordes en jij daar toch wijs uit moet zien te worden en beslissingen mee moet kunnen nemen.
Je moet je voorbereiden op een wereld waarbij JIJ degene bent die het antwoord dient te geven, niet degene die de vragen stelt. Echter, als je niet de basisbeginselen leert van het zoeken naar het antwoord, dan zul je niet de voorbereiding krijgen die je nodig hebt.
Denk hier niet te licht over, want ik schat dat het meerendeel van de 'software engineers' nu in het veld niet capabel genoeg zijn. Waren ze dat wel, dan waren de software applicaties die worden afgeleverd gemiddeld wel van betere kwaliteit.
Waarschijnlijk krijg ik weer de gebruikelijke lulkoek over me heen van de mensen die vinden dat ik ongelijk heb, c'est la vie. Topicstarter, geloof me, ik weet waarover ik praat: al jaren kan ik niemand een vraag stellen over waar ik mee bezig ben omdat maar een zeer select groepje mensen snapt waar ik mee bezig ben en die werken allemaal bij concurrenten. Om de engineering problemen het hoofd te bieden moet ik dus zelf op zoek naar oplossingen. Op twee plekken is me geleerd hoe dat te doen: 1) op de HIO Enschede waar ze hamerden op het zoeken naar oplossingen, niet zozeer naar hoe je het bouwt, dat is triviaal wanneer je de oplossing hebt en 2) de demoscene, waarbij de lat erg hoog lag en je dus oplossingen moest zoeken om het (ogenschijnlijke) onmogelijke toch mogelijk te maken. Dan moet je niet vragen stellen, want daar kreeg je toch geen antwoord op, je moest nadenken, proberen, oplossingen verzinnen voor deelproblemen, het combineren van kennis wat je had tot nieuwe kennis, wijsheid daaruit distilleren en toepassen.
Je zit niet op school voor de docenten, je zit op school op je voor te bereiden op een lang leven waar je de kennis die je leert toepast en daar op voortborduurt. Zorg er dus voor dat die kennis zo groot mogelijk is wanneer je van je school afkomt, want daarna heb je geen tijd meer om de kennis en de wijsheid die je daaruit haalt dermate aan te vullen zonder veel investeringen (tijd, moeite).
</advocate>