Je programme depuis 3-4 ans maintenant et je sens que je ne peux plus être appelé un débutant, mais j'ai lu quelques questions sur ce site et je pense que WTF parle-t-il? Je ressens la même chose quand je prends des livres de programmation de nos jours.
J'ai lu plusieurs livres de programmation de début, certains sur C / C ++ et d'autres sur les jeux. J'ai écrit des choses plus complexes telles que l'IA très basique, l'interface série et TCP / IP.
Je prévois de devenir programmeur de jeux, mais je me suis récemment intéressé aux systèmes embarqués après avoir eu la chance de travailler dessus (l'interface série).
J'ai trouvé très difficile de trouver du matériel pour continuer mon apprentissage après avoir terminé l'introduction et les livres pour débutants car il n'y a pas de livres C ++ intermédiaires que je puisse trouver.
Quels conseils donneriez-vous pour développer et améliorer mes connaissances et mes compétences? Des ressources spécifiques seraient grandement appréciées.
Réponses:
Si vous parlez de C / C ++, vous pouvez certainement utiliser une expérience supplémentaire. Le premier indice que je vais vous donner est que C et C ++ sont des langages complètement différents . La meilleure ressource pour apprendre le C ++ est StackOverflow - il y a beaucoup de gens qui ont de grandes quantités d'expérience et de connaissances.
La prochaine chose à faire est de démarrer un projet majeur, comme essayer d'écrire un moteur graphique 3D dans une API de bas niveau comme DirectX, et lorsque votre conception échoue lamentablement comme tous les premiers projets, vous apprendrez comment pour programmer.
Vous pouvez vérifier ce lien sur StackOverflow pour une grande liste de bons livres pour apprendre le C ++.
la source
Tout d'abord, augmentez vos connaissances théoriques de base dans tout ce que vous ne savez pas encore. Étudiez la théorie et écrivez quelques courts exemples.
Un exemple de base théorique de base comprend:
Ensuite, envisagez d'apprendre un langage supplémentaire (par exemple Java ou C #). - L'étude de langues supplémentaires aide à mieux comprendre les avantages et les inconvénients de la langue que vous utilisez et vous aide à apprendre les meilleures pratiques que vous ne connaissez peut-être pas.
Choisissez ensuite un nouveau domaine (programmation web, infographie, traitement d'image, vision par ordinateur, accès aux données, ...). Étudiez la théorie et écrivez quelques courts exemples.
Créez ensuite un grand exemple, qui a encapsulé une application multicouche, gérant l'accès aux données, l'interface utilisateur et un domaine spécifique que vous avez choisi. Mettez l'accent sur l'architecture de l'application (assurez-vous que ses parties sont couplées de manière aussi lâche que possible).
J'espère que vous apprendrez à apprendre de nouvelles approches et technologies et à les intégrer à une bonne architecture.
Spécifiquement pour la programmation de jeux, je recommande de choisir les domaines / technologies suivants:
Éditer:
Comment apprendre:
la source
L'utilisation de C ++ (en combinaison avec C) suppose que vous aurez plus de choses à apprendre pour comprendre le WTF dont ils parlent. Le C ++ est plusieurs langages, plusieurs couches d'abstractions vivant au même endroit et cela prend beaucoup de temps pour tout explorer une fois, puis comprendre ce que vous venez de voir.
J'ai été dans votre cas et j'apprends toujours ces langues. J'apprends aussi beaucoup en travaillant sur les systèmes embarqués.
Voici mon conseil:
Ne supposez pas que vous en savez déjà beaucoup sur la programmation. La plupart des développeurs ne parviennent à maturité en programmation qu'après plus de 10 ans de pratique dans le monde réel, avec différents contextes et types de projets, de plates-formes, etc.
Vous commencez juste votre voyage.
la source
En fonction de vos intérêts dans la programmation et les jeux intégrés, je recommanderais également ce qui suit - vous pouvez parcourir les listes de livres des articles ci-dessus pour trouver de bonnes sources sur tous ces sujets. Un livre que j'ai trouvé essentiel était la bibliothèque standard C ++: un tutoriel et une référence
Si vous n'êtes pas à l'aise avec les bases de la POO - apprenez-les en premier. Comprendre les bases de l'héritage et de l'encapsulation. Connaître le comportement des mots clés virtuels, publics / protégés et privés et statiques.
Soyez à l'aise avec les pointeurs et les références (et préférez généralement les références). Apprenez et utilisez la construction smart_ptr <> pour obtenir une gestion de la mémoire "automagique".
Apprenez à utiliser des modèles C ++ - initialement comme des types de données de conteneur. Vous découvrirez continuellement de nouvelles techniques plus puissantes que les modèles C ++ peuvent exécuter via la méta-programmation.
Apprenez la STL: utilisez la chaîne, l'iostream, les exceptions et les classes de conteneur, et préférez-les aux types de données de niveau inférieur char *, FILE * et char [] lorsque cela est possible.
Commencez à utiliser des parties de la bibliothèque Boost - je vous recommande d'apprendre d'abord leur bibliothèque asio et thread, compte tenu de vos intérêts. Il s'agit d'une base de source C ++ multiplateforme open source très puissante qui vous permettra d'écrire du code de haute qualité qui est également portable. (De nombreux ajouts à la norme C ++ de base proviennent des contributions Boost)
S'amuser! Sérieusement - choisissez des projets pour animaux de compagnie à coder. Peut-être bricoler avec des cartes Arduino si vous aimez les projets de programmation intégrés.
Obtenez une large expérience - si vous n'avez utilisé que Windows / Visual Studio C ++, essayez d'écrire du code pour Linux / g ++ ou OS X / XCode (vous pouvez coder C ++ sur Mac ou vous pouvez vraiment élargir vos horizons et aller pour Objective-C, pour voir comment une autre branche des langages POO aborde les choses!)
la source