Vroeger (ja ja, oma spreekt) begonnen we altijd heel basic met programmeren. De meeste van de iets oudere generatie zullen met basic (wat vroeger nog echt basic was), assembly of iets procudereels begonnen zijn.
Tegenwoordig zitten we op een wat hoger niveau dan vroeger. Was OOP in mijn tijd nog iets academisch voor de anti-mainstream mensen, tegenwoordig is het gewoon harstikke ingeburgerd en absoluut een "best practice". Nu zit ik me al een tijdje af te vragen waarmee beginners vandaag de dag nou moeten beginnen met programmeren. Er lijken over het algemeen twee kampen te zijn.
Het ene kamp zegt eigenlijk dat nieuwe mensen net zo moeten beginnen als zij zelf ook ooit begonnen zijn. Voor C++ betekent dat bv C achtig beginnen. Geen STL maar zoveel mogelijk C libs. Dus niet de classe string gebruiken of de vector en andere collection classes, maar char*'s en native arrays. Geen GUI (event driven) apps, maar console applicaties en cout.
En zelfs voor talen die veel low-level constructies niet kennen zie je dan hetzelfde. Mensen die met Java willen beginnen wordt aangeraden eerst met enkel JSP's aan de gang te gaan en daar dan maar vooral veel Java code op te kwakken, want de mensen die ooit met Java begonnen schreven eerst ook alleen maar JSP's (zonder JSTL of JSF).
Het andere kamp zegt eigenlijk precies het tegenovergestelde. Het gebruik van char*'s in C++ voor strings is volkomen deprecated. Best practice is om gewoon de [i]string[/b] class te gebruiken. Dit levert betere, veiligere en vooral makkelijkere code op. Het argument van het basic kamp is dat je makkelijk moet beginnen, maar is een char* echt makkelijker dan een string class? In de praktijk blijkt juist dat die string class velen malen makkelijk is en beginners die dan ook liever gebruiken (zelfs als het eigenlijk niet 'mag' op een school omdat ze 'dat nog niet gehad hebben').
Het zelfde geldt voor JSP vs JSF. JSP's zijn veel meer low-level. Je moet zelf itereren over datasets, zelf met low-level stuff als request parameters en HTML rommelen, terwijl je in JSF gewoon een component tag op je pagina zet, deze een dataset geeft en hij wordt gedisplayed (vergelijk ook met ASP.NET). Eigenlijk veel makkelijker. Toch zeggen mensen altijd dat je pas met JSF kan beginnen als je echt geavanceerd bent. Exact een zelfde verhaal kan opgehangen worden voor console apps in java vs iets met Swing ofzo.
De bottomline is, is het verstandig om mensen eerst een basis te leren, terwijl die basis eigenlijk precies is wat mensen niet moeten doen in het echt, of leer je ze eerst de gangbare best practices en laat je ze pas als ze wat verder zijn kennis maken met de onderliggende basis?
Tegenwoordig zitten we op een wat hoger niveau dan vroeger. Was OOP in mijn tijd nog iets academisch voor de anti-mainstream mensen, tegenwoordig is het gewoon harstikke ingeburgerd en absoluut een "best practice". Nu zit ik me al een tijdje af te vragen waarmee beginners vandaag de dag nou moeten beginnen met programmeren. Er lijken over het algemeen twee kampen te zijn.
Het ene kamp zegt eigenlijk dat nieuwe mensen net zo moeten beginnen als zij zelf ook ooit begonnen zijn. Voor C++ betekent dat bv C achtig beginnen. Geen STL maar zoveel mogelijk C libs. Dus niet de classe string gebruiken of de vector en andere collection classes, maar char*'s en native arrays. Geen GUI (event driven) apps, maar console applicaties en cout.
En zelfs voor talen die veel low-level constructies niet kennen zie je dan hetzelfde. Mensen die met Java willen beginnen wordt aangeraden eerst met enkel JSP's aan de gang te gaan en daar dan maar vooral veel Java code op te kwakken, want de mensen die ooit met Java begonnen schreven eerst ook alleen maar JSP's (zonder JSTL of JSF).
Het andere kamp zegt eigenlijk precies het tegenovergestelde. Het gebruik van char*'s in C++ voor strings is volkomen deprecated. Best practice is om gewoon de [i]string[/b] class te gebruiken. Dit levert betere, veiligere en vooral makkelijkere code op. Het argument van het basic kamp is dat je makkelijk moet beginnen, maar is een char* echt makkelijker dan een string class? In de praktijk blijkt juist dat die string class velen malen makkelijk is en beginners die dan ook liever gebruiken (zelfs als het eigenlijk niet 'mag' op een school omdat ze 'dat nog niet gehad hebben').
Het zelfde geldt voor JSP vs JSF. JSP's zijn veel meer low-level. Je moet zelf itereren over datasets, zelf met low-level stuff als request parameters en HTML rommelen, terwijl je in JSF gewoon een component tag op je pagina zet, deze een dataset geeft en hij wordt gedisplayed (vergelijk ook met ASP.NET). Eigenlijk veel makkelijker. Toch zeggen mensen altijd dat je pas met JSF kan beginnen als je echt geavanceerd bent. Exact een zelfde verhaal kan opgehangen worden voor console apps in java vs iets met Swing ofzo.
De bottomline is, is het verstandig om mensen eerst een basis te leren, terwijl die basis eigenlijk precies is wat mensen niet moeten doen in het echt, of leer je ze eerst de gangbare best practices en laat je ze pas als ze wat verder zijn kennis maken met de onderliggende basis?
It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.