Hoe lang duurt het om progammeertaal C++ te leren?

Ik wil misschien progammeertaal C++ gaan leren. Maar voordat ik daaraan wil beginnen wil ik weten hoe lang het duurt om progammeertaal C++ echt onder de knie te hebben? Stel je voor dat je 2 uur per dag C++ aan het studeren bent hoe lang duurt het dan om het onder de knie te krijgen?

Weet jij het antwoord?

/2500

Hmm, ik kan geen c++, wel andere programmeer talen. Vaak heb je al vrij snel wat basics onder de knie en kun je al wel wat in elkaar zetten. Maar het duurt wel een paar jaar op zn minst wil je het echt onder de knie hebben. C++ is ook een erg lastige taal.

Hangt van je voorkennis af. C++ is erg lastig. De basis heb je misschien vrij snel door, maar als je flink aan de gang gaat met object orientatie, templates (STL), memory management, pointers, references etc, is er voor de meest doorgewinterde programmeur nog elk jaar iets bij te leren. Als je vanaf niets begint produceer je misschien na een half jaar een redelijk programma, en na een jaar of 2 kun je productiecode schrijven. Een goede programmeur worden is maar voor een klein deel de syntax van een taal leren. De principes van het bouwen van een groot stuk software zonder dat het een warboel wordt zijn veel belangrijker. Als je dat kunt, kun je vrij snel in elke taal programmeren. Talen als C# en JAVA zijn iets makkelijker omdat het managed talen zijn. Ik vind de code die je daarmee maakt veel schoner, daardoor minder kans op fouten.

Bij C++ ben je zelf verantwoordelijk voor het geheugen gebruik. Reserveer je te veel geheugen en maak je het niet goed vrij dan loopt het apparaat waar het op draait vast. Als je programmeer ervaring heb met bijvoorbeeld C# dan is het wel te doen. Met C++ kan je bijvoorbeeld een spelletje maken voor de PSP

Het leren programmeren draait om twee zaken: - analytisch leren denken - de taal leren Het eerste kun je goeddeels in andere talen leren, ook in bijv. het veel makkelijkere en beter leesbare BASIC (met moderne BASICs is met name voor beginners *niets* mis, de tijd van regelnummers en goto ligt al decennia achter ons). Het leren van de taal is wat meer tricky. Het probleem met C++ is dat het (met name voor starters) dwingt om twee dingen tegelijk aan te leren; de taal, en het analytisch denken. De taal ziet er ronduit cryptisch uit vergeleken met het menselijk 'leesbare' BASIC/PASCAL - die nagenoeg Engels zijn qua taal. Het analytisch denken wordt nog bemoeilijkt doordat boeken vrijwel gelijk beginnen over objecten, op een moment dat je misschien net aan eens een eigen globale functie hebt gemaakt en nog niet eens echt snapt wat je ermee moet. Ik heb vele jaren procedureel geprogrammeerd (dus alleen globale functies) voordat ik pas ben gaan inzien welk nut er in objecten zit. Je zult 't pas echt begrijpen als je grote programma's van duizenden regels schrijft, programma's met veel user-interaction, en dat is iets wat wel even tijd kost. Dus, het concept van objecten (al begint dat besef maar vast met data hiding) komt echt wel, maar om die objecten al in de eerste hoofdstukken van een leerboek neer te zetten gaat wat ver. Ik zou er dus voor kiezen om procedureel en objectgeoriënteerd denken te leren in een wat meer veilige/schone omgeving. Op het moment dat je dan het hele analytische denken onder de knie hebt is de overstap naar C++ een stuk makkelijker - je hoeft dan alleen maar de taal te leren aangezien je het 'waarom' al snapt. Ik zou www.blitzmax.com kunnen noemen als een objectgeoriënteerde eigentijdse BASIC voor starters. Deze taal heeft gewoon functies, objecten, overerving, pointers, by reference-argumenten, events, etc. Belangrijker nog: het kleinste programma is in BlitzMax 1 regel groot. Er zit nagenoeg geen overhead in. Want dat is ook weer zoiets; hoeveel van die complexere talen knallen wel niet van de programma-overhead zonder ook maar een regel van jezelf toegevoegd te hebben? Dat is dus ook nog iets wat je moet snappen.. een derde argument dus, naast denken en het leren van de taal. Bepaalde programma-frameworks en libraries zijn niet altijd even makkelijk te begrijpen voor beginners, maar boeken smijten ermee alsof het de normaalste zaak van de wereld is. In dat opzicht hebben veel boekauteurs een intellectuele tunnelvisie.

Stel zelf een vraag

Ben je op zoek naar het antwoord die ene vraag die je misschien al tijden achtervolgt?

/100