Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Ict-studenten waarschuwen dat ze onveilige code leren schrijven

Ict-studenten klagen dat de kwaliteit van de lessen programmeren ondermaats is, dat kennis van docenten vaak verouderd is en dat ze moeten werken met oude hardware en verouderde programmeertalen. Dit zou veiligheidsrisico's met zich meebrengen.

De NOS citeert een aantal studenten van ict-opleidingen in Groningen, Deventer en Rotterdam, die zich beklagen over de kwaliteit. Zo vinden studenten van de Hanzehogeschool in Groningen dat er te weinig oog is voor beveiliging en voor de kwaliteit van code. "In de bijna vier jaar heeft er nog nooit een docent naar de kwaliteit van mijn code gekeken", aldus een laatstejaars. Volgens de school is er wel ruimte voor beveiliging, maar later in de opleiding en ook is er een specifiek vak voor.

Een student van het Alfa College in Groningen noemt de lesstof gedateerd omdat docenten de ontwikkelingen niet goed zouden bijhouden. Volgens een student uit Deventer is niet alleen de lesstof verouderd, maar ook de hardware: "We werken met verouderde netwerken, switches, serial ports en sockets."

Petra Oldengarm, directeur van Cyberveilig Nederland, wijst vooral op het tekort aan geschoold personeel voor ict-beveiliging. Volgens haar kunnen studenten ook goed over beveiliging leren met oude materialen. "Het gebrek aan kennis bij docenten is schrijnender dan verouderde hard- en software."

Door Olaf van Miltenburg

Nieuwscoördinator

26-04-2018 • 19:50

259 Linkedin Google+

Reacties (259)

Wijzig sortering
Persoonlijk heb ik zowel MBO (ICT Systeembeheer) als HBO (Technische Informatica) studies gevolgd waarbij het niveau inderdaad niet bijster hoog was als het ging om programmeren. Maar dat ligt niet zozeer aan de onwelwillendheid van docenten, maar de continue verandering die er plaatsvind in de IT wereld. Er zijn zoveel script- en programmeertalen, frameworks, etc. dat je simpel niet van docenten kunt verwachten dat zij alle ins- and outs kennen. Dat zij naast het voorbereiden en geven van (hoor) colleges tijd moeten maken om studenten te helpen en werk te controleren ook nog tijd moeten maken om een volledige programmeertaal van binnen en buiten te kennen lijkt me onrealistisch.

Ik denk persoonlijk dat hogescholen, en volgens mij doen heel veel dat al, meer moeten werken met bedrijven welke gastcolleges verzorgen. Met programmeren is het nu eenmaal zo dat oefening kunst baart en niet een uurtje naar een powerpoint kijken. Daarbij is programmeren niet perse iets wat iedereen ligt en ook niet iedereen ambieert.

De vraag die ik me dus eigenlijk afvraag is wat willen scholen bereiken met het geven van 20 weken programmeertaal X, en dan 20 weken programmeertaal Y. (in mijn geval PHP, C#, Java). Je kunt het namelijk op heel veel manieren invullen: richt je je op design patterns? anders, oplossingsgericht, te leren denken? de grondbeginselen (bijv een vak waarbij datatypes aan bod komen, verschillende architectuur lagen, etc)? of moet het echt in depth algoritmes zijn?

Het doel bepaald namelijk in welk traject van de opleiding je het kunt geven, en aan wie. Zo kan ik me prima voorstellen dat het voor marketing studenten heel handig is als ze een vak grondbeginselen HTML / CSS kunnen leren, dat ze datatypes nog wel interessant kunnen vinden maar dat ze bij recursieve functies vermoedelijk afhaken. Maar dat dit een goed startpunt is voor de de al iets gevorderden. Het leren van scheiden van componenten (single responsibility), testing, etc, etc.

Dan zou je keuze vakken moeten aanbieden die louter worden gegeven door mensen uit het bedrijfsleven, die weten wat er speelt, waar studenten zich op inschrijven die dat echt willen leren. Dan hoef je namelijk ook niet meer perse "huiswerk" te verzinnen maar kun je het bedrijfsleven nabouwen. Laat de "klas" nadenken over een product (applicatie / app / site , noem maar op) laat ze de scope bepalen, taken uitwerken in een scrum board, werk verdelen. Laat (of bereid voor) ergens een source control inrichten waar studenten zich op abonneren en voor de periode samenwerken aan "het product'. Als studenten onderdeel worden van iets waar ze zelf zeggenschap over hebben creeert dat draagvlak, als "docent" kun je in source control prima volgen wie er allemaal commits doen (desnoods vereis je pull requests die je zelf controleert), m.a.w. wie er actief deelnemen, welke mensen vastlopen, en waar de lesstof misschien de focus op kan leggen. Dit hele proces sluit prima aan bij het agile werken waar de halve wereld momenteel aan doet.

Ik was zelf ook iemand die altijd kritisch was op de opleiding, docenten, de vakken, etc. maar als ik nu terugkijk dan heeft het volgens mij nooit aan de wil gelegen maar meer aan de "standaard" eisen welke van bovenaf aan scholen worden opgelegd waardoor ze binnen de lijntjes moeten kleuren. Waardoor documentatie belangrijker is dan code omdat de examencommissie geen code kan lezen, maar wel documentatie.

Anno 2018 is er gewoon een andere aanpak nodig van lesgeven. Net als dat de wereld om ons heen verandert, verandert ook de manier van lesgeven. Althans: laten we hopen dat het zo is.
"De vraag die ik me dus eigenlijk afvraag is wat willen scholen bereiken met het geven van 20 weken programmeertaal X, en dan 20 weken programmeertaal Y. (in mijn geval PHP, C#, Java). Je kunt het namelijk op heel veel manieren invullen: richt je je op design patterns? anders, oplossingsgericht, te leren denken? de grondbeginselen (bijv een vak waarbij datatypes aan bod komen, verschillende architectuur lagen, etc)? of moet het echt in depth algoritmes zijn?"

Dat is dus een reden dat ik zo blij was op het Nova College in Beverwijk. Wij mochten zelf onze programmeertaal kiezen (meeste kozen C# of PHP) en wat we leerde was eigen compleet taalonafhankelijk. Zelf ben ik na de bais driehoekjes en vierkantjes in CMD verder gegaan met .NET Framework en het leren van design patterns (S.O.L.I.D., DRY etc) en hoe je zo efficient (en veilig) mogelijk leert programmeren.

Gelukkig had ik dan ook een aantal leraren die wel zeker verstand hadden van het vak. Maar als ik kijk wat ik op school en stage geleerd heb, en de verhalen die ik hoor van mensen die na MBO naar HBO zijn doorgestroomd, was het iig rond Alkmaar -> Amsterdam met het HBO slecht gesteld.

" Laat de "klas" nadenken over een product (applicatie / app / site , noem maar op) laat ze de scope bepalen, taken uitwerken in een scrum board, werk verdelen. "

Dit kregen wij dus ook. Zeker laatste jaar was alleen maar projectmatig werken. Helaas wel waterval methode, maar ik heb het tussen de projectgroep lekker agile weten te maken O-)

[Reactie gewijzigd door DdeM op 26 april 2018 21:24]

Helaas heb ik het meeste hiervan ook in Rotterdam ondervonden. Gelukkig had ik een project docent die daadwerkelijk zich ging gedragen als klant. "Oh ja, ik zei dat vorige week, maar ik bedoelde eigenlijk dat!", tja, of het was onderhandelen met de klant, of het was meerwerk. De scope in het project was iets waar je daadwerkelijk rekening mee moest houden en hij zorgde ervoor dat het soms erg lastig was. Helaas kwam dat te weinig voor.

Er waren genoeg docenten die al 10 jaar hetzelfde les gaven, wat ze vertelden was vaak niet meer relevant voor vandaag.

Ik was altijd blij met docenten die aangaven dat je zelf kon kiezen welke taal je koos, zolang de design patterns maar klopten en de output maar goed was. Natuurlijk keken ze ook naar of de code leek te kloppen, maar voor een JAVA expert was C# in sommige gevallen iets lastiger.

Tijdens de stage/het afstuderen heb ik daadwerkelijk geleerd. Daar was het belangrijk om te plannen, daar moest je je verantwoorden. Daar werden codereviews gedaan. Ik heb soms het idee dat ik daar meer heb geleerd dan in de rest van de opleiding.

IT blijft lastig, zelfs nu, meer dan 4 jaar na het afstuderen, leer ik nog meer dan genoeg. Software development is een richting die constant door blijft gaan, het is lastig om daar les in te geven, het gaat immers zo verdomde snel.
Bij ons op het mbo kregen we eerst een klein beetje van alles. Web(html, js, php) app(C#) en robotica(mindstorm(C#) of ardiono(C++) ) en daarna mocht je je specialiseren. Dat lijkt me fijner dan gelijk een programmeertaal en kant te moeten kiezen zonder eerst te oefenen.
Hoe weet je dan wat je wilt? Het is goed om van alles een keer gedaan te hebben. Dat is zo goed aan school. Anders krijg je tunnelvisie.
Niet iedere programmeertaal is voor ieder probleem goed. Het kan meestal wel. Maar voor sommige dingen is het goed te weten wat er nog meer is.
De bedoeling van meerdere talen te zien is voor je voor te bereiden om zelf nieuwe talen gemakkelijker te leren.
Meestal kiezen ze talen uit, die andere manieren vergen om te programmeren functioneel/oo/webdev/machinetaal/etc..

Hoe meer soorten talen je kent hoe gemakkelijker een nieuwe taal leren word.
Iemand die c++ kent zal het niet zo moeilijk hebben om naar java over te stappen maar misschien wel naar een niet oo taal of een functionele taal zoals scheme waar geen lussen bestaan

Qua security doen inderdaad hogescholen niet zo goed, bij universiteiten zoals open universiteit vergen ze daar net heel veel belang aan.

[Reactie gewijzigd door sebastienbo op 27 april 2018 07:52]

Daarbij is programmeren niet perse iets wat iedereen ligt en ook niet iedereen ambieert.
Erm... Wat heb je dan te zoeken in die specifieke IT opleiding? Dat is dan ook een van de redenen waarom ik ben gestopt 20 jaar geleden met IT HBO opleiding. Ik kan programmeren, maar dat ambieer ik niet omdat ik een slechte programmeur zou zijn. Maar wat zeker belangrijk is dat je leert programmeren in een 'basistaal' welke de basis vormt voor je toekomstige programmeer kennis. Ik heb daar geleerd te programmeren in onder andere Pascal, C++ en nog een aantal obscure scripttalen die voor verschillende opleidingen veel werden gebruikt. Het bouwt allemaal op elkaar imho.

Deel van mijn probleem is dat ik zelf heb leren programmeren (Basic, Amos, PHP, etc.) voordat ik het ooit op school kreeg, dat zorgde voor een hoop slechte eigenschappen waar ik toen te eigenwijs voor was om ze af te leren. En scholen zijn niet gewend om mensen die al dergelijke kennis hebben verder te begeleiden...

Wat ik echter een heel slecht idee zou vinden is dat als je wordt opgeleid tot 'programmeur' je basis bv. PHP zou zijn. Hoe goed is dat als basis voor al die andere talen?

En wat betreft beveiliging... Tja, dat is ook niet direct een doel van een programmeer klas imho. Het merendeel van de lessen produceren geen nuttige applicaties. Beveiliging is imho een andere discipline, die hoor je imho ook pas te krijgen wanneer je de rest beheerst en dan door een specialist. En je weet wat met zegt "Those who can't do, teach." en gezien de salarissen in die branch zie ik het ook niet echt gebeuren dat je daar heel veel talenten heb zitten die en goed les kunnen geven in programmeren EN beveiliging EN overal up-to-date van zijn.

Het klinkt alsof de NOS de paar IT nerds van de opleidingen te pakken hebben genomen en die als baseline gebruiken ipv. outliers. Wat ik bij mijn eigen IT HBO opleiding zag en een jaar of 5-6 bij een andere HBO IT opleiding is dat het merendeel van de studenten bijna de hele IT opleiding IT noobs zijn en blijven, het meeste heeft zelfs nog nooit een commandline geopend voordat ze daar beginnen (we hebben het over het op een hand kunnen tellen bij 150-200 mensen).

Zelf herinner ik me dat uit een klas van 30-40 man er slechts twee ooit een PC open hadden gehad. En dan het programmeren: bij de IT HBO opleiding waren er minder mensen dan bij de HTS vliegtuigbouwkunde die al konden programmeren...

Dat zegt imho meer over de 'studenten' dan over de opleiding en de leraren, welke met de lowest common denomintator moeten werken.

En qua hardware, kan ik alleen maar beamen. Dat ik op een HBO met veel IT opleidingen een balanceer act moet uitvoeren met software uitrol omdat men nog geen jaar daarvoor een complete netwerk upgrade heeft uitgevoerd met GEEN blik op de toekomst... Je wil dan ook niet weten wat voor vaste IT beheerders daar rondlopen, compleet vastgeroest!

[Reactie gewijzigd door Cergorach op 27 april 2018 01:15]

een hoop slechte eigenschappen waar ik toen te eigenwijs voor was om ze af te leren
Wat voor eigenschappen dan bijvoorbeeld? Ben zelf beginner...
Wat voor eigenschappen dan bijvoorbeeld? Ben zelf beginner...
Ik heb mezelf aangeleerd te programmeren door code te analyseren, pas x aan en kijk wat voor effect het heeft. Dat is leuk, maar geen goede fundering voor efficiënt programmeren omdat je het structureel opbouwen van je code mist. Elke programmeer job zie ik als een puzzel ipv. een bouwproject. Ik staar me dan ook regelmatig stuk op een probleem (uren geen resultaat) terwijl als ik het een paar uur liet liggen en er met een 'frisse blik' naar keek het met 5min had opgelost.

Mijn programmeer practica gingen als volgt: Blok uur van 4 uur, 30min je stukje code bouwen, 3 uur buiten wandelen, daarna 15min reviewen en de (schoonheids)foutjes eruit halen. Docenten en mede studenten keken je dan heel raar aan, maar je leverde wel iets werkend aan. Soms waarbij de docent zich op het hoofdkrapte met, "Zo had ik het niet gedaan, maar het werkt wel.". Dat kan je niet bij een baas doen... ;-)
Dat eerste herken ik wel een beetje, ben ook veel bezig met knippen en plakken en aanpassen. Maar toch ook wel met code helemaal zelf schrijven, hang er een beetje van af wat het is. Mijn grootste probleem blijft meestal dat ik wel weet hoe ik het aan moet pakken, maar de syntax niet goed ken. En natuurlijk ook heel veel domme slordigheidsfouten. Maar die hebben soms ook ten dele met de syntax en conventies te maken.

"Zo had ik het niet gedaan, maar het werkt wel." : was je oplossing dan wel echt goed, alleen onconventioneel? Of was de conventionele oplossing dan eigen toch wel echt beter?

[Reactie gewijzigd door Cerberus_tm op 27 april 2018 18:22]

"Zo had ik het niet gedaan, maar het werkt wel." : was je oplossing dan wel echt goed, alleen onconventioneel? Of was de conventionele oplossing dan eigen toch wel echt beter?
Denk aan linksom of rechtsom. Zelfde als bij wiskunde, bij sommige problemen heb meer dan een oplossingsmethode om aan het juiste antwoord te komen, op scholen wordt vaak een methode geleerd en dus gebruikt. Je moet dan vaak je leraar uitleggen hoe en waarom je iets zo heb opgelost (in detail) en dan krijg je dergelijke reacties. ;-)
A, okee, dan hoef ik me dus minder zorgen te maken...
Grappig, ik heb altijd bedacht dat als ik zelf les zou geven dat ik zou beginnen om een oude PC open te maken en tenminste even kort de componenten te benoemen. Hoewel dat natuurlijk lastiger is nu alles steeds meer op 1 bordje wordt gesoldeerd.
TU Delft hier. Maandag iemand van TNO, vandaag iemand van de Politie (niet de plaatselijk wijkagent) en maandag weer iemad van Deloitte. Allemaal experts in hun vakgebied, vaak met PhD's en een shitload aan ervaring. Voor een van hen werken we nu een actueel probleem uit. In de bachelor. Super interessant en motiveert inderdaad behoorlijk. Werkt prima hier! :)

[Reactie gewijzigd door Balance op 26 april 2018 23:43]

Ten eerste hebben we het over een TU: Technische Universiteit en geen gemiddelde HBO opleiding, daar zit al een groot verschil tussen. Ten tweede hebben we het over de TU Delft! Waarschijnlijk de bekendste en de meest prestigieuze van de TUs...

Ik heb een aantal jaren geleden 'rondgehangen' bij jullie buren en daar was ik al super jaloers, jullie faciliteiten zijn nog vele malen beter! Ik kan alleen maar zeggen: Gefeliciteerd! Ik ben stik jaloers! ;-)
Ik denk persoonlijk dat het niet de taak is van hogescholen en universiteiten om mensen af te leveren die meteen inzetbaar zijn. Wat men op school moet leren zijn de basisvaardigheden en de vaardigheid om snel en vaak nieuwe stof te absorberen en je eigen te maken. Je zal in de ICT, nog meer dan in andere sectoren, je leven lang moeten blijven leren om te kunnen werken.

Het is ook ondoenlijk dat opleidingsinstituten om voor elke 'hype' een bijpassende opleiding aan te bieden.

[Reactie gewijzigd door ArtGod op 27 april 2018 10:16]

Ja maar het is ook wel zaak dat de studies aansluiten aan de wensen in het bedrijfsleven lijkt me. Ik weet niet of jouw woordje "hype" hier de bedoeling had om dit issue, dat de programmeer code veiliger te maken als gehypeerd te kenmerken maar dat kan je vandaag de dag toch niet echt een hype meer noemen. Aandacht voor veilige code is een must. Ik heb zelf een opleiding elektrotechniek ooit gevolgd en daar was ook oog voor veiligheid in elektrische systemen. Als bv de stroom uitviel mochten relais niet in een stand vallen waarbij de machine in een onwenselijke staat kwam te staan. Natuurlijk is het waar dat in de ICT een leven lang opleidingen volgen de normaalste zaak is maar je neemt de mensen ook niet zonder diploma's aan. Dus hoe beter de (algemene) vooropleiding hoe beter.
Veilig programmeren is zeker geen hype. Dit is toch wel een algemeen beginsel.
En dat is zeker zo bij programmeren.
Een groot deel van de beveiliging komt door het goed uitvoeren van de basisvaardigheden. Het is vrijwel altijd een bufferoverflow, of een andere bug waardoor de beveiliging stuk loopt.
Bugvrij programmeren zal wel een droom blijven, maar de opleidingen kunnen wel iets doen om de bekendste valkuilen te ontwijken, en goede algoritmes aan te leren.
Voor goed programmeren heb je geen computer nodig.
Mensen die meteen aan een specifieke programmeertaal denken, leren nooit goed programmeren.

Voor databases geldt hetzelfde.

MBO-ers kunnen niet zoveel theorie tot zich nemen en zullen zich wat eerder op iets specifieks moeten richten. Zij zullen alles minder snel afvallen als ze iets moeten 'vertalen' naar andere talen/apparatuur.
Vanaf HBO-niveau zou het niet zo erg moeten zijn dat je niet met een specifieke programmeertaal of hardware bezig gehouden wordt.
Op WO-niveau zou je de methodieken moeten leren, zodat je, onafhankelijk van programmeertalen ed., systemen ontwerpt die theoretisch gezien al goed en veilig zijn.
Dat is een goed streven maar oh zo moeilijk om goed in te richten. Het vereist namelijk nog flink wat inspanning van een docent om een goede casus op te stellen met requirements die hij wil hebben in zijn product. Als dit niet gebeurd en er is heel veel onduidelijk (of wat nog erger is dat je te horen krijgt 'tja verzin maar iets leuks') raakt niemand gemotiveerd om er mee bezig te zijn (op een aantal zeer enthousiaste uitzonderingen na).

Bij ons op de opleiding is een zelfde soort idee alleen dan met het v-model en het ontwerpen van een IT-infrastructuur voor een fictieve medische instelling. 'Om het maar te oefenen omdat het je het straks moet doen voor je afstuderen' was de reden. Het idee was goed, de implementatie echter dramatisch. Wij kregen een powerpoint met vijf sheets (inclusief voorblad en een good luck and start early afsluiter) die wij moesten gebruiken om een volledige stakeholder analyse, requirement traceability matrix, functioneel- en technisch ontwerp, testplan en testrapport op te stellen. Met andere woorden, niet te doen dus zonder complete onzin op papier te zetten. De docent had zelf eigenlijk ook geen enkel idee wat hij nou precies wilde want het was maar één opdracht voor één vak.

Ik zie hier echter wel een toekomst in, maar dan moet het volledige traject hier op aangepast worden en niet dat het maar 'een onderdeel' van 'een vak' is, anders wekt het bij studenten meer demotivatie op dan dat ze er wat van leren.
En dáarom moet je dus werken met (veel) bedrijven die real-world casusses kunnen schetsen. En dan niet met het doel het na de project periode “over te nemen en goedkoop in productie te duwen” maar om studenten voor te bereiden zodat ze in eerste instantie niet alles alleen hoeven te verzinnen maar wel de ervaring meepikken zodat ze het bij hun afstuderen wél weten (als is het enkel de theoretische oplossingsrichting).

Nadeel is dat bedrijven vaak, en dat is natuurlijk logisch, “iets terug willen zien van de investering”. Maar de ROI is de potentiële nieuwe werknemer. En níet het product.
maar is het echt zo moeilijk om een goede casus te verzinnen? Als ik de eisen zie langs komen nu van klanten: dit verschilt qua formulering niet zo gek veel als wat ik kreeg op school. Sterker nog: de opdrachten op school waren zelfs veel uitgebreider. Ik heb alleen ondertussen genoeg ervaring om op een verzoek van 1 zin te kunnen reageren met heel gerichte follow-up vragen, maar die heb ik ook alleen maar gekregen door af en toe flink op mijn bek te gaan ;)

In mijn ogen is programmeren vrij letterlijk zoiets als taal: ik ben beduidend handiger in het Nederlands dan in het Duits, al kan ik Duits prima begrijpen. De taal is echter in the end niet relevant, ik probeer te communiceren en als je me lang genoeg in Duitsland zet, dan is mijn Duits ook wel on par.

Ik heb qua programmeren/scripten, heel veel voordeel gehad van mijn opleiding in Belgie, waar ik naast het programmeren een stevig pakket wiskunde kreeg. In de huidige wereld zou je dan naast wiskunde ook security moeten krijgen en is het eigenlijke programmeren in the end een bijvak (dat is welke taal je aan het spreken bent). Waar ik zelf van merk wat de baat was bij de stevige dosis wiskunde: toen ik terug in Nederland kwam naar ook een HBO, heb ik met letterlijk geen boek open te doen, door 2 jaar wiskunde aldaar heen gerolt. De enige keer dat de docent me zag was bij het examen. Bij programmeren werd het eenzelfde verhaal.

Scholen focussen zich teveel op short term results, terwijl het om een manier van denken, van redeneren gaat en niet om de taal die je spreekt. Ook op het gebied van security is het een manier van denken waarmee je fouten gaat vinden, idem hoe je je up to date gaat houden. Dat is iets wat niet tot weinig wordt gestimuleerd op scholen en dat is iets wat weinig te maken heeft met het intellectuele niveau van een docent, maar wel met de motivatie. Als ik wederom terugverwijs naar mijn Belgische stukje opleiding, had ik het geluk dat er een paar docenten waren die ons les gaven in cutting edge technologie, dankzij hun verleden en connecties bij techbedrijven. Maar bovenal bleven ze hameren op een manier van denken die we moesten hanteren. Dat was iets wat ik in Nederland totaal miste.
En welke manier van denken is dat? (Gewoon benieuwd)
afstappen van de strakomlijnde lijstjes die van buiten moeten worden gehamerd of de grappen zoals een sql-examen met pen en papier moeten maken (ik zou wensen dat dat een grap was en nee ik was niet de enige :) ). Een specifieke programmeertaal is slechts een taal, een goede programmeur denkt op een zekere wijze. Ik krijg het niet heel veel beter verwoord dan dat, maar het is zoiets als dat bij een mobiele telefoon het gros van de mensen een mobiele telefoon ziet en een select groepje mensen geen mobiele telefoon ziet maar de vraag 'wat kan ik hier allemaal mee? Wat is de impact van dit ding? Welke problemen kan ik hiermee nog meer oplossen buiten dat ik iemand over afstand kan horen en tegen praten?'.

Persoonlijk ben ik zelfs van mening dat de reguliere manier van examens zwaar overrated zijn. Het is nu een zeer hoog 'monkey see, monkey do'-trucje, waarbij je het gros al geleerd krijgt met een jaartje werken en nieuwsgierig zijn naar dingen.
Ben het volledig met je eens. Zet een afgestudeerde maar uitgebluste student in een functie en daarnaast een gemotiveerd persoon zonder opleiding. Ik durf je te zeggen dat beide na een jaar in hun rol net zo productief zijn. Na dat jaar zal het verschil louter groter worden, als in de nieuwsgierige persoon zal meer bereiken.

De opleidingen die ik heb gedaan zijn meer een test dat je bestaande ideeën begrijpt en kunt reproduceren. Saai en degelijk.

Geen van allen spraken de interesse en nieuwsgierigheid aan, waarmee ik als student de opleiding begon. Gaandeweg wordt dat door de droge stof vervangen voor de monkey see, monkey do mentaliteit. Je hebt vervolgens je papiertje en gaat ergens aan de slag als groentje. Waar je helemaal opnieuw mag beginnen en het gevoel bekruipt dat je 4 jaar voor niks hebt geleerd.

Beter gooien we de opleidingen overboord en laten mensen na de basisschool een paar jaar aanrommelen.

Even lekker niks doen! Hangen, jezelf enorm vervelen. Uitslapen. En vervolgens gaan ontdekken wat je leuk lijkt.

Heb je iets gevonden wat je leuk lijkt? Ga naar een bedrijf en regel een stage plek, die de overheid vervolgens voor je betaald.

Maar ja, dit gaan zowel ouders niet leuk vinden (kinderen thuis) en de overheid verliest een kudde makke (stemvee) schaapjes. :)
Manier van denken is misschien niet zo helemáál juist verwoord.

Het draait meer om ervaring, je blijft continue oefenen , oefenen en oefenen.
Dan maak je vol fouten of kom je problemen tegen, daar verlies je veel tijd mee , maar het veranderd je manier van denken, waardoor je leert programmeren zonder die fouten te maken of in dezelfde programmeer problemen te vallen.

Dus ervaring == andere manier van denken

Leren Programmeren duurt dus redelijk lang in het begin, het is niet iets dat je in een boek leest en dan direct goed kan doen.

[Reactie gewijzigd door sebastienbo op 27 april 2018 08:35]

het is niet perse alleen de ervaring (al weegt dat ook zwaar mee natuurlijk, hoe vaker je iets doet, hoe groter de kans dat je er beter in gaat worden :D ).

Als ik voor mezelf spreek heb ik veel meer geleerd van allerlei vage thuisprojecten en project Euler dan van op een opleiding. Geef misschien als opdracht om een robotstofzuiger te maken en gaan met die banaan. Je zult geen perfect product afleveren, maar je leert gigantisch veel met een paar maanden eraan klooien. Je komt allerlei nieuwe dingen tegen, je leest je in, je gaat ermee aan de slag, verneukt het waarschijnlijk, past jezelf aan en komt weer een stap verder. Dan ga je ook de diepere inzichten krijgen.

Wat erbij hangt is ook hoezeer wiskunde ondergeschikt is, een klein bijvakje, terwijl het eigenlijk een grote basis is van goed programmeren en het gigantisch helpt om in plaats van een soort functie van buiten te knallen als goed zijnde, effectief te weten waarom een functie op een bepaalde manier te schrijven vreselijk goed werkt.

Je zult mensen meer voor onverwachte problemen moeten gooien, de onmogelijke zaken en dat ze meer het idee krijgen van 'ik heb dit nog nooit eerder gedaan, dus ik denk dat ik het wel kan'.
Ik heb het idee dat dat eigenlijk het verschil is tussen Belgisch en Nederlands onderwijs: Nederlands onderwijs gaat over 'kritisch denken' maar als dat niet gesteund wordt door kennis en ervaring wordt het imo een zinloos trucje (examens bestaan dan kort-door-de-bocht uit de politiek-correct mening van de leraar napapagaaien), Vlaams onderwijs gaat minder over zelf-ontdekken en dat zorgt meer voor een mentaliteit van 'trek je bek pas open als je het echt héél zeker weet' (vul je dagen met oefenen, oefenen, oefenen)
De vraag die ik me dus eigenlijk afvraag is wat willen scholen bereiken met het geven van 20 weken programmeertaal X, en dan 20 weken programmeertaal Y. (in mijn geval PHP, C#, Java). Je kunt het namelijk op heel veel manieren invullen: richt je je op design patterns? anders, oplossingsgericht, te leren denken? de grondbeginselen (bijv een vak waarbij datatypes aan bod komen, verschillende architectuur lagen, etc)? of moet het echt in depth algoritmes zijn?
Als je iemand op welk niveau dan ook programeren gaat leren dan doe je dat allemaal. En in twee talen zodat ze snappen dat de basis vh programeren in elke taal hetzelfde is maar anders word uitgedrukt, precies zoals grammatica in het Nederlands en Frans hetzelfde werkt (je hebt zelfstandig naamwoorden, werkwoorden, en in deze taal construeer je zo een zin en in de andere taal doe je dat zo).

Je begint met de simpele dingen:

programming 001: instaleren van een IDE/taal. Any taal, any IDE. Gewoon blind 'doe dit en geen vragen tot na de les'.

programming 101 is if loops, for loops, classes en methodes, keywords zoals static/void/final en pass-by-reference vs pass-by-value. De basis van 'hoe?'

201 is datatypes, memory etc .... structures, enums, ints/longs etc

301 is algoritmes en design patterns. Bebruik van bv lambda's en andere syntactische zoetigheden

401: randvoorwaarden, crazyness en security.

(501: functional en imperative programeren, neural nets, TensorFlow-achtigen etc)

En dat dus twee keer om te laten zien hoe je het iig in twee talen kan doen, want als je het een tweede keer ziet dan zie je gelijk hoe het een derde keer kan.

Maar je ontkomt gewoonweg niet aan die 4 stappen. Als je 1 van die stappen niet hebt gehad dan kan je niet programeren. En als je stap 1 t/m 3 niet hebt gehad, dan kan je het 'waarom' van stap 401 niet snappen.

Je kan de werkwijze (SCRUM/Kanban/sprints/requirements, de 'user story->UX->UI->program design' loop) daarin verwerken tijdens het lesgeven ... motiveert wel, zeker in een group en leert ook tools als Git/SVN/Jira etc alsmede het belang van voorop uitgedacht design en itteratief design (en wanneer je welke moet toepassen) ... maar de bouwblokken zijn allemaal essentieel.

En het maakt niet uit welke taal of tech je gebruikt (al heeft het natuurlijk meer zin om met Java, C#, Kotlin te beginnen en/of c/c++/cobol parallel of later te hebben als keuze vak zodat de leerlingen direct een inzetbare skill krijgen) want als je weet hoe het kan dat die basis kennis van het programeren van de ene taal naar de andere meeverhuist dan kan je elke taal leren.

Tuurlijk, je laat dit niet een Communicatie student leren (of toch wel?) ... die laat je HTML en css zien.

De grap is dit: de studies die jij hebt gevolgd leren niet echt programeren. Shit, Technische Natuurkunde en/of Informatica doet dat ook niet! Je krijggt een vakje Java ofzo ... maar je krijgt vaker Compuer Science of Computer Engineering, waar je Karnaugh gebruikt of leert wat O notatie is ... maar dat leert je NIET programeren! Het helpt uiteindelijk wel ... als je verder bent ... maar de meeste studies/vakken leren je gewoonweg niet correct programeren buiten het gebruik van een if statement :(

Nog 1 iets moet ik kwijt over het in het artikel gemelde verouderde software/hardware verhaal: wat een gezijk. MITS het onderwijs correct is! Shit, je leert meer van hoe een computer werkt door DOS te gebruiken en je IRQ's en Mem moet instellen dan met de nieuwste OS. En het vertaalt direct naar de nieuwere HW/SW. Al moet ik wel zeggen dat het gebruik van de laatste tech wel helpt om je direct inzetbaar te maken.
programming 001: instaleren van een IDE/taal. Any taal, any IDE. Gewoon blind 'doe dit en geen vragen tot na de les'.

programming 101 is if loops, for loops, classes en methodes, keywords zoals static/void/final en pass-by-reference vs pass-by-value. De basis van 'hoe?'
Je maakt hierin alleen al heel wat aannames over het soort taal.
Any taal zeg je? Ok, wat voel je voor Haskell? :D
Classes impliceert een OO taal. Static/void/final impliceert een C-achtige taal.
Bij parameter passing kun je niet in alle talen kiezen of je pbr of pbv doet. Het kan impliciet zijn aan de taal. Sommige talen doen het automatisch. Dus die keuze die je stelt geldt enkel voor bepaalde subsets van talen en dan nog hoef je er niet altijd over na te denken.
Sommige talen hebben dan weer basisconcepten die jij niet noemt maar die toch echt essentieel zijn voor die taal (en alleen voor die taal).

Als je het gaat hebben over het 'hoe' dan kom je al snel uit bij hoe een specifieke taal werkt.

Dus die stelling:"Any taal, any IDE" klopt van geen kant. Zeker als je praat over diepere architectonische implicaties van het gebruik van bepaalde features van een bepaalde implementatie van een taal.
Technisch gezien heb je gelijk (jaja, het beste soort), maar ik denk dat je uit m'n 501 zou moeten kunnen aflezen dat ik dat ook wel weet.

En laten we eerlijk zijn: we hebben het hier over een basis pakket aan 'leren programeren'. Dan ga je geen Logo of COBOL pakken, maar een imperatieve OO taal is dan gangbaar omdat deze het meest gebruikt wordt.

Desalniettemin: voor die 001 module maakt ook dat niet uit. Omdat het een 'if/else, for, while' klas is waar men enkel leert dat men een IDE kan gebruiken en dat er basis logische constructies bestaan en hoe die werken. Dus mijn statement van 'any taal/any IDE' klopt eigenlijk wel degelijk voor dat begin.
Zeker als je praat over diepere architectonische implicaties van het gebruik van bepaalde features van een bepaalde implementatie van een taal.
Uh ... dude, daar gaat het JUIST NIET om. Dit is 'leren programeren', niet 'verpak een enum/class dusdanig en op zulk een volgorde dat de memory allocatie zo in elkaar zit dat je binnen blocks blijft om thrashes te minimaliseren'.
Sommige talen hebben dan weer basisconcepten die jij niet noemt maar die toch echt essentieel zijn voor die taal (en alleen voor die taal).
Ja, want ik heb hier een compleet, geheel en uitputtend lespakket uiteengesteld dat direct gebruikt kan worden in een cursus die een niet-programmeur omtovert naar meester vakman die niet alleen alle talen en hun merkwaardigheden aanleert maar ook hoe die talen op de hardware draaien.

Alhoewel je punten niet verkeerd zijn ben je wel erg pedantisch bezig, zeg.
Ik vind dat je op school de concepten moet leren. De programmeertaal doet er in feite niet zoveel toe. Het is belangrijk dat je weet hoe een computer in elkaar steekt, hoe je een goed ontwerp maakt en op de hoogte bent van belangrijke algoritmes. Ik zie nu vandaag de dag teveel gepruts bij het schrijven van programma's: van het gebruik van domme algoritmes tot basale fouten waardoor een routine maar werkt in 95% i.p.v. 100%.

[Reactie gewijzigd door Erwin1967 op 28 april 2018 00:17]

Helemaal mee eens...
Ik ben 63 en heb 30 jaar programmeerles gegeven van Assembler, Pascal, C tot PHP en Python.
In principe zijn de concepten van de talen gelijk en het gaat om de structuren van de algoritmes. Dat kan tijdloos worden bijgebracht. Als die basis goed is dan is het aan de student dit op te pakken en op zijn of haar niveau zich verder zelf te ontwikkelen.
Vaak was mijn ervaring triest, met reacties van: wat kan ik van een ouwe lul zoals jij leren? En hexadecimaal rekenen, dat is toch voor holbewoners, of het PATH-commando dat gebruikte ze toch vroeger bij de scouting? Dat is een groot verschil met vroeger. Veel mensen die ook de rechtermuistoets gebruiken denken gelijk dat ze systeembeheerder zijn. Dat geldt ook voor programmeurs.
Een opleiding zou ook moeten leren hoe je je een taal eigen moet maken. Welke je daar dan voor pakt is niet bijzonder relevant (helpt natuurlijk wel). Bij bedrijven krijg je te maken met eigen ontwikkelde frameworks, erfenissen uit het verleden en moet je je misschien wel een nieuwe taal eigen maken die je niet op je opleiding krijgt. Dat kan je gewoon niet leren, wel hoe je die kennis op kan doen.
ICT leent zich niet zoals andere vakgebieden tot een levenslange carriere waar je dezelfde kennis kan blijven gebruiken. Dat was tientallen jaren geleden al zo en dat zal altijd zo blijven.
Dat is nergens zo.
Je moet bijv ook erg oppassen voor oude artsen of oude piloten (is nog een veel erger probleem in bijv de USA of Afrika, waar veel mensen nooit met pensioen gaan).

Het is gewoon erg moeilijk om vakliteratuur goed bij te houden naast een fulltime baan. Eigenlijk zou het normaal moeten worden om na 10-20 jaar werken weer 1-2 jaar fulltime student te worden.
talen, geschiedenis, biologie, psychologie, ... natuurlijk moet je je kennis wel up-to-date houden, maar ze wordt daar niet nutteloos/achterhaald zoals in ICT
Ik vind dit een mooi betoog, en laten we wel wezen, ik heb dan geen ICT gestudeerd, maar elke studie geeft je enkel een opstap naar het beroep, ik heb bij geen enkele studie meegemaakt dat je kant-en-klaar opgeleverd wordt voor de beroepsmarkt, daar ben je bij een bedrijf nog jaren mee bezig.
Ik zie zelf ook meer nut in focus op design patterns en zeker ook een aantal modules security, dan de huidige methode waarbij er een aantal talen de revue passeren. Als je de basis begrijpt is de taal zelf ondergeschikt en relatief snel aan te leren.

Ik weet niet hoe het inmiddels is, maar de laatste stage student die ik kreeg (~1 jaar geleden) was volledig onbekend met bijv SQL injection en schreef daarom ook code die er vatbaar voor was. En input validatie was in zijn ogen nutteloos...

Verder blijft het een lastige kwestie voor de opleiders. Over programmeren is veel te leren, er zijn veel talen, sommige verdwijnen en met de opkomst van Cloud en ML winnen anderen in populariteit (functionele talen) en ontstaan er weer nieuwe.

[Reactie gewijzigd door Vullisbak op 28 april 2018 14:07]

Ik moet even mijn 2 centjes kwijt want als een Hanze student voel ik me vrij aangevallen.

Het grootste probleem met het artikel van de NOS en iedereen die het verder verspreid is dat het uit zijn context is gehaald. Het gaat hier om het allereerste blok van de studie, dit wordt gegeven op niveau 0 waar mensen nog nooit gehoord hebben van PHP.

Daarnaast is de tweet/NOS artikel misleidend, want in blok 3 van de HBO-ICT opleiding krijg je uitgebreid security behandeld en ook dingen als SQL Injection, XSS, DoS methodieken en nog veel meer. Maar omdat desbetreffend persoon het al opgaf na het openen van de eerste sheet van het vak zal hij dit nooit mee maken.

Als iemand die de opleiding (HBO-ICT) een half jaar geleden begonnen is heb ik zelf nog nooit gelijkwaardige slechte code gezien. Dus ik vraag mij af waar dit vandaan komt. Ook werden wij tijdens ons project gewoon beoordeeld op slechte code.

Daarnaast heb ik ook nog op het Alfa-College gezeten ter Groningen, de tweede school die vermeld staat in het artikel, voor deze school heb ik echter geen goed woord over. De daadwerkelijke situatie is een factor 100 erger dan ook maar ergens gemeld.
Het grote probleem is dat ze studenten verkeerde methodes aanleren en ze dat bijna niet meer af leren.
Hoe vaak ik mensen, waaronder stagaires, niet in heb moeten peperen dat ze de userinput niet moeten vertrouwen.
Moedeloos wordt je ervan.
No offense, maar de Hanze ICT opleiding heeft ook niet echt een geweldig reputatie. Ik ken best veel mensen die de opleiding gedaan hebben, maar allemaal zijn ze er niet tevreden over. En waar ik werk (naast mijn opleiding bij Stenden) kun je ook het verschil tussen een Hanze en Stenden student duidelijk zien (als ze evenveel ervaring hebben tenminste).

En misschien is het een totaal begin opdract, maar dat maakt wat mij betreft niet uit. Voordat je zaken naar de database leert te schrijven moet je toch echt weten hoe je user-input moet afhandelen. Als je dat niet goed kunt, dan kan er zoveel foutgaan met het schrijven naar de database (verkeerde datatype, te lange invoer, onveilige invoer).
Daarnaast is de tweet/NOS artikel misleidend, want in blok 3 van de HBO-ICT opleiding krijg je uitgebreid security behandeld en ook dingen als SQL Injection, XSS, DoS methodieken en nog veel meer. Maar omdat desbetreffend persoon het al opgaf na het openen van de eerste sheet van het vak zal hij dit nooit mee maken.
Dat maakt niet echt uit. Het is fijn dat je leert over security, maar dat hoort ook gewoon geleerd te worden zodra je bezig gaat met databases. Tuurlijk hoef je dan nog niet alles te weten, maar een beetje een basis in beveiliging is toch echt wel noodzakelijk. Je moet in elk geval weten hoe je kunt zorgen dat wat je naar de database schrijft veilig is.
Als iemand die de opleiding (HBO-ICT) een half jaar geleden begonnen is heb ik zelf nog nooit gelijkwaardige slechte code gezien.
Een halfjaar is natuurlijk ook nog niet lang. Toen ik mijn opleiding net een half jaar deed had ik ook nog geen slechte zaken gezien, maar narmate ik meer leerde merkte ik toch wel dat soms de kwaliteit niet geweldig was. Ik zit nu in het vierde jaar en als ik zie wat ons in het eerste jaar geleerd werd schaam ik me toch wel een beetje.
Disclaimer:
Ik ben de student die hier gequote wordt:
In de bijna vier jaar heeft er nog nooit een docent naar de kwaliteit van mijn code gekeken
Dat meen ik echt. Er is in alle tijd dat ik op de Hanze zat niet één keer naar mijn code gekeken. Als dat nu eindelijk verandert is: Fantastisch! Oprecht!
Als iemand die de opleiding (HBO-ICT) een half jaar geleden begonnen is heb ik zelf nog nooit gelijkwaardige slechte code gezien. Dus ik vraag mij af waar dit vandaan komt. Ook werden wij tijdens ons project gewoon beoordeeld op slechte code.
Ik ken de slechte code uit de slides wel, heel herkenbaar zelfs. Wat ik een probleem vind hierbij is dat het in mijn ervaring eerst verkeerd aangeleerd wordt en dan komt er een vak achteraan die het dan moet "fixen" en over security gaat.

Wat ik helaas nergens terug zie in alle geschreven persberichten is dat ik me best wel zorgen maak over de werkdruk van de docenten. Veel zijn SWAMPED in alles wat ze moeten doen en dat laat ook totaal geen ruimte om "aan te kloten" waar je zoveel van leert en bij van blijft. Daarnaast ook dat er meer docenten aangetrokken moeten worden die iets "verser" uit het vakgebied komen en dat ook over kunnen brengen.

Ik wil je meegeven om kritisch te blijven op de Hanze, het eerste jaar was beter dan de opvolgende jaren. Maar wat ik van je lees is dat er al weer een boel verandert is, hoop dat het in de jaren hierna ook zo is!
Zou niveau 0 van auto rijden niet het "niet weten wat de pedalen doen" zijn? Het daadwerkelijk onweten in plaats van bad practices? Ik denk dat je hier wel een hele slechte vergelijking te pakken hebt.

Daarnaast vergelijk je nou echt de huidige staat van de opleiding met die van 17 jaar geleden? Das niet echt up-to-date of wel?
SQL injectie laten zien als een eerste schoolvoorbeeld van hoe het moet? Dat staat gelijk aan dronken achter het stuur zitten, het is wachten op ongelukken. Perfecte vergelijking denk ik zo.
Het balletje ging vooral aan het rollen na deze tweet:
https://twitter.com/showt...88369117634809856/photo/1

Wat je ziet is dat terwijl er wel gebruik wordt gemaakt van mysqli (de onveilige voorganger hiervan is ook deprecated) en het dus prima mogelijk is om deze actie veilig uit te voeren. Echter, je kunt mysqli niet op een slechtere manier gebruiken. Input van de gebruikers wordt zonder enige controle in een statement gevoegd. Een beetje een handige gebruiker kan het formulier gebruiken om gegevens aan te passen, massaal gegevens te verwijderen of alle gegevens uit te lezen. Het is ronduit schandalig dat op hbo-niveau deze code als voorbeeld wordt gebruikt. |:(

Edit: Het is natuurlijk fijn dat dit voorbeeld niet meer gebruikt wordt. De student in kwestie deed het anders voorkomen... Blijft staan dat het bepaald geen recent inzicht is dat dit soort code onveilig is. User input zonder controle direct in queries verwerken was al not done toen mysqli nog niet eens bestond.

En natuurlijk wordt dit uit de context getrokken, maar zelfs als onderdeel van een eerstejaarscursus introcursus kan dit echt niet.

[Reactie gewijzigd door doeternietoe op 26 april 2018 20:51]

Beetje overtrokken.

Dit zijn echt de eerste stapjes, de vorige les hebben ze waarschijnlijk net 'Hello World' gehad. Je kan nou eenmaal niet alles in een keer aanbieden: dat moet je een beetje spreiden.

En 'verouderde programmeertalen'? Een taal als Pascal is nog steeds uitstekend geschikt voor z'n taak: kids leren imperatief te programmeren. En natuurlijk levert dat code op die je nooit buiten de zandbak wil zien, maar dat is geen probleem: je zal het niet buiten de zandbak zien. Dit is waar beginners mogen aanklooien tot ze door krijgen hoe het werkt.
Het niet overtrokken.

De eerste stapjes, begin dan ook echt met de eerste stapjes. Leg uit wat user input is, hoe dat in zo'n $_POST var zit en wat sanitizen is. Hell even serieus, waarom zou je als eerste "stapjes" gaan uitleggen hoe je het niet moet doen? Begin dan gewoon met escapen en validaten voordat je gaat werken aan het persisten dan die data.

Verder fijn dat je Pascal pakt, maar denk liever aan het feit dat je waarschijnlijk nu met php5.5.9 nog aan het stoeien bent terwijl die al end of life is. Ik heb precies hetzelfde gehad in "mijn tijd" dat ik thuis zelf met 5.6 bezig was en op school moest ik mijn toetst in php5.4 maken die ook end of life was.

Werkelijk waar heb ik niets geleerd op school als het ging om programmeren. De enige reden dat ik daar zat is dat het maatschappelijk gezien benodigd is om dat papiertje te hebben. Alles is self-thought en met name via mijn stage bij fatsoenlijke bedrijven wie snel snappen hoe het moet.

Vervolgens ben ik nu al zo "oud" dat ik zelf soms stagiaires begeleid. Ik ben van mening dat het op het HBO iets beter is geworden en dat veel studenten vooral in hun eigen tijd veel leren. Je merkt over het algemeen dat de school alleen "iets" opgooit qua opdracht maar zelf de echte kennis er niet van heeft (en derhalve ook geen goede ondersteuning / feedback kan geven). Naar mijn inziens totaal niet overtrokken en een serieus probleem.
Je merkt over het algemeen dat de school alleen "iets" opgooit qua opdracht maar zelf de echte kennis er niet van heeft (en derhalve ook geen goede ondersteuning / feedback kan geven).
Dan wordt het tijd om even op te zoeken wat onderwijs nou inhoudt want dat lijk je met zo'n uitspraak totaal niet te weten. Het hele idee van welke opleiding, cursus, etc. dan ook is je net genoeg aan te leren zodat je zelfstandig verder kunt. M.a.w. je hebt hier zojuist de kerntaak van alles wat maar onder onderwijs valt beschreven. Dat papiertje waar je het over hebt is niet meer dan een stukje bewijs dat je over een zeker kennisniveau beschikt. Daarom wordt vaak de term "getuigschrift" gebruikt.

Hoe dacht je dat autorijden werkt? Ben je daar ook volleert wanneer je dat roze plastic kaartje hebt?
Sorry maar een docent moet doceren. Hoe het nu gaat is een stukje "kennisoverdracht", een opdracht met de wijze woorden: "succes ermee" om vervolgens puur functioneel te kijken of het soort van de opdracht voltooid. Er zit een limiet wat je ongeveer kan overdragen, daarna zal inderdaad een student zelfstandig moeten studeren. Ik geef je echter aan dat er geen goede ondersteuning nog feedback is richting studenten. Hoe kan iemand die al 10 jaar niets meer met het vak in het bedrijfsleven heeft gedaan een student helpen?

Sure, een docent kan een stuk basis ervaring wat altijd van toepassing blijft overdragen. Daarmee is dan ook alles weer gezegd. Menig docent zet zich ook niet in om zelf mee te gaan met de tijd, iets wat ook verdomd moeilijk is. Daarom is vaak die basis ervaring niet meer zo relevant 2-3 jaar later en sterker nog vaak foutief en outdated.

Het is niet voor niets dat bijvoorbeeld een programmeur van 20-3x jaar echt een vakidioot is, waarna dat toch vaak wegebt naar een mediocre programmeur of een andere functie; adviseur / manager / whatever. Uiteraard uitzonderingen daar gelaten ;) Om constant up-to-date te zijn met je vak is vooral in de IT zo moeilijk.

Scholen zouden er goed aan doen om veel meer gastcolleges te organiseren en daadwerkelijk het bedrijfsleven te betrekken in het proces van het onderwijs. Laat een docent de basis uitleggen, laat bedrijven specifieker feedback geven.

Wij (Redkiwi) doen bijvoorbeeld dan ook actief samenwerken met een aantal studenten; https://www.linkedin.com/...vity:6372737482785583104/
Dit is niet zomaar een eenmalige sessie maar elke vrijdag komen ze actief bij ons werken aan hun project met de ondersteuning van onze mensen (project managers, designers, UX, devops). De opdracht komt vanuit ons in samenwerking met de school. De beoordeling is vanuit ons en ze krijgen hands-on ervaring met hoe het echt er aan toe gaat.

Helaas zien we dit nog niet gebeuren met de vakrichtingen van informatica / applicatieontwikkeling of bij vele andere bedrijven.
Sorry maar een docent moet doceren. Hoe het nu gaat is een stukje "kennisoverdracht", een opdracht met de wijze woorden: "succes ermee" om vervolgens puur functioneel te kijken of het soort van de opdracht voltooid.
Een docent geeft ook gewoon les. Het punt is dat je niet in alles les kunt geven en ook niet tot in alle details. En dat is ook helemaal niet de bedoeling van onderwijs. Je leert er de basics (aka een stukje kennisoverdracht) en er wordt verder van jou als student verwacht dat je de rest doet. Een docent geeft dus gewoon les, een docent houdt niet je handje vast noch kauwt deze je alles voor. Zoals mij als student werd duidelijk gemaakt: 20 uur in de week is voor colleges, voor de overige 20 uur in de week ben je geheel zelf verantwoordelijk.
Hoe kan iemand die al 10 jaar niets meer met het vak in het bedrijfsleven heeft gedaan een student helpen?
Lesgeven moet je kunnen, of je nou in het bedrijfsleven zit of in het onderwijs. M.a.w. het feit dat iemand 10 jaar in het vak zit wil niet betekenen dat hij een student kan helpen. Een ander probleem is dat mensen die heel lang in het vak zitten kunnen vastgeroest zitten in een bepaalde werk- en denkwijze. Die zijn totaal niet flexibel meer omdat ze dingen al jaaaaren op die manier doen. Die stellen je al snel de vraag "waarom anders, het heeft al die tijd al zo gewerkt?". Mensen en verandering zijn niet zulke beste vrienden.

Het gaat er hierbij dus niet om of je in het bedrijfsleven of in het onderwijs zit, het gaat erom dat je bepaalde kennis en vaardigheden kunt overbrengen en dat deze een beetje bij de tijd blijven. Niemand weet alles, ook niet iemand uit het bedrijfsleven. Het is dus helemaal geen gegeven dat het bedrijfsleven het beter weet dan het onderwijs noch beter feedback en ondersteuning kan geven. Bedrijven handelen over het algemeen geheel en alleen uit eigenbelang. Als zij geen belang hebben bij een bepaald project dan kun je die feedback en ondersteuning vergeten. Vraag studenten maar eens hoe ze hun stage of afstuderen hebben ervaren; niet iedereen zal positief zijn over de feedback en ondersteuning die ze van het bedrijf kregen. Toen ik op het MBO zat klaagde het merendeel van mijn medescholieren over het feit dat het bedrijf ze alleen maar als goedkope arbeidskracht zag. Ze leerden er vrijwel niets. Die geluiden hoor je helaas nog steeds. Het is een beetje treurig om van stagiairs en afstudeerders te horen dat je bij het bedrijf waar je werkt en zij nu hun opdrachten doen, ze wel wat leren itt hun vorige stageplek. Geldt voor zowel MBO als HBO.
Daarom is vaak die basis ervaring niet meer zo relevant 2-3 jaar later en sterker nog vaak foutief en outdated.
Iets wat voor het bedrijfsleven even goed opgaat.
Om constant up-to-date te zijn met je vak is vooral in de IT zo moeilijk.
Dat geldt hoofdzakelijk voor de techniek, niet voor de vaardigheden e.d. die er aan ten grond liggen. Juist die zaken krijg je bij een opleiding aangeleerd. De techniek precies aanleren is weinig zinvol o.a. vanwege de snelheid waarin dat veranderd. Buiten dat is techniek aanleren hetzelfde als iemand trucjes leren. Handig maar erg ver zal het je niet brengen. Het is veel beter om vaardigheden aan te leren zodat je zelfstandig kunt werken, ook wanneer je uiteindelijke baan totaal iets anders is als waar je voor hebt gestudeerd. Het belangrijkste wat je er leert is dingen uitzoeken zodat je je trukendoos uit kunt breiden en ook actueel kunt houden. Vergeet hier vooral niet dat het onderwijs iemand moet klaarstomen voor 40+ jaren werken.
Scholen zouden er goed aan doen om veel meer gastcolleges te organiseren en daadwerkelijk het bedrijfsleven te betrekken in het proces van het onderwijs. Laat een docent de basis uitleggen, laat bedrijven specifieker feedback geven.
Dat gebeurd allemaal al. Bij stages en afstuderen zijn dit zelfs verplichtingen voor zover ik weet. Via die weg wordt er ook vaak gekeken naar de inhoud van de opleidingen (onderwijs wil zelf ook graag aansluiting bij het bedrijfsleven hebben net als andersom). Daarbij moet er wel een kanttekening worden gemaakt: dit is absoluut geen eenrichtingsverkeer. Het bedrijfsleven zelf mag ook wel eens van hun "luie" reet komen om hier wat mee te doen ipv aan de zijlijn staan te schreeuwen dat onderwijsinstellingen niet genoeg mensen voor hun afleveren. Zo gek veel mensen als een vorig directeur die ik had zijn er niet: hij gaf naast zijn gewone baan ook les aan IT studenten.

De sessie die jullie als bedrijf doen vindt je in de regio waar ik woon ook. Zowel de hogeschool als de universiteit doen dit al een aantal jaar. De diverse bedrijven in de regio doen hier ook actief aan mee. Daarnaast zijn er ook zat losse projecten waar je aan mee kunt doen en veel studenten doen dat ook. Overigens is dit laatste wel iets waar de overheid veel beter rekening mee moet houden mbt de stufi.

Het aantal colleges moet echter wel beperkt blijven. Een mens kan maar een beperkte hoeveelheid informatie aan en je kunt er ook psychische problemen mee veroorzaken omdat mensen het niet meer bij kunnen benen (lees: stress en prestatiedruk, momenteel zeer grote problemen onder studenten/jongeren).
Helaas zien we dit nog niet gebeuren met de vakrichtingen van informatica / applicatieontwikkeling of bij vele andere bedrijven.
Dan moet je toch iets beter kijken want dit is iets wat al enkele jaren bij vele bedrijven aan de gang is. Bij de een wellicht net even wat diepgaander dan de ander maar dat houd je toch.

Het bedrijf waar ik momenteel werk doet exact wat honderden bedrijven binnen en buiten Nederland doen binnen de technologie sector: aannemen van mensen op basis van vaardigheden en niet op basis van specifieke technische kennis. Zo hebben wij als IT bedrijf veel mensen die geen IT opleiding hebben gedaan maar die bijv. wel een universitaire achtergrond hebben. Ze krijgen middels trainingen een omscholing naar tester, programmeur, analyst, etc. De reden hiervoor is simpel: techniek is vrij eenvoudig aan te leren, vaardigheden, een bepaalde gestructureerde manier van werken en het snel meester maken van iets niet (en dat testen veel bedrijven middels allerlei dingen zoals assessments). Daarom zijn na je schooltijd die cursussen allemaal zo kort terwijl je opleiding minstens 4 jaar in beslag heeft genomen. En daarom leer je op school ook programmeren en niet Javascript versie zoveel. Dat programmeren leer je overigens op heel wat meer opleidingen dan alleen die voor de IT. Voor wetenschappelijk onderzoek zou je het haast al basiskennis kunnen noemen.

Ik denk dat je hier een beetje verzwijgt wat er daadwerkelijk achter je relaas zit. Mensen die van school komen bezitten niet de kennis en vaardigheden die voor het bedrijf waar je werkt nodig zijn. Iemand die al een tijd in het vak zit is lastiger daar in om te vormen dan iemand die nog volop in het hele leerproces bezig is. Puur eigenbelang dus maar of de student in kwestie daar ook mee geholpen is...

Ik denk dat het handig is om eerst even te kijken naar het volgende filmpje Randy Pausch Last Lecture: Achieving Your Childhood Dreams. Een docent die terminaal ziek is en zijn laatste college geeft. Hierbij vertelt hij over lesgeven en diverse andere zaken. Hierbij is met name het einde heel erg belangrijk. Kleine tip van de sluier: hij maakt daar duidelijk dat hij ondertussen jou heeft laten geloven dat het hele college ging over "achieving your childhood" terwijl het eigenlijk over heel iets anders ging. Dat is nou hoe lesgeven in elkaar steekt.

[Reactie gewijzigd door ppl op 27 april 2018 01:38]

de tweede stap zal security zijn, en dan wordt het voorbeeld gepakt van de eerste opdracht hoe je het niet moet doen.
Maar zo gaat het helaas niet. Security krijgt wel een steeds grotere rol in het curriculum, maar voor zover ik weet krijgt men nog steeds niet vanaf het begin aangeleerd hoe men veilig code schrijft. Pas later in de opleiding worden 2 security vakken gegeven (waar niet echt bizar veel code wordt geschreven, het was vooral theoretisch toen ik het volgde), en een minor Security als je daarvoor kiest (heb ik gedaan, zeer verrijkend). Ik ben het er wel mee eens dat de focus moet liggen op het aanleren van de basis en zorgen dat dat erin gestampt wordt, maar we hebben ook genoeg programmeeropdrachten gehad waarbij we ook met user input moesten werken, en daar kregen we niks over sanitation o.i.d.
Douweegbertje heeft best wel gelijk; de docenten hebben zelf niet echt passie voor het vak wat ze geven (op een paar na, en dat is nog minder geworden nadat ZZPers niet meer mochten lesgeven), en de bureaucratie die komt kijken bij de 5 "competenties" die je moet beheersen aan het einde van je opleiding, zorgen ervoor dat de kwaliteit van het onderwijs alleen maar blijft dalen. Ik ben zelf blij dat ik bijna klaar ben daar en wat echte werkervaring op mag gaan doen binnenkort.

Source: ben student bij een van de informaticaopleidingen bij de Hogeschool Rotterdam

[Reactie gewijzigd door patesatemate op 26 april 2018 21:48]

Maar zo gaat het helaas niet. Security krijgt wel een steeds grotere rol in het curriculum, maar voor zover ik weet krijgt men nog steeds niet vanaf het begin aangeleerd hoe men veilig code schrijft.
Klopt, ik ben naast m'n werk bezig met m'n bachelor en kreeg Java als vak. Het complete vak leerde je vooral libraries te gebruiken ipv de taal Java te begrijpen. Bijv swing... Echt zonde geweest van mijn tijd
Ik ben zelf blij dat ik bijna klaar ben daar en wat echte werkervaring op mag gaan doen binnenkort.

Source: ben student bij een van de informaticaopleidingen bij de Hogeschool Rotterdam
Zo dacht ik er ook over toen ik bijna klaar was met de opleiding. Zo van: nu gaat het echt beginnen, nu ga ik samenwerken met volwassenen met de slimsten van de slimsten, de beste tools, nu begin ik pas echt te leren. Oh jeej, als ik alles dat ik op school geleerd heb maar voldoende is!

10 jaar later: het niveau op het HBO was vergeleken met het bedrijfsleven eigenlijk nog best wel hoog en volwassenen zijn eigenlijk ook maar gewoon kinderen in een grote mensen lichaam 8)7 :o :Y) Wat dat betreft was het project gebaseerd leren op het HBO eigenlijk geniaal: alle kinderachtige onzin waarmee mensen in project groepen elkaars efficiëntie omlaag halen zie je in het bedrijfsleven allemaal terug :)

Ik ben al aardig wat slimme gemotiveerde jonge startende programmeurs tegengekomen die flink teleurgesteld waren toen ze met hun eerste baantje begonnen. Inclusief ikzelf toen ik aan het begin van mijn eerste baantje word documenten mocht helpen typen/checken (die niets met techniek te maken hadden), uitprinten en letterlijk met de hand in mapjes stoppen voor een paar dagen.

Een ander voorbeeld van een startende jongen die er na 2 weken klaar mee was: software en hardware testen met een kapot verschrikkelijk stuk test-software dat gebruikt moest worden, omdat het nou eenmaal heel duur was toen ze het uitbesteedden. En vervolgens de kapotte brakke rapporten die de test software uit poept even met de hand repareren met MS Word 2007 op een workstation van 7 jaar oud waarop bijna het hele internet geblokkeerd is. |:( Het hele bedrijf had een enorm trage internet verbinding die bovendien door een VPN via Amerika liep }> Hoezo ouderwetse software en hardware op het HBO?! Besef je wel dat in een groot deel van het bedrijfsleven "legacy" programmatuur de norm is; dat is nou eenmaal wat er al is. Een bedrijf update pas iets, wanneer een probleem overduidelijk geld kost. Genoeg verhalen van servers die ergens in een stoffige hoek 25 jaar staan te pruttelen en "iets" heel belangrijks doen, waarvan niemand nog weet wat of waarom, source code kwijt en/of volledig niet gedocumenteerd, etc. Die gaat een keer stuk ;)

En als je pech hebt: denk maar niet dat jij als nieuweling met frisse kennis serieus genomen wordt met je geniale ideeën om enorm domme processen efficiënter te maken.

TLDR; het niveau van het HBO sluit misschien wel perfect aan op een groot deel van het bedrijfsleven (lees: het gemiddelde tech bedrijf vanaf 50 werknemers dat > 10 jaar bestaat). Als het al niet te hoog en te modern is. De inefficiëntie op werkvloer van grote bedrijven is gigantisch. Veel (grote) technologie bedrijven zijn enorm ouderwets.

En nog een gratis tip: bedenkt dus goed wat je met je tijd doet ;) Neem lekker de tijd bij het zoeken naar dat eerste baantje en negeer alles wat recruiters zeggen. Negeer ze liefst volledig en schrijf lekker zelf bedrijven aan. Wil je uitdaging op de inhoud: ga dan voor een startup werken of begin er zelf 1. Grote bedrijven zullen alle creativiteit en motivatie die je in je hebt uit je slurpen.

Succes :D

[Reactie gewijzigd door GeoBeo op 27 april 2018 05:17]

Security behoort geen 'tweede stap' te zijn, maar gewoon iets dat vanaf het begin af aan overwogen wordt. Het is dan ook een zeer slecht idee om te beginnen met een onveilig voorbeeld, dat is namelijk wat bij leerlingen blijft hangen.

(Overigens was wat je hier omschrijft dus uberhaupt geen onderdeel van de slidedeck in kwestie.)
De eerste stapjes, begin dan ook echt met de eerste stapjes. Leg uit wat user input is, hoe dat in zo'n $_POST var zit en wat sanitizen is. Hell even serieus, waarom zou je als eerste "stapjes" gaan uitleggen hoe je het niet moet doen? Begin dan gewoon met escapen en validaten voordat je gaat werken aan het persisten dan die data.
Als dit een vak over databases is, waarbij deze code alleen wordt gebruikt als voorbeeld (iets echt gebruiken is een stuk leerzamer dan alleen theorie uitgelegd krijgen!), dan vind ik het op zich nog wel te verdedigen. We zien hier alleen een foto van een slide; weten wij veel wat de docent er bij verteld heeft. Misschien heeft ie wel gewoon mondeling toegelicht: "dit is niet hoe je het uiteindelijk in het echt doet, maar de lesstof over input-validatie zit in $ander_vak dus dat slaan we nu even over om ons te focussen op hoe SQL werkt". Of misschien gebruikt ie het volgende college-uur wel om uit te leggen wat SQL-injectie is en hoe je dat moet voorkomen. Best lastig om dat te vertellen als je niet eerst behandelt hoe SQL werkt...
En op de cursus elektroinstallatie steken ze eerst met tangetje twee stukken draad in een stopcontact, houden er dan een gloeilamp tegenaan, en als er dan licht iot komt zeggen ze: "kijk eens, dit werkt, maar dat is natuurlijk niet de bedoeling" en besteden dan 2 weken aan hoe het wel moet?
En op de cursus elektroinstallatie steken ze eerst met tangetje twee stukken draad in een stopcontact, houden er dan een gloeilamp tegenaan, en als er dan licht iot komt zeggen ze: "kijk eens, dit werkt, maar dat is natuurlijk niet de bedoeling" en besteden dan 2 weken aan hoe het wel moet?
Je kunt alles overdrijven. Mijn punt is dat het niet werkt om te zeggen "we gaan nu uitleggen wat een SQL delete statement is; hier zijn honderd regels code, waarvan er maar eentje echt belangrijk is, maar de rest hoort er nou eenmaal bij om het goed te doen".

Ter vergelijking, er zijn hier een heleboel mensen die roepen "security hoort erbij, dat moet je niet pas later toevoegen", maar ik kan zo snel niemand vinden die opmerkt "goed ontwerp van code hoort erbij, dat moet je niet pas later toevoegen"; waar is het commentaar bij deze code, hoezo staat alles in één monolithisch blok, doen we niet aan indentering?

De hoeveelheid kennis die je mensen in één keer kunt bijbrengen is nou eenmaal beperkt. Als de docent op deze slide een regel had staan "voorbeeld van productie-code", dan zou ik ook verontwaardigd zijn. Maar zolang daar geen enkele indicatie van is, nee sorry, dan vind ik de aanpak die jij voorstelt (samen met vele anderen in deze thread) een nog slechter idee dan wat hier gebeurt.
Om te kunnen rennen, moet je eerst kunnen lopen.
Bij het leren lopen, hoef je de sportbroek en schoenen nog niet aan te doen..

Een database vak kan ook prima in isolatie worden gegeven. Ik snap dat het vaak leuk wordt gevonden om alles "in context" te geven; maar als dat tot dit soort code leidt is betrekkelijk betreurenswaardig. Zodra studenten dan hebben gezien hoe je database aanspreekt, zou je ze daarna een bruggetje kunnen maken naar het toepassen van DB's in websites, eventueel met als tussenstap wat een ORM of degelijke DB driver wel allemaal niet voor je kan doen.

Maar ben het met je eens; het verhaal er bij ontbreekt. Wat was de interactie? Misschien vroeg de docent juist wel, "wat is gevaarlijk aan dit stukje code?", met als volgende slide een dik vet rood kruis erdoor.
En natuurlijk levert dat code op die je nooit buiten de zandbak wil zien, maar dat is geen probleem: je zal het niet buiten de zandbak zien

Exact!

Afgelopen week op een avond nog eens een stukje code dat ik 20-+ jaar geleden geschreven had voor een inmiddels obscuur en ouderwets systeem, geport naar een modern OS. Ik schaamde me postuum kapot dat ik zulke bagger code geschreven had _/-\o_. En dit was dan ook nog eens toen als open source gedeeld buiten de zandbak én overgenomen door anderen ... 8-)

Na twee uur aanklooien ben ik de zaak gestopt, en het in één uur functioneel herschreven. Gewoon simpelweg omdat ik na 20 jaar een beter programeur ben dan toen. Ik weet echter wel, dat ik op dat moment erg trots was op die code :+

Dus een student die klaagt dat hij verouderde concepten leert, snapt het misschien zelf niet. Ook al zul je wellicht .Net gebriken bij je eerste werkgever, dat wil niet zeggen dat je niet ook C++ en C moet leren. Les is meer dan praktische directe vaardigheden leren. Juist ook omdat wat vandaag actueel is, dat morgen ook niet meer is. Zo ook met andere ICT zaken. Een goede ICT'er is meer dan eentje die direct praktische zaken kan toepassen.

Wellicht dat het dus deels waar is van de kritiek, maar ik heb ook het idee dat de studenten zelf ook nog moeten leren bepaalde lesstof op waarde te schatten. Het gaat vaak niet om de concrete "trucjes", maar het idee erachter. Het waarom je iets doet en hoe je bepaalde problemen aanpakt.
Hier een student aan die opleiding zelf. Dit is natuurlijk foute code dat zou iedereen moeten leren. Het is echter niet zo dat dit stuk code in de huidige lesstof zit, het is al een tijd geleden verwijderd.
Het klopt dat er niet veel docenten naar code kijken. Voornamelijk te wijten aan het aantal leerlingen in verhouding tot docenten.
Je leert in de opleiding juist veel mtb veiligheid. Ik kan mij geen docent voorstellen bij ons die dit goed zou keuren
Hier een student aan die opleiding zelf. Dit is natuurlijk foute code dat zou iedereen moeten leren. Het is echter niet zo dat dit stuk code in de huidige lesstof zit, het is al een tijd geleden verwijderd.
Als ik deze quote van GOT (anno mei 2014) mag geloven werd het toen nog wel zo onderwezen:
@Hertog6 schreef op maandag 12 mei 2014 @ 08:51:
Brrr.. Eerste college voor vandaag is een "Opfris cursus PHP & MySQL" .. en volgens mij gaan de mysql functies (dus niet mysqli) zometeen ook wel langskomen.. *bibbert bij de gedachte*
https://gathering.tweaker...message/42217727#42217727

Persoon bevestigde in een andere post dat het inderdaad om het Hanze gaat:
https://gathering.tweaker...message/42217765#42217765

[Reactie gewijzigd door Jb! op 26 april 2018 20:51]

Als er zo weinig tijd voor review is, dan begrijp ik absoluut niet dat voor dergelijke (eenvoudige) opdrachtjes geen automatische testen ontwikkeld zijn, die door de studenten zelf gebruikt kunnen worden (geeft gelijk de noodzaak van goed testen aan, evt. pas nadat studenten zelf aan hebben gegeven dat het klaar is, dan kan je ook meten hoe goed studenten zelf hebben getest) met bijbehorende feedback waar nog problemen zitten. Daar heb je geen docent voor nodig. Zelfs automatische code review is mogelijk, maar dat mogen de docenten ook zelf doen, omdat ze dan meer tijd overhouden.
Ik zit zelf op het Windesheim in Zwolle. De eerste 3 lessen werd dit gebruikt om te laten zien wat er gebeurd en dan meteen ook waarom dit onveilig is. Ook beginnen bijna elke les wel met updates van " Wat is er nieuw sinds de slides zijn gemaakt" Kortom ik herken dit niet echt. En als voorbeeld om te laten zien hoe het werkt en daarna een stapje verder gaan om het moeilijker te maken vind ik totaal niet raar. De meesten hebben nog nooit geprogrammeerd om ze dan al te laten escapen enz is simpelweg een brug te ver. Verder kreeg ik later ook gewoon les in input validate enz.
Niet alleen de query is zo lek als een mandje, zelfs het voorbeeld formulier is bizar slecht
Het gaat ook niet om de veiligheid van de code het gaat om het principe.

De code is prima voor een sheet om dingen mee uit te leggen nergens staat dat je dit zo in productie moet gebruiken.
Ok, laten we aannemen dat de docent hier enkel een principe wil laten zien. Had dat echt niet gekund door fatsoenlijk gebruik te maken van prepared statements?

Ik begrijp het niet. Stel, je wilt laten zien dat je met php strings kunt aanpassen die dan als statements naar mysql worden gestuurd. Dat had dat in twee regels gekund, zonder complete pagina met formulier.
Ok, laten we aannemen dat de docent hier enkel een principe wil laten zien. Had dat echt niet gekund door fatsoenlijk gebruik te maken van prepared statements?
Is dat nodig dan? In zowel het onderwijs als politiek, het bedrijfsleven en elders worden er voorbeelden gebruikt. Voorbeelden demonstreren een bepaald principe en zijn nooit volledig. Dat behoort men te weten.
Ik begrijp het niet. Stel, je wilt laten zien dat je met php strings kunt aanpassen die dan als statements naar mysql worden gestuurd. Dat had dat in twee regels gekund, zonder complete pagina met formulier.
Het hele probleem is dat men niet begrijpt dat lesgeven een vak apart is en het daar nooit en te nimmer gaat om specifieke stukken hardware of software. Al helemaal in het hoger onderwijs; daar gaat het er vooral om dat je leert na te denken over wat je aan het doen bent. Het gaat om competenties en dat zul je wanneer je later gaat solliciteren ook vaker terug zien. Het gaat niet om beheersing van een bepaalde taal en ook niet hoe goed je daar in was (lees: je behaalde cijfer). Waar het om gaat is dat je het principe achter programmeren enigszins meester bent. Daar horen begrippen als kwaliteit en veiligheid bij. Of je dit nou op moderne hardware/software leert of op verouderde boeit niet.

Als je met een simpel voorbeeld een bepaald principe wilt aantonen dan hoeft dat helemaal niet volledig en tot in detail juist te zijn. Dan is het namelijk geen voorbeeld meer maar een uitwerking.

Waar ik nu werk geven de programmeurs ook regelmatig een presentatie. Daar zul je ook nooit volledig juist uitgewerkte code vinden omdat het in die presentaties helemaal niet van toepassing is. De presentaties zijn bedoeld om mensen uit te leggen waar ze zoal mee bezig zijn, wat iets is en vooral om mensen enthousiast te maken (lees: aan te zetten om zelf verder te neuzen en er mee te spelen). Daarbij komt dat hier ook een limiet in tijd aan verbonden zit, net zoals dat bij colleges het geval is. In die tijdsperiode kun je simpelweg niet alles behandelen.

Buiten dat is het ook HBO-mentaliteit om na te denken over wat een docent je voorschotelt en met de docent daar de discussie over aan te gaan. Ik zie in deze discussie bar weinig van die HBO-mentaliteit terug en dat is iets wat ik eigenlijk nog veel schokkender vind. De discussie hoort niet op Twitter thuis maar in de les.

[Reactie gewijzigd door ppl op 26 april 2018 21:40]

Eens... Ik schrijf ook wel eens een stukje code om een programmeur iets duidelijk te maken maar gebruik dat aub niet in productie

Maar, hoever ik het ook met je eens bent vrees ik dat de realiteit anders is. Ik volg momenteel het vak architectuur en je merkt duidelijk dat deze man dit vak niet heeft beoefend. Gelukkig heb ik nog een beetje inhoudelijke kennis om onderscheid te maken tussen feiten en fabels maar veel van m'n medestudenten niet. Het is gewoon een gevaar om de lesinhoud afhankelijk te maken van 1 of meerdere personen die het vak niet bijhouden.
Tsja, dat soort mensen kom je in het bedrijfsleven ook tegen. Lesgeven is net als heel veel andere zaken een vak maar niet iedereen is daar even goed in. Daar wordt altijd wel iemand de dupe van jammer genoeg.
Als je met een simpel voorbeeld een bepaald principe wilt aantonen dan hoeft dat helemaal niet volledig en tot in detail juist te zijn. Dan is het namelijk geen voorbeeld meer maar een uitwerking.
Exact. Dan ga je dus niet een volledig, functionerend formulier maken, maar laat je met zo min mogelijk regels zien wat je wilt laten zien.
Ik vind dit vooral lezen als een excuus voor suboptimaal werk. De code is namelijk geen goed voorbeeld. Het is geen zinnige versimpeling dat het terugbrengt tot de essentie - het is gewoon slecht.

Het is dan natuurlijk wel makkelijk om de verantwoordelijkheid neer te leggen bij de studenten (hoewel je je dan wel af kunt vragen waar ze hun collegegeld voor betalen, want dit soort flutvoorbeelden zijn op internet ook wel te volgen) maar we mogen toch wel wat meer verwachten van opleidingen?

Op dit moment staat injection nog altijd als vulnerability nummer 1 in de OWASP tot 10. Het is nog steeds het grootste veiligheidslek. Bij beroepsopleidingen is het idee dat je mensen opleidt om hun vak goed te doen. En het is een zinloze verspilling als je dat doet met slechte voorbeelden, een slecht programma, en het excuus 'dat moeten studenten dan zelf uitvinden.'

En dan elke keer weer klagen over het belabberde niveau van onze IT-infrastructuur of de kennis van afgestudeerden. Dat begint dus bij de opleiding.
Ik zie ook geen problemen. Het kan een prima opzetje zijn voor later. Ik kan me goed voorstellen dat op een later moment deze code gebruikt wordt om bijvoorbeeld beveiliging in te bouwen. Je begrijpt dat de simpele versie volledig en kan zo stap voor stap verder uitbouwen. Als alle beveiliging al in de code zou zitten zou dit overweldigend en afleidend zijn voor wat precies besproken wordt of aan de orde is.

Zie het als kleuters op school die het alfabet leren. Die leren niet direct woordjes en zelfs geen medeklinkers. Die beginnen niet met aaa, bee, cee maar met à, bú, etc..

Over de mentaliteit, ook op de werkvloer is de mentaliteit van de junioren bedroevend. Ze denken alles te weten, nemen weinig serieus en luisteren vooral niet naar senioren omdat ze alles toch al weten. En als het management dit niet goed inziet komen ze er nog mee weg ook. Als voorbeeld, een senior zal zo weinig mogelijk repeterende code schrijven en met generieke oplossingen komen die op langer termijn beter onderhoudbaar en testbaar blijven. Maar dit kost soms meer tijd. Een junior kopieert zijn code en kan sneller klaar zijn. Echter komen de problemen pas veel later als één gedeelte aangepast wordt na een bug en het gekopieerde gedeelte niet. De manager of teamleider kan denken dat die junior heel snel werkt en heel goed is omdat hij veel sneller klaar is.

Ik heb de meest bizarre code gezien in mijn carrière. En vaak is die code of gekopieerd van het net terwijl diegene niet wist wat er precies gebeurde, maar het werkte toevallig, of geschreven door een schoolverlater die denkt de hele wereld aan te kunnen en die vooral niet luistert naar wat die dinosaurussen te vertellen hebben. En als je ze iets probeert bij te brengen krijg je dus dit soort reacties, ja knikken terwijl je het vertelt en vraagt of ze het begrijpen en vervolgens op twitter gooien hoe belachelijk het allemaal wel niet is.
Alsof er uberhaupt nog statements worden geschreven. Het gaat om het principe niet om de implementatie. Het is een intro tot programmeren niet direct tot DAL security ed. De meeste zien voor het eerst code.
Dit is toch geen prima sheet? Het meeste wat hier gedaan wordt zijn gewoon slechte praktijken. Lijkt me dat je goede praktijken als de basis wil aanleren. Het is gewoon de makkelijkste manier om iets van resultaat te krijgen met de gevolgen dat bedrijven alle slechte gewoonten mogen gaan afleren..
Wat wil je dan 5 jaar lang leren hoe iets werkt?

We kunnen wel alles lekker abstract wegwerken maar daarmee verlaten we de basis en leren we frameworks.

Overigens als je statements schrijft ben je nog verkeerd bezig.
"Overigens als je statements schrijft ben je nog verkeerd bezig."

Kan je me uitleggen waarom? Puur uit interesse om mijn eigen code te verbeteren

(Excuus voor offtopic)

[Reactie gewijzigd door smiba op 26 april 2018 20:54]

Hij doelt waarschijnlijk dat je steeds objecten maakt voor je data, die je dan mapt naar de database, met een ORM, object relation mapper.
Dat is heel mooi, maar het is zonde als je geen SQL meer schrijft, zo'n mooie taal. Blijf dus maar je SQL schrijven in je models.
Nee. Niet op deze manier.
Kopieëren en plakken is wat er vaak gebeurd. En al helemaal wanneer er een “werkende” functie wordt gedemonstreerd.

Dit is gewoon fout, heel fout...
Dit is goed, heel goed. Vertel mij dan wat ze wel moeten leren? SQL? Statements? ORM? Abstracte implementaties? Frameworks? Wat moeten ze leren?

Het is hbo niveau daar wordt geacht dat je niet alles één op één kopieert. En er wordt in de opleiding die ik genoten heb echt op veiligheid gecontroleerd. Dit onderdeel gaat daar niet over.
De vraag is wel of er geen ander voorbeeld was te noemen hoe ze het niet onveilig hoefde te maken. Ze zouden het voor lol naar een cookie kunnen schrijven of ze zouden wel een validate function kunnen maken maar daar verder niet meer in detail over gaan tot de volgende les.
Wat maakt het nou uit of het HBO niveau is of niet? Het is niet alsof het wel gedoogd wordt voor het MBO niveau hoor. :P
Wat maakt het nou uit of het HBO niveau is of niet? Het is niet alsof het wel gedoogd wordt voor het MBO niveau hoor. :P
Probeer eens WO niveau.

Ik heb nog college gehad van een professor op het gebied van database technologie die niet wist wat Object Relational Mapping (ORM) software was. En van een andere professor die bij zijn eerste lezing "XML is de opvolger van HTML" als binnenkomer hanteerde. Dat was nota-bene hetzelfde vak en die vent was er heilig van overtuigd dat XML met een gedrocht als XQuery door het leven kon als schaalbare database-technologie. Koekoek! 8)7
Let op, delen van deze bron blijken niet te kloppen.

Misschien verwarde die professor het met XHTML? Dat is wel ook een opvolger van HTML:
XHTML (eXtensible HyperText Markup Language) is a reformulation of HTML in XML syntax.
Bron: https://webkit.org/blog/68/understanding-html-xml-and-xhtml/.

Verder is er een relatie tussen HTML en XML (tweede volgde uit het eerste):
XML (eXtensible Markup Language) grew out of a desire to be able to use more than just the fixed vocabulary of HTML on the web.
Zelfde bron: https://webkit.org/blog/68/understanding-html-xml-and-xhtml/. Technisch gezien volgens mij dus niet fout dat XML een opvolger is van HTML.

Let op, delen van deze bron blijken niet te kloppen.

[Reactie gewijzigd door Jb! op 26 april 2018 22:19]

Het artikel wat je aanhaalt, haalt van alles en nog wat door elkaar.

XML is een meta-markup taal en een voortzetting van de eerdere meta-markup taal SGML. SGML is origineel afkomstig uit onderzoek bij IBM in de jaren 70, maar zou pas veel later, halverwege de jaren 80 tot ISO standaard verheven worden.

Het werd vooral ingezet in de VS voor het opslaan van grote documenten met veel gestructureerde technische informatie. (Militiar; luchtvaart; etc.) SGML werd gaandeweg echter steeds meer gezien als veel te complex en daarom werd er doorontwikkeld aan een strakker gedefinieerde taal, wat een paar jaar voor de eeuwwisseling ('98?) als XML 1.0 gecementeerd zou worden.

HTML was origineel een implementatie in SGML, een poging om een compacte syntax te bieden voor gebruik van het uitwisselen van documenten via internet en deze op destijds gelimiteerde hardware real-time te renderen in een browser.

Omdat het een SGML afgeleide was, erfde het ook alle parsing quirks en uitzonderingen van SGML. Dat is dan ook één van de grootste redenen dat HTML in browsers heel lang een teringbende was: geen enkele implementator kon er echt wijs uit hoe zaken moesten werken.

XHTML is een idee waaraan na de publicatie van XML gewerkt werd en waarvan rond de eeuwwisseling een eerste complete versie was. Een herdefinitie van HTML als XML grammatica ipv SGML grammatica. XHTML is inderdaad ontstaan uit het idee de uitbreidbaarheid van XML in te zetten om de semantiek van HTML uitbreidbaar te maken.

Maar XML zelf is dus absoluut niet geevolueerd uit HTML en heeft niets met de ontwikkeling van HTML te maken. Dat is een compleet ander spoor.

[Reactie gewijzigd door R4gnax op 26 april 2018 22:29]

XML is een meta-markup taal en een voortzetting van de eerdere meta-markup taal SGML, origineel afkomstig uit onderzoek bij IBM in de jaren 70, maar zou pas veel later, halverwege de jaren 80 tot ISO standaard verheven worden.
Heb nog wat gezocht, de bron die ik eerder aanhaalde klopt inderdaad niet helemaal. Wat jij aanhaalt over de jaren 70 en 80 kan ik echter ook niet vinden. Volgens Wikipedia is XML gepubliceerd in 1996. Deels gebaseerd op deze blogpost uit 2006:
It's hard to believe that in a couple of weeks we will celebrate the 10 year aniversary of the first public unveiling of the XML specification at the SGML 1996 conference.
http://drmacros-xml-rants...-ten-year-aniversary.html
Die bijzin slaat op SGML. SGML is afkomstig uit de jaren 70 en werd midden jaren 80 tot ISO standaard verheven. Maar goed; dat was inderdaad niet helemaal duidelijk. Heb ik even aangepast. Bedankt. :)

XML 1.0 werd trouwens gestandardiseerd in februari 1998. In '96 was de publicatie van de eerste drafts. (Even opgezocht. ;) )

[Reactie gewijzigd door R4gnax op 26 april 2018 22:30]

Ergens ook wel begrijpelijk dat die professor het dan niet allemaal precies wist. Zeker als je er niet dagelijks mee bezig bent (en dit zal voor zo iemand misschien eens een keer per jaar in een college voorkomen?) dan zijn dit dingen die je snel door elkaar haalt.

Als het dan verkeerd in de slides of notities staat dan ga je het pas aanpassen nadat iemand er iets van zegt. ;)
Ergens ook wel begrijpelijk dat die professor het dan niet allemaal precies wist. Zeker als je er niet dagelijks mee bezig bent
Uhm... dit was een gastdocent tijdens datzelfde college betr. database technologie -- Hij verzorgde de andere helft van de lezingen; instructies; eindopdrachten en tentaminering. -- die juist een expert was op XML en aangesloten technologie.

Tja...

[Reactie gewijzigd door R4gnax op 26 april 2018 22:41]

Ergens ook wel begrijpelijk dat die professor het dan niet allemaal precies wist.
Vind ik niet. Zijn taak (zijn enige taak) is het uitgeven van kennis. En nu heeftie klinkklare onzin lopen uitkramen. Dat mag je niet accepteren, zeker op academisch nivo.
Bij het mbo op rijnijssel moet ik ook prepare statements gebruiken. Ook al is er maar een gastcollege echt over social engeneering, sql injection etc ging.
Ja, een SQL injection lek, dat ziet iedere ontwikkelaar die enig verstand heeft van programmeren.

[Reactie gewijzigd door ArtGod op 26 april 2018 21:45]

maar magic_quotes_gpc staat aan :+
Ik vind dat dit prima kan. De student moet ook kritisch zijn, docenten zijn niet onfeilbaar. Ik zou dit er zelfs expres instoppen, gewoon om te zien of iemand er iets over opmerkt. En zoniet, dan natuurlijk aankaarten.

Die kritische houding gaat namelijk minstens zo belangrijk zijn als “veilig/efficiënt/goed programmeren”.

Klakkeloos kopiëren “omdat dit werkt”; dat is pas écht slecht.
Roep dit eigenlijk al jaren, ik heb eens via een werkgever een Java cursus gedaan bij vijfhart, cursus materiaal is ronduit bedroevend. Priemgetallen afdrukken e.d., common'. Had ik een vraag over een tweedimensionale array, moest de cursusleider dat gaan navragen bij zijn collega.

Bij een andere werkgever kwam een MBO-er stage lopen om websites te bouwen. De jongen wist niet eens wat Javascript was, kon niet eens programmeren. De stagebegeleider, had ik ook niet echt een hoge pet van op, vond het meer een type flierefluiter. Ze gebruiken cursusmateriaal van tig jaar geleden.

Nog een voorbeeld van EduVision waarbij men geleerd wordt hoe een webshop te bouwen. De codevoorbeelden waren ala PHP 4, erg gedateerd, vond het schokkend om te zien. De begeleiding was zeer slecht, véél te weinig tijd en dan kost zo'n opleiding ook nog eens over de 1000 euro.

Het is dus niet alleen gedateerd qua beveiliging, de technieken in het geheel zijn gedateerd. In het framework landschap is het helemaal vreselijk omdat niet de taal wordt geleerd maar het framework. Er ontstaat dan een probleem als werkgever overstapt op een ander framework, dat nog wel eens gebeurd. Het komt regelmatig voor dat een framework nieuwe problemen introduceert die er eerst niet waren.

Daarnaast moeten tool-ontwikkelaars eens stoppen met het alsmaar vernieuwen van hetzelfde, ik heb het dan niet over verbetering maar hetzelfde doen op een andere manier wat uiteindelijk op hetzelfde neerkomt. De talen zijn te tellen maar de frameworks niet, gigantisch.

Volgens mij ligt het probleem aan twee kanten, de docent die geen tijd krijgt/neemt zichzelf en lesmateriaal te updaten en anderzijds de tool-ontwikkelaars die steeds weer met 'nieuwe' dingen (dat wat niet echt vernieuwend is maar uitsluitend anders is) komen waarmee ze vertroebeling veroorzaken.

[Reactie gewijzigd door codebeat op 26 april 2018 22:15]

Een stage is niet om de nieuwste technieken te leren, maar om werkervaring op te doen.

De nieuwste technieken leer je toch door zelfstudie of 'on the job', niet in de klas. Doordat lesmateriaal altijd achter loopt moet je het in de praktijk leren.
Een stage is inderdaad om werkervaring op te doen maar niet om iemand te leren programmeren, dat in de verwachting ligt minimaal behandeld dient te zijn op de opleiding. Websites zijn sinds sinds de vorige eeuw niet meer statisch, javascript is een essentieel onderdeel om te beheersen dus mag je dat op z'n minst wel verwachten.
Een stage is niet om de nieuwste technieken te leren, maar om werkervaring op te doen.
De nieuwste technieken leer je toch door zelfstudie of 'on the job',
Een stage is voor werkervaring en niet de nieuwste techniek te leren; maar de nieuwste techniek leer je 'on the job'.

Ben ik nou de enige die ziet dat die twee statements lichtelijk in conflict zijn, of wat?
mja. Er moeten wel duidelijk twee punten onderscheiden worden.
dat je aan input controle moet doen e.d. lijkt me inderdaad nogal noodzakelijk.

Het punt van de "verouderde" hardware is quasi non existant. Ja die switches zijn 5 jaar oud, neen het maakt geen dr*l uit. Buiten dan nog het feit dat dat reteduur is. Als je dan toch het laatste nieuwste wilt hebben dan emuleer je het maar. De rest leer je wel op de werkvloer als je bent afgestudeerd. Alsof de studenten die voor garagist studeren een tesla voor hun ogen krijgen.... En dat kunnen best perfecte garagisten worden.

Verder snap ik ook helemaal niet de verouderde talen... bv Java , ja er zijn nieuwere varianten. Maar als je Java op een degelijke manier hebt geleerd, dan zal de stap niet te groot zijn. Verder heb ik liever een docent die zijn taal door en door kent dan eentje die misschien wel de hiptste taal kent, maar fouten gewoon letterlijk doorgeeft.

En, laten we wel wezen, moesten wat meer programmeers de echt oude talen geleerd hebben, zouden ze misschien wat meer moeite doen om de hardware op een correcte manier aan te spreken ipv het ene "geheugenlek" na het andere te schrijven.

Verder is dat niet alleen aan de scholen zo. Powershell workshop gevolgt bij MS, daar zitten ze ook nog op 4. de documentatie van 5 is nog niet af, en Powershell Core staat al in de steigers. Maar als je de basis wat beet hebt dan kom je er zo ook wel. Doet niets af van de kwaliteit die je gaat afleveren in de toekomst.

[Reactie gewijzigd door white modder op 26 april 2018 20:19]

Verder snap ik ook helemaal niet de verouderde talen... bv Java , ja er zijn nieuwere varianten. Maar als je Java op een degelijke manier hebt geleerd, dan zal de stap niet te groot zijn. Verder heb ik liever een docent die zijn taal door en door kent dan eentje die misschien wel de hiptste taal kent, maar fouten gewoon letterlijk doorgeeft.
Helemaal mee eens. Het gaat niet om de taal, maar om de principes die je erbij leert. Wat je in Java leert, kan je zo omzetten naar C# of andere soortgelijke talen. Zolang de taal niet te verouderd is (dus gewoon nooit meer gebruik wordt), dan zie ik geen probleem.

Ik heb zelf vorige periode Design Patterns gehad in Java, maar heb dit ook vorige week moeiteloos in C# kunnen gebruiken.
Dit is een complexe problematiek, een aantal willekeurige punten gebaseerd op mijn ervaring (HTS HIO + 20 jaar bedrijfservaring)...

- Allereerst, het voorbeeld is echt not-done. Het maakt niet uit of het een beginnersles is of het uitleggen van een concept. Security is een van de belangrijkste basisbeginselen in deze tijden en niet iets om "later" uit te leggen. In dit geval zou het concept van het niet vertrouwen van "vreemde input" al lang aangeleerd moeten zijn VOORDAT men maar een regel programeerd. En als side note, het voorbeeld heeft tevens geen fatsoenlijke error handling en nul documentatie. En we kunnen doorgaan: de post aktie is absoluut, niet relatief, en insecure.

- Dit voorbeeld beperkt zich helaas niet tot het onderwijs. Menig online tutorial is even slecht. De impact daarvan is catastrofaal aangezien veel programmeurs sterk leunen op copy/paste van het internet. Wat niet altijd fout is, maar vaak wel. Correct programmeren met deze basisbeginselen wordt dus eigenlijk nergens als goed voorbeeld neergezet.

- Op mijn opleiding merkte ik dat docenten veels te veel vakken moeten geven. Je kunt niet verwachten van een leraar dat hij meester is in tig talen en systemen. Maar die verwachting is er wel. Vaak genoeg meegemaakt dat een student die ook maar iets bovengemiddeld is in een taal, een leraar voortdurend corrigeerd. Dat is ernstig, want zo wordt het vertrouwen in zo'n docent compleet ondermijnd. Het zou veel beter zijn om minder talen te hebben en om daarin diep te gaan. Botweg wil je dat mensen goed OO en functioneel kunnen programmeren, dat is waar de markt om vraagt en dat is best stabiel. Kies 2 mainstream talen die dat doen en ga lekker diep. Beter voor studenten, beter voor docenten.

- Het andere probleem is de snelheid waarmee de techniek zich ontwikkeld. Alleen al in mijn gebied zijn er ware aardverschuivingen zoals de cloud, node.js, native mobile app development. Zaken die de boel compleet op zijn kop zetten en waar je je weer jaren in kunt verdiepen om er competent in te worden. Als werkende heb ik de grootste moeite om deze megaschokken bij te houden, en voor een docent zal dat niet anders zijn. Toch moet hier iets gebeuren, want sommige veranderingen maken je gewoon compleet irrelevant als je er 3-5 jaar niets mee doet.
Dit is trouwens niet alleen in het onderwijs het geval, vorig jaar EC Council cursus gevolgt waarbij een later hoofdstuk ging over het exploiten van IE9 .. :O, test-lab wat gebruikt werd draaide nog windows XP. De trainer die was ingehuurd heeft na dag 1 (van de 3) alleen nog maar in de ochtend gegeven en 's middags maar de Microsoft security trainings gepakt want die waren in ieder geval nog een klein beetje up to date.
Ik doe momenteel een studie Software Engineering in Eindhoven, en daar wordt wel redelijk naar de kwaliteit van de code gekeken. Mede met betrekking tot beveiliging.

Nog sterker; De meeste docenten vinden dit belangrijker dan functionaliteit van het gemaakte werk.
Krijgen jullie ook TDD (test driven development) en unit testing in je opleiding? Ik vind dat de belangrijkste innovatie op software ointwikkeling gebied van de laatste twintig jaar.

[Reactie gewijzigd door ArtGod op 26 april 2018 21:46]

Mijn school heeft wel nadruk gelegd op TDD tijdens mijn laatste jaar, dus er zijn er zeker die dat doen. Moet dan ook wel zeggen dat mijn school erg nauw samenwerkt met grote en middelgrote software bedrijven in België. De leerkracht c# heeft ook specifiek tegen ons hebben gezegd dat bedrijven expliciet vroegen aan de school om unit en integratie testen veel meer aandacht te geven.

Dit vereist natuurlijk veel inzet van de leerkrachten, want met bedrijven samen te werken betekent dat er cursussen jaarlijks soms heel drastisch aangepast worden en leerkrachten ook veel moeten bijleren. Maar ik merkte ook wel dat ik echt veel gepassioneerde leerkrachten had die dit met plezier deden.

Op gebied van front-end bijvoorbeeld, ik ben echt zo blij dat mijn school alleen basis php heeft gegeven, en mij javascript en angular 4 is gaan leren (moest het van de leerkracht afhangen angular 5, maar die kwam pas officieel uit een week voor de trimester begon).
Voor backend dan weer vind ik het super dat ik geleerd heb een API/microservices te maken om in combinatie met angular te gebruiken, hier is ook enorm veel vraag naar op de markt. En zo zijn er nog meerdere dingen waar ik mijn school dankbaar voor ben dat ze me dit geleerd hebben.

[Reactie gewijzigd door faxityy op 27 april 2018 00:32]

Unit tests vanaf het tweede semester, en TDD wordt vaak genoemd maar niet verplicht gesteld. Het is aan de student of hij/zij dit wil of niet.
Op de HAN gaat het veel meer om documentatie rond code, dan de daadwerkelijke code...
Dit is op zich natuurlijk ook belangrijke strekking. Je bent mens en je kunt en zal ooit een fout maken in je code dat een bug zal veroorzaken. Het is dan voor iemand anders, als jij niet meer aan de code meewerkt, overzichtelijker om de bug te vinden en op te lossen.
Dat klopt, maar mijn ervaring met de HAN was dat de HAN dit je heel erg volgens het boekje leert en vanuit gaat dat in het bedrijfsleven dit allemaal ook zo soepel verloopt.
Gevolg is dat je tijdens je stage en afstuderen conflicten krijgt, omdat beide partijen(school en stagebedrijf) andere verwachtingen hebben. Ik heb er zelf gelukkig niet zoveel last van gehad. Ik ken helaas wel verhalen waar de leraar aanname maakt dat bij het bedrijf precies hetzelfde aan toe gaat als in de theorie. Vervolgens zegt de docent doe wat het bedrijf ook doet. Student volgt dit advies op en krijgt vervolgens bij zijn of haar beoordeling te horen dat het allemaal niet klopt. Als hij/zij geluk heeft weg komt met een studenten tien en anders de boel opnieuw mag doen.

Er zijn wel wat dingen die de HAN goed doet zoals de 9 weken les en daarna 9 weken project die je elk semester krijgt. Waardoor je echt leert samen te werken en goed kan focussen op de ontwikkeling van die vaardigheden. Helaas was de kwaliteit van verschillende docenten gewoon bagger. Waardoor je het allemaal zelf kon uitzoeken en aanleren met de hoop dat het gene wat je deed goed was.
Ik studeer aan Universiteit Leiden, en ook hier heb ik weinig klachten. Mijn code wordt over het algemeen nagekeken en is onderdeel van de opdracht en het cijfer. We hebben ook een 3de jaars vak genaamd "security". Dit is een relatief nieuw vak die geïntroduceerd is samen met een aantal andere veranderingen om met de tijd mee te gaan.

[Reactie gewijzigd door unilythe op 26 april 2018 20:05]

Op Fontys wordt daar in het algemeen inderdaad wel goed naar gekeken. Uitzonderingen daargelaten.

Maar het mag alsnog wel een tikje meer wat mij betreft. Als je de software engineers veilige code laat schrijven dan hebben de mensen van cyber security wat minder onnodig werk.
Mijn collega krijgt op MBO nieveau 4 les in Windows Server 2012. Ze zijn nog bezig met het schrijven van de lessen in Server 2016. “En zoveel verschilt het toch niet...” Ongelooflijk toch! Alsof niemand die wijzigingen aan ziet komen. |:( Beta?!

Eerste trimester; helpen meeschrijven aan de nieuwste syllabus voor de nieuwere versies. Problem solved!

[Reactie gewijzigd door wilbert123 op 26 april 2018 19:56]

Het is veel verstandiger om scholieren de MCSA en -of MCSE examens te laten maken. Microsoft heeft het materiaal al gemaakt.
Klinkt heel goed, maar heeft zo zijn problemen. Je moet namelijk wel verantwoorden dat studenten een bepaald niveau hebben gehaald. Die examens zijn leuk voor erbij, maar kan het niet 100% vervangen. Voorbeeld: Student wil toets inzien en kijken wat hij fout heeft gedaan-> kan niet want microsoft geeft de toets niet vrij van de student (echt gebeurt). Als docent kun je dan niks omdat het bij een externe partij staat.
De antwoorden van die toetsen zijn gewoon op internet te vinden en binnen een paar dagen goed genoeg uit je hoofd te leren voor een ruime voldoende op een officieel examen. Ik vond het vies tegenvallen wat die certificering nou echt inhoudt.
Dat vereist toestemming van Microsoft. Zullen ze vast in moeten kopen. M.a.w. ze moeten dan zelf hun lessen gaan ontwikkelen (wat tijd en geld kost) en dan ook nog eens Microsoft betalen om die examens te kunnen doen. En je moet je afvragen in hoeverre die examens aansluiten bij wat ze wettelijk moeten doen en bij wat het bedrijfsleven vraagt.
Buiten het label dat je dan krijgt en dat je werkgever je tijd moet geven om het in te studeren.
En dat klanten vragen naar mensen met die certificaten en dat we die nodig hebben voor ons partnership niveau.
Vind ik persoonlijk MCSA/E nutteloos en vooral verspild geld.
met inderdaad antwoorden van buiten te leren kan je het halen, maar dat zegt niets over of je het nu kan of niet.
Verder moet je het niet kunnen want geef eerlijk toe om iets nieuws op te zetten, neem je de guide of textboek en met een cliché next next finish. Dat zijn dingen die ik 1 keer doe, in een procedure giet en dan nooit meer , indien nodig is dat werk voor onze Chinese collega's.
bij problemen, dan kom je echt niet toe met hetgeen wat in je geheugen zit van om dat examen geleerd te hebben en moet je toch op zoek ,naar die foutcode en vergelijkbare problemen, op het internet.
zelfde heb ik met sommige ISO certificaten, de enigste vereiste van sommige is namelijk dat je een procedure beschreven hebt. Niet dat je die gebruikt of toepast, noch enige kwaliteitscontrole op de procedures zijn een vereiste om het certificaat te behalen.
Server 2012 is nog support tot 2023 als ik het goed heb. Niks mis mee dus om nu nog op 2012 les te krijgen. Als het nu 2008 was had ik je gelijk gegeven maar hier is niks mis mee.
Plus Windows Server 2016 is vrijwel identiek aan Server 2012 met uitzondering van de nieuw toegevoegde functies en Windows 10 support. Maar de migratie van 2012 naar 2016 was echt zo simpel als iets. (Thuisserver) het gaat hier dan ook om lesmateriaal, dus die hoeven niet een heel bedrijf te migreren. Het leren van Windows Server 2012 is niets mis mee, de basis in 2016 is exact hetzelfde.

[Reactie gewijzigd door jimzz op 26 april 2018 20:05]

Groot verschil is dat 1016 ook zonder ipv4 kan werken. Je kan zelf een compleet domein opzetten zonder ook maar ergens een ipv4 adres te gebruiken mits je werkstations allen windows 10 zijn.
Kan nog niet echt een praktische use case bedenken om exclusief ipv6 te gaan gebruiken voor domeinen. Het is enkel een vereiste om een ipv6-adres te hebben voor Failover Clustering. Verder wil je je AD toch niet publiek broadcasten, dus zit je aan VPN of een intern netwerk, waar je aan ipv4 voldoende hebt en je niet een hele zooi dingen uitsluit of moeilijker maakt dan nodig.
De reactie was puur om aan te geven dat er wel een verschil is. Als POC onlangs namelijk een ipv6 only domain neergezet i.c.m. NAT64. Dit voornamelijk om voice achtige dingen te demonstreren i.c.m. p2p ipsec tunnels over ipv6.

Voor wat betreft publieke ranges, je hebt natuurlijk altijd nog gewoon een firewall er tussen. Met ipv4 was dat vroeger ook niet heel anders, toen had je ook gewoon een publieke range voor je interne pc's bij de wat grotere ondernemingen.
ik heb nochtans al tal van failover clusters opgezet zonder ipv6.
toegegeven nog niet op 2016 gedaan, maar ik heb nergens gezien dat die niet met ipv4 zou kunnen.
in de MS docu (net gekeken) staat er zelfs nog in het voorbeeld ipv4 als statisch addres.
Je hoeft niet actief een ipv6-network op te zetten, maar wanneer je deze uitzet of de andere nodes ipv6 niet whitelist, kan je cluster op zn bek gaan. Zijn wel een aantal artikelen over te vinden, en heb dit in de praktijk ook meegemaakt.
Do not disable IPv6, even if you have no IPv6 on your network. MS will support you, but it’s recommended that IPv6 is left bound to all the physical NICs in your cluster nodes.
ik heb dan weer het omgekeerd probleem als je geen ipv6 gebruik is het het best om die uit te schakelen, zeker het loopback adres. Sommige applicaties hebben daar last van.
zowel op cluster als stand alone.
voor de rest nog geen problemen tegengekomen met al onze clusters omdat ipv6 uit staat.

we mogen ons dus gelukkig prijzen.
Inderdaad, daar is op zich niet erg veel mis mee. Windows Server versies zijn er voor gemaakt erg lang mee te gaan.
Dat is natuurlijk makkelijk gezegd. Ook op het mbo(ik kan niets zeggen over het HBO) is de werkdruk erg hoog. Je krijgt niet zomaar de tijd om 'even' nieuw lesmateriaal te schrijven. Als er vervolgens ook nog geëxamineerd moet worden over die nieuwe inhoud ga je helemaal een eindeloos proces in.
Heb aan diverse MBO-opleidingen gevraagd of ze ook iets met cloud based platformen doen (Azure, AWS, Google), maar nee hoor. Alles on premise. Handig als je MBO netwerkbeheer leert... Ik denk dat je dan ook wel iets over cloudtransformatie mag/moet leren.
2012 is prima om het op te leren, het is nog supported en het werkt vrijwel hetzelfde wat betreft MBO4 leren te werken met Server Manager, AD en de verdere basis van Windows Server, daar is in 2012R2 en 2016 vrijwel niks in veranderd.
Ik ken scholen waar tot drie jaar geleden nog met Server 2003 werd gewerkt :+

De grootste wijzigingen in 2016 zijn ondersteuning van vTPM's in Hyper-V (niet echt iets wat je op school hoeft te leren tenzij je MTA's oid doet), Nano wat je zelf thuis kan doen uit eigen interesse en dat er 2016 staat ipv 2012, als je wilt leren hoe Windows Server 2016 werkt kan dat prima op 2012. Op 2008 is dat lastiger aangezien die wel een stuk anders werken met Server Manager maar als je het op 2012 leert zal er niks nieuws zijn in 2016 voor je.
Dat er bij scholen verouderde apparatuur is kan ik best begrijpen. Het nieuwste spul kost tienduizenden euro's per apparaat, en het wordt misbruikt door allerlei studenten die niet geïnteresseerd zijn in het spul. ( oftewel het wordt gesloopt c.q. stuk gemaakt )
Scholen doen er goed aan om een netwerk van lokale bedrijven op te doen waar zij de oude apparatuur gratis van kunnen krijgen.
Ik denk dat de mensen bij scholen niet inzien hoeveel relatief nieuwe ( 3-5 jaar oud ) apparatuur gewoon bij het grof vuil gezet worden als de lifetime cycle binnen het bedrijf voorbij is.

Voor wat betreft de kwaliteit van het onderwijs ligt dit volledig aan het feit dat er op dit moment een gigantisch tekort is aan goede ontwikkelaars.
Ik kan mij dan goed indenken dat een goede ontwikkelaar eerder voor een zéér goed betaalde baan als ontwikkelaar aan de slag gaat, dan dat deze voor de klas gaat staan, voor een aanzienlijk minder bedrag.
Ik hoop dat ze geen fysieke machines gebruiken voor cursussen systeembeheer of programmeren! Typisch iets dat veel beter virtualized (al dan niet in de cloud) kan.......
Eens, systeembeheer kan volledig virtueel tegenwoordig, en dat zouden studenten ook moeten leren, aangezien alles gevirtualiseerd and hyperconverged aan het worden is.
Aangezien het artikel het over switches e.d. had doelde ik daar ook op met de apparatuur van IT bedrijven.
Als systeembeheerder heb ik daar maar 1 reactie op: wat een nonsens. Het laat goed zien dat men niet goed weet wat systeembeheer nou is. Het maakt echt geen drol uit of je nou fysieke servers of virtuele servers of cloud oplossingen gebruikt. Het gaat erom dat je dingen kunt beheren. Dat beheren is deels technisch en grotendeels ook niet technisch. Denk daarbij aan bedrijfsprocessen en procedures maar ook iets als plannen, projectmatig werken en omgaan met mensen. Er wordt namelijk van je verwacht dat je niet alleen in staat bent om de huidige situatie up & running te houden maar ook deze actueel te houden. In diverse bedrijven betekent dat o.a. een opleidingsplan en verplichte cursussen.

Kortom, wat je hier nu van school verwacht, verwacht je werkgever straks van jou ;)

Btw, maak je borst maar nat als je het bedrijfsleven in gaat...als er ergens verouderde hardware en software te vinden is, dan is het daar wel. Er wordt daar meer waarde gehecht aan stabiliteit dan aan actualiteit. Het is dus ook een beetje de vraag of scholen uberhaupt wel achterlopen ;)

[Reactie gewijzigd door ppl op 26 april 2018 21:26]

Ik mag toch echt hopen dat studenten met algemene kennis en kunde worden opgeleid en niet met specifieke kennis van een product.
Welk nu heeft het nu om te leren werken met Azure of AWS. Daar moet je echt niet voor naar de universiteit.

Ik vrees toch voor de kwaliteit van het onderwijs als ik dit zo hoor.

[Reactie gewijzigd door klakkie.57th op 26 april 2018 21:19]

Volgens mij is het ook meer in zijn algemeenheid bedoeld. Als studenten nu vast leren wat containers zijn ten opzichte van virtuele machines, en hoe ze deze automagisch kunnen deployen naar een cloud platform, zijn ze al meer bij de tijd dan dat ze alleen over VM's leren.

Daarbij maakt het niet uit of het AWS, Azure, GCP of self hosted is. Het gaat, zoals bij vrijwel alles in de IT, om het principe. Of het nou om cloud, programmeren of netwerken gaat. Dit geldt voor alle lagen in de stack. De studenten die die principes oppikken, worden over het algemeen de beste ITers.
Dat is natuurlijk en / en, ze zullen inderdaad moeten leren hoe een hypervisor werkt, containers, hoe je zaken in bijv. Azure of AWS regelt maar het is toch ook niet onbelangrijk om te weten hoe de laag daaronder werkt, de fysieke virtualisatie hosts, de SAN's e.d, de verschillende netwerk componenten en dan het liefst wel met hardware die nog enigszins courant is ook nog. Werken in de Cloud is nog altijd werken op "andersmans computer" om het simpel te zeggen, en als jij niet bij een bedrijf werkt als sysadmin die alles nog in eigen beheer hebben dan werkt je vaak bij een partij die "andersman computer" beheert voor haar klanten.
Een thin client is ook een fysieke machine. Ik mag toch hopen dat ze wel fysieke machines gebruiken.
Scholen krijgen net gigantische kortingen (net als non-profit bvb), 90% is echt niet ongewoon. Fabrikanten hebben graag dat studenten met hun materiaal leren werken.
1 2 3 ... 7

Op dit item kan niet meer gereageerd worden.


Apple iPhone XS Red Dead Redemption 2 LG W7 Google Pixel 3 XL OnePlus 6T (6GB ram) FIFA 19 Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank en Intermediair de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2018 Hosting door True