Se connecter

Informatique

Création de Jeux

Sujet : Passer de Python a C++
1
Pseudo supprimé
Niveau 5
31 janvier 2020 à 20:41:27

Salut,

Je programme avec Python depuis quelques années, je ne suis pas un expert mais je sais faire des petits programmes assez simples et je suis familier avec le concept de POO.

J’ai décidé il y a quelque jours de commencer a apprendre C++, j’ai commencé a suivre les tutos de thenewboston sur youtube et pour le moment j’arrive a suivre assez facilement (j’en suis au point ou il commence a expliquer les classes).

J’ai souvent entendu dire que C++ était tres compliqué donc je m’attends a être perdu très bientot dans ses tutos mais avant ca je voulais savoir un peu a quoi m’attendre...

Python m’aide pour le moment avec les concepts d’objets etc... mais est-ce que ca va continuer par la suite ou est-ce que C++ devient radicalement different?
Est-ce qu’apprendre a faire un simple programme va me prendre des années et enfin est-ce que connaitre c++ me sera utile si je décide de passer a un autre langage par la suite?

zebtorax
Niveau 9
31 janvier 2020 à 20:59:48

C'est une bonne initiative.
C++ est plus bas niveau donc oui cela va forcément t'aider pour d'autres langages. (Au sens ou tu comprendras mieux e que fait la machine, etc.)
D'ailleurs avant le C++ il serait bien d'aborder le C, au moins des notions.

Comme Python est plus facile, il permet peut être de faire des jeux un peu plus personnalisés.
Tandis qu'avec C++ tu vas sans doute devoir suivre des tutos et donc sans doute que les jeux seront un peu moins persos.
Le jeu sera sans doute aussi un peu mieux mais donc un peu plus complexe à développer.
Mais sans quoi cela ne va pas changer grand chose.
Bon courage...

Shiba_the_Inu
Niveau 58
31 janvier 2020 à 21:51:55

Le c++ n'est pas compliqué à comprendre, mais compliqué à maitriser. Cela dit tu peux faire pas mal de choses assez facilement.
J'ai commencé le c++ et Javascript récemment, le python ne m'attire absolument pas car je le trouve un peu chiant sur sa lisibilité. Le c++ est beaucoup plus rigide, mais tu survoles facilement son code grâce à ça.

Contrairement au python les variables sont plus strictes, déjà tu as des termes à apprendre, mais on les connais vite, et aujourd'hui certains sont peu utilisés suivant ton projet (les signed/unsigned, short etc), ou du moins tu peux t'en passer pour des trucs simples.
De toute manière avec un peu de pratique tu t'y fera vite, les plus utilisés étant float/int/string, respectivement nombre décimal, entier et chaine de caractère.

Un chapitre un peu compliqué mais chiant sera surtout l'utilisation des pointeurs, en réalité c'est pas trop compliqué, mais ce n'est pas toujours évident, surtout que ça n'existe pas dans pas mal de langages qui l'intègre parfois implicitement, car il s'agit de variables qui ne stockent pas de valeur directement, mais qui "pointent" sur une adresse mémoire (qui peut être celle d'une autre variable classique) qui elle stock une valeur.
Mais je veux pas te spoiler le chapitre :-p

Après avec de la pratique ça va, on peut déjà faire pas mal de choses, persos je suis plus souvent bloqué par la logique/math que par le code en lui même, dans le fond la plupart des langage ont pas mal de similitudes, des mots clefs commun etc. ET encore une fois, mais pour moi la rigidité du C++ c'est aussi sa force, ça donne un code plus clair que le Python ou Javascript,, même si c'est moins dynamique, et on contrôle mieux ce que l'on fait.

Après là où ça peut être parfois tendu c'est dans des applications plus poussées avec une gestion de la mémoire, cela dit, aujourd'hui y'a pas mal de choses qui permettent d'être un peu plus souple et de moins se préoccuper des allocations/désallocation mémoire, les tableaux par exemple je vois souvent qu'il est plus conseillé d'utiliser les conteneurs comme Array/Map etc, plutôt que chercher à gérer la mémoire soi même (dans le cas où tu dois par exemple changer la taille de ton tableau).

Si t'aime la programmation, le c++ et le c sont plutôt passionnant je trouve, ils ont leurs défauts, mais pas mal de qualité aussi, et aujourd'hui le c++ a quand même pas mal d'outils qui le rendent plus pratique pour les débutants qu'avant. Après passer du python au c++ c'est sûr ça va changer, ne serait-ce que sur la rigidité du code, l'utilisation de semi colonne, termes différentes pour différentes variables, la méthode de création de classe etc....
Mais pas mal de principe restent similaires :connaître le principe des fonctions, l'utilisation de classes, l’utilisation de boucles, l'utilisation de tableaux de données... tu partira pas forcément de 0, faudra juste s'habituer à certaines conventions assez vite assimilées.

Tu peux assez vite faire pas mal de choses quand même, d'ailleurs je te conseil le NGCK créé par un forumeur du fofo programmation :
http://www.dk-games.com/NGCK.html
Ça m'a appris pas mal de choses assez rapidement pour passer ensuite sur un framework comme SFML

Est-ce qu’apprendre a faire un simple programme va me prendre des années et enfin est-ce que connaitre c++ me sera utile si je décide de passer a un autre langage par la suite?

Oui, perso le javascript m'a permis de mieux comprendre certaines choses de C++ (et plus rapidement) mais l'inverse aussi
(genre le concept de passer des éléments par "référence", je comprenait pas ce que ça voulait dire dans les tutos javascript, mais ça vient du chapitre sur les pointeurs justement :-p)
Et quand tu sais lire un code c++, tu peux déchiffrer un code java/c#/javascript etc assez facilement. pas forcément savoir coder directement, mais encore une fois, pas mal de termes et méthodes sont assez similaires, donc tu peux deviner la logique principal, même si derrière faudra quand même apprendre certaines subtilités et certains termes spécifiques ou manière d'écrire.
Par exemple les "namespace" existent en c++, mais le code ne s'écrit pas de la même manière, en C# c'est plus présent. En javascript il y a tout un chapitre sur le terme de "prototype", qui n'existe pas en C++ sous cette appellation mais qui a trait aux "objets" et aux méthodes partagées entre plusieurs classes/sous-classe. etc....

Fin bref, désolé je fais facilement des pavés. Mais n'hésite pas à te lancer dedans, le c++ n'est pas une bête noire, on peut doucement commencer par ce langage aussi, ses bases ne sont pas compliquées, ce sont plutôt ses utilisations avancées qui peuvent l'être, comme pas mal d'autres langages.
Cela dit je te conseil de voir un ou deux petits tutos sur la gestion d'un programme, à quoi sert le processeur, la ram etc, comment est attribuée puis gérée la mémoire, c'est pas forcément long, mais ça peut être utile, sur le chapitre des pointeurs notamment, ainsi que les chapitres avancés de gestion de la mémoire. Le gros + de ce langage étant qu'il est "proche de la machine", et donc que tu peux un peu plus manipuler tes ressources. ça ne demande pas un bac +5, mais un peu de connaissance sur ce sujet et de la concentration. Faudra peut être travailler le sujet puis revenir dessus un peu plus tard, c'est encore une fois, pas forcément évident au début, mais important.

Pseudo supprimé
Niveau 4
01 février 2020 à 04:29:54

J’ai commencé aussi avec Python avant de passer a c++.

Python est plus facile a premier abord c’est vrais mais je me suis rendu compte que quand je programmais avec Python je faisais n’importe quoi, je ne comprenais rien a ce que je faisais et j’avais l’impression d’être bill gates.

C++ est plus intimidant au début, demande plus de rigueur mais au final fera de toi un meilleur programmeur.
Tu ne peux plus juste “balancer quelques lignes dans un script” et voir si ca marche. Il faut que tu comprennes vraiment ce que tu fais et pourquoi tu le fais.

Tout n’est pas aussi compliqué que ce que tu peux lire sur internet avec c++.
Certains concepts sont complexes c’est vrais mais tu peux aussi faire des petits trucs relativement simples.

Au final meme si tu ne continues pas avec c++ c’est une bonne idée d’apprendre quelques notions je pense, ca ne pourra que t’aider par la suite.

1
Sujet : Passer de Python a C++
   Retour haut de page
Consulter la version web de cette page