Caelorum schreef op dinsdag 16 juli 2013 @ 23:00:
De taal om in te beginnen hangt ook wel af van wat je precies wilt doen met het kunnen programmeren en hoe snel je dat wilt doen. Wil je richting de (3D) graphics kan je niet echt om C/C++ heen
Als je gewoon een 3D spelletje wil maken kan dat prima in Java (of whatever, voor elke taal zijn wel OpenGL bindings, 3D 'leren' is nauwelijks afhankelijk van je platform). Als je echt 'in de markt' aan de slag wil mag je achteraan de rij aansluiten en kun je 't zonder gedegen opleiding waarschijnlijk wel vergeten.
Anyways kort door de bocht denk ik dat als je in je eentje zonder hulp moet beginnen (zoals ik) en business applicaties willen maken een 'managed' taal als C# of java het beste is. Mocht je echter hulp/les kunnen krijgen denk ik dat je met C en dan C++ het beste uit bent voor die dingen.
Maar dit is nog los van alle andere dingen die al gezegd zijn en het feit dat de starttaal niet eens zo heel erg uitmaakt. Vind in ieder geval een taal waarmee je of hulp kunt krijgen (bijv. code reviews van een ervaren programmer) of waar relatief veel fatsoenlijke tutorials/boeken over kunt vinden.
M.i. zijn er voor een 'beginner' een aantal eisen:
- De taal moet je redelijk dwingen OO te programmeren (het is moeilijker dingen later af te leren dan gewoon meteen de 'juiste' manier te leren)
- Er moet een grote gebruikerscommunity zijn
- Er moet veel lesmateriaal in zijn
- De taal moet je niet te veel lastigvallen met low-level geneuzel en de onderliggende OS zaken voor je abstraheren
Wat dat betreft zijn C# en Java wat mij betreft dus ze beste kandidaten. M.i. leer je het snelst de juiste skills aan waardoor je later makkelijk over kunt stappen naar andere talen. Dit betekent dus niet dat je niet kunt beginnen met C++ of Python, maar dat het m.i. waarschijnlijk niet de beste keuze is. De gemiddelde Python tutorial begint met "hoe tel ik 1 en 1 op". Een gemiddeld Java boek begint met "wat is een object". Daar zit m.i. nogal een verschil in.
Zelf ben ik begonnen met basic en wat assembly en toen ik in '98 aan de HIO les kreeg in Java moest ik me ook gewoon een hoop dingen afleren. Jezelf OO aanleren is gewoon lastiger als je het al een hele tijd anders gedaan hebt.
In de praktijk zijn er makkelijk fouten mee te maken die dan erg lastig te herleiden zijn naar de bron. Als voorbeeld: in mijn opleiding begon je in het 3e jaar met C++. In de oneindige wijsheid van de gemiddelde HBO manager hebben ze besloten om inplaats van een C++ vak met theorie en practicum het praktische deel los te koppen en te onderwijzen in de vakken "datastructuren" (bomen e.d.) en "algoritmen" (eigen LZW implementatie maken, etc.).
En toen werd dus de docent die het theoriedeel zou geven ziek en mochten we zonder het theoriedeel (zelf maar blokken op het dictaat) zelf het praktijkdeel gaan implementeren. Dit heeft ons dus HEEL veel tijd gekost omdat we gewoon met een texteditor onder Solaris zaten te werken en als je iets fout doen gewoon een segfault krijgt (bleek later dat ik op een of andere manier in een RO deel zat te schrijven). Het is me zelfs gelukt om een kernel panic te veroorzaken.
Vandaar dat ik dus sterk van mening ben dat beginnen in C++ geen goed idee is. Het is een must-learn taal, absoluut, maar niet als absolute beginner.
[
Voor 22% gewijzigd door
Hydra op 17-07-2013 10:00
]