Se connecter

Informatique

Programmation

Sujet : Commencer la programmation (débutant)
1
Wonder_Star
Niveau 8
19 mai 2022 à 17:09:21

Bonjour à tout le monde, j'espère que vous allez bien :)
Je viens sur ce forum aujourd'hui pour les raisons suivantes :

J'ai 18 ans, et je suis en formation dans un domaine de l'informatique n'ayant rien à voir avec la programmation, cependant je me suis retrouvé à m'y intéresser par le biais de certaines connaissances qui faisaient des études de développeur web, et surtout car j'ai commencé à développer un jeu vidéo via RPG Maker XP qui nécessitait l'implémentation de scripts en Ruby pour modifier ou ajouter des fonctionnalités avancées (ce que je souhaitais faire).
Je me suis souvenu après tout ça d'un de mes oncles qui m'avait à l'époque conseillé de me mettre à la programmation, et de commencer sur du C++ (il savait que j'étais un fan d'ordinateur etc..), à l'époque j'avais 15 ans et je n'y ai pas vraiment prêté plus d'attention que ça.
Mais aujourd'hui me voilà, avec ce que j'ai raconté, je me retrouve à avoir sérieusement envie de me mettre à la programmation de mon côté en autodidacte (pour peut-être aller dans une école spécialisée plus tard).

Voilà ce que j'ai fait : Je me suis renseigné via plein de vidéos que ce soit en français et en anglais (langue que je manie avec plus ou moins de facilités) sur les compétences nécessaires, comment s'y mettre, avec quel langage.. j'ai vu ces histoires d'avoir un projet qui motive le long de l'apprentissage, un mentor etc..
J'ai aussi parlé avec des développeurs, mais j'ai obtenu plusieurs réponses parfois contradictoires à mes questions. Mon idéal, ce serait de créer moi-même mon propre jeu vidéo. J'aimerais aussi développer des fonctionnalités avec les scripts Ruby pour un gros projet en rapport avec RPG Maker que j'ai évoqué plus haut.

Créer des pages web dynamiques me plairait beaucoup aussi, autrefois je tenais un blog ma foi pas fameux, et j'ai pas mal d'idées de sites..
Vous comprenez donc que j'ai beaucoup d'envies qui me motivent à apprendre..
Au lycée, j'ai fait spécialité mathématiques où j'ai vu pas mal d'algo en Python principalement, et en informatique j'ai fait du Python (sans grand intérêt, je n'avais aucune motivation à ce moment-là). Je me suis même mis à lire et écouter quelques leçons de C++, HTML, C#.. et j'ai écris du code en C++ sur Code:Blocks.

Maintenant je me pose certaines questions : en sachant tout ce que j'ai évoqué, pensez-vous que commencer avec le C++ est une bonne idée ?
Certains m'ont dit que le langage était difficile à appréhender, surtout pour un débutant, lorsque d'autres m'ont dit que c'était simple, et d'autres même m'ont dit que c'était bien de commencer avec le C++ car il s'agit d'un langage de bas niveau ce qui permet de prendre rapidement de bonnes habitudes pour mieux appréhender la suite de l'apprentissage du codage en général. Quelle est votre position là-dessus ?
Dois-je voir certaines bases peut-être avant de me lancer ? Avez-vous des conseils quelconques (je suis preneur !)
N'hésitez pas à me poser des questions pour mieux m'aider, j'ai beaucoup réfléchi à la plupart des sujets sans avoir su tout synthétiser dans ce topic..

Merci beaucoup à celles et ceux qui m'auront lu, je vous souhaite une agréable soirée/journée :-)

Sapok2an
Niveau 4
19 mai 2022 à 19:05:43

Pour 99,9% des gens il faut un prof.

Si t'as pas de prof tu ne sais pas ce que tu ne sais pas et donc ce qui est important d'apprendre, ni dans quel ordre apprendre les choses.

Si tu veux vraiment tenter l’autodidaxie tu peux regarder Open Source Society University https://github.com/ossu/computer-science
Ils ont un discord pour l'entraide.

Wonder_Star
Niveau 8
19 mai 2022 à 21:10:21

Je suis d'accord avec toi, mais du coup tu connais peut-être des formations payantes en ligne avec prof/mentor ?

Pfiou, une très longue formation à 100% en anglais, ça risque d'être vraiment chaud

bibibi60
Niveau 10
20 mai 2022 à 11:31:02

Commencer en C++ est, à mon sens, une des pires idées qu'on peut avoir. Commencer en C peut avoir du sens, même si je ne souscris pas tellement à l'hypothèse "connaître le bas niveau te rend meilleur dev sur des langages haut niveau" (très honnêtement, les "optimisations de mémoire" dans les applications écrites en Python, Java ou autre, ça reste marginal dans les améliorations possibles, y'a souvent beaucoup plus prioritaires que ça à refactoriser de mon expérience), mais alors le C++ non franchement.

Pour apprendre les bases de l'algorithmiques, du raisonnement, je m'orienterais plutôt vers des langages type Python ou Ruby (que je préfère personnellement, mais là c'est vraiment parce qu'à la base je suis arrivé sur Ruby avant les autres langages), où la syntaxe est plus proche du langage naturel et permet du coup de plus se concentrer sur la logique que sur les problèmes techniques liés au langage ou à la compilation.

Je mettrais un bémol sur Ruby quand même : la syntaxe est assez différente d'autres langages, et le savoir-faire technique acquis dans ce langage est difficile à appliquer ailleurs.

Pour les savoir-faire annexes utiles, y'en a des tas :

  • savoir imaginer et séparer des cas d'utilisation
  • savoir écrire des tests unitaires
  • savoir écrire une documentation exhaustive de ton application
  • savoir déployer ton application (idéalement automatiquement)
  • maîtriser un outil de versionnage (Git tant qu'à faire)
  • avoir de bonnes bases en conception et en architecture logicielle

Tous ces savoir-faire te permettront, une fois que tu auras des capacités à coder quelque chose, d'aller de l'idée à l'industrialisation de ton application. Cela dit, pour avoir une maîtrise suffisante de tout ça, ça demande un investissement régulier, important, pendant longtemps. On pourrait même dire que certaines personnes en font genre leur métier. Vois ce qui toi t'intéresse dans tout ça, et essaye d'avoir une vision d'ensemble histoire de comprendre un peu mieux "comment qu'on fait une application ?"

Wonder_Star
Niveau 8
20 mai 2022 à 14:20:46

(N'oublions pas que l'application est plus précisément un jeu vidéo !) Merci beaucoup de tes conseils, j'en tiendrais compte, je vois que tu as lu en entier mon message, ça me fait plaisir.

89ron
Niveau 10
20 mai 2022 à 17:40:48

Le C++ rechercher dans le monde du JV est different du C++ enseigner généralement : https://youtu.be/rX0ItVEVjHc

De plus l'air du jeux vidéo actuel à produit de nombreux Moteur de jeux (2D à 3D) qui tournent tous autour du C++, du coup il n'y a plus vraiment besoin d'en développer. Si je devais commencer à apprendre le dev jeux vidéo, aujourd'hui :
1. Je le ferais pour moi. (Le milieu professionnel est archi-boucher)
2. Je resterai au Langage C.
3. J'utiliserai les techniques issus du monde 16bits.
4. J’expérimenterais et je ne copierais pas.

Aujourd'hui des milliers de jeux vidéos Indé sortent chaque semaine et 99,99% se cassent la gueule commercialement parlant, car tous ont le même feeling. (Les devs apprennent tous les mêmes techniques, le même code et produisent la même chose au final, pire encore quand ils utilisent des moteurs tout fait c'est encore plus flagrant.) Si tu veux sortir du lot, il faut sortir des sentiers battu.

Un exemple flagrant le dev de Mario 64, avait passer des semaines sur les mouvement de Mario pour avoir le bon feeling et seulement ensuite il s'est attacher à développer le reste du jeu.

Wonder_Star
Niveau 8
20 mai 2022 à 17:46:35

Je te remercie pour tes conseils, en revanche deux points que je n'ai pas compris :
1) En quoi le fait que des moteurs de jeu soient conçus sur la base d'un certain langage rendrait l'apprentissage de ce même langage caduque ?
2) Le langage C est-il réellement plus convaincant que quelque chose comme le C# ou encore le Ruby pour ce domaine ?

Merci d'avance,
Et bon week-end à tout le monde.

89ron
Niveau 10
20 mai 2022 à 18:09:36

L'important dans un jeux vidéo, n'est pas le langage, mais l'interaction ou plus précieusement le temps entre l'input (l'appui sur une touche) et l'output (l'image générer sur l’écran), plus le temps sera court et plus le jeu aura un bon feeling. (Se démarquera de ses concurrents)

Le C est le langage qui est au plus proche de la machine, du hardware du coup aura de meilleur performance.

Le C++ est un langage qui n’a cesser d’évoluer depuis 40 ans et qui continu et son apprentissage demande d’être continuellement entretenu, le tout pour être aussi tôt oublier dans le monde du JV.

Tout dépend de la vision que l'on a du JV, soit c'est un art qui est produit par des artisans du code, soit c'est une industrie et on génère de la bouse à tour de bras. Et dans ce cas autant apprendre juste le C#, Python, lua, pour faire de la programmation haut niveau (binder les assets entre eux) sur un moteur tout prêt.

tbol
Niveau 19
21 mai 2022 à 14:55:26

Tu pourrais peut être envisager de finir ton apprentissage de la programmation en général avec Python, ça serais plus facile et plus ludique. Si tu vises les jeux vidéo alors une autre solution sympa serais de commencer en C# parce que Unity est très utilisé aussi bien en amateur qu'en pro.

Une fois que tu es à l'aise avec la programmation en général et que tu as déjà des réussites, comme des projets ou des jeux alors si tu y tiens vraiment tu peux envisager de passer quelques années de ta vie pour apprendre C++.

Le C c'est intéressant de l'étudier quelques semaines pendant les études (ingénieur par exemple) pour un point de vue de connaissance historique, mais si tu ne va pas vers la programmation systeme ou embarquée ça ne t'apportera rien de plus.

Pseudo supprimé
Niveau 5
21 mai 2022 à 15:38:14

Le 20 mai 2022 à 18:09:36 :
L'important dans un jeux vidéo, n'est pas le langage, mais l'interaction ou plus précieusement le temps entre l'input (l'appui sur une touche) et l'output (l'image générer sur l’écran), plus le temps sera court et plus le jeu aura un bon feeling. (Se démarquera de ses concurrents)

Le C est le langage qui est au plus proche de la machine, du hardware du coup aura de meilleur performance.

Le C++ est un langage qui n’a cesser d’évoluer depuis 40 ans et qui continu et son apprentissage demande d’être continuellement entretenu, le tout pour être aussi tôt oublier dans le monde du JV.

Tout dépend de la vision que l'on a du JV, soit c'est un art qui est produit par des artisans du code, soit c'est une industrie et on génère de la bouse à tour de bras. Et dans ce cas autant apprendre juste le C#, Python, lua, pour faire de la programmation haut niveau (binder les assets entre eux) sur un moteur tout prêt.

:rire:

Wonder_Star
Niveau 8
21 mai 2022 à 22:33:27

Le 20 mai 2022 à 18:09:36 :
L'important dans un jeux vidéo, n'est pas le langage, mais l'interaction ou plus précieusement le temps entre l'input (l'appui sur une touche) et l'output (l'image générer sur l’écran), plus le temps sera court et plus le jeu aura un bon feeling. (Se démarquera de ses concurrents)

Le C est le langage qui est au plus proche de la machine, du hardware du coup aura de meilleur performance.

Le C++ est un langage qui n’a cesser d’évoluer depuis 40 ans et qui continu et son apprentissage demande d’être continuellement entretenu, le tout pour être aussi tôt oublier dans le monde du JV.

Tout dépend de la vision que l'on a du JV, soit c'est un art qui est produit par des artisans du code, soit c'est une industrie et on génère de la bouse à tour de bras. Et dans ce cas autant apprendre juste le C#, Python, lua, pour faire de la programmation haut niveau (binder les assets entre eux) sur un moteur tout prêt.

Je suis vraiment navré de dire ça mais je ne comprends pas du tout le rapport avec mes propos ;
En l'occurrence je ne demande pas "comment faire un bon jeu", ce sera à moi seul d'en juger en fonction de mes idées, de mes compétences, de mon équipe etc..
Je voulais surtout savoir quel langage était le plus adéquat à apprendre en premier, dans l'optique de faire du dev de jeux vidéos (après développer une appli plus "classique" et un site web c'est carrément dans mes projets aussi, donc rien de figé, c'est juste que c'est surtout pour le jeu vidéo)
Puisque là j'ai surtout l'impression que tu me conseilles pour ne pas que je foire mon jeu indé, mais j'ai jamais dit que je voulais faire un jeu vidéo commercial, en l'occurrence d'ailleurs ce serait juste pour mon plaisir de développer et de tester avec mes amis et des membres de ma famille. Dans l'avenir pourquoi pas en faire un métier, mais c'est pas l'objectif immédiat.
On m'a d'ailleurs toujours dit que le C était au contraire, un langage haut niveau (donc plutôt éloigné de l'hardware) ; là où le C++ est le plus proche parmi les langages les plus utilisés dans le domaine du jeu vidéo..

Je te remercie quand même de tous tes messages ! N'hésite pas si tu as d'autres choses à ajouter.

Wonder_Star
Niveau 8
21 mai 2022 à 22:35:44

Le 21 mai 2022 à 14:55:26 :
Tu pourrais peut être envisager de finir ton apprentissage de la programmation en général avec Python, ça serais plus facile et plus ludique. Si tu vises les jeux vidéo alors une autre solution sympa serais de commencer en C# parce que Unity est très utilisé aussi bien en amateur qu'en pro.

Une fois que tu es à l'aise avec la programmation en général et que tu as déjà des réussites, comme des projets ou des jeux alors si tu y tiens vraiment tu peux envisager de passer quelques années de ta vie pour apprendre C++.

Le C c'est intéressant de l'étudier quelques semaines pendant les études (ingénieur par exemple) pour un point de vue de connaissance historique, mais si tu ne va pas vers la programmation systeme ou embarquée ça ne t'apportera rien de plus.

Je te remercie de ton message, j'ai l'impression que tu as également lu en entier mon long témoignage !
J'en tiendrais compte, merci beaucoup !

Que penses-tu du Ruby, par ailleurs ?

tbol
Niveau 19
22 mai 2022 à 02:23:49

Je voulais surtout savoir quel langage était le plus adéquat à apprendre en premier, dans l'optique de faire du dev de jeux vidéos.

Tu peux développer des jeux vidéos, ou apprendre la programmation avec quasiment n'importe quel langage. Par contre si tu veux créer plus facilement et plus rapidement des jeux vidéo c'est pas la question du langage que tu dois te poser c'est la question du moteur de jeux vidéo, donc exemple Unity : C# , Unreal engine : C++.

Après il y a des kits de développement de jeux vidéos avec lequel tu peux faire des jeux vidéos encore plus simplement, et quasiment même sans programmer pour certains, il faut choisir le kit dont tu as besoin en fonction du type de jeux vidéo que tu veux faire. Sur ce sujet tu peux voir ce forum si tu le connais pas déjà : https://m.jeuxvideo.com/forums/0-31-0-1-0-1-0-creation-de-jeux.htm

89ron
Niveau 10
22 mai 2022 à 10:44:00

Le 21 mai 2022 à 00:31:36 :

Le 20 mai 2022 à 18:09:36 :
L'important dans un jeux vidéo, n'est pas le langage, mais l'interaction ou plus précieusement le temps entre l'input (l'appui sur une touche) et l'output (l'image générer sur l’écran), plus le temps sera court et plus le jeu aura un bon feeling. (Se démarquera de ses concurrents)

Le C est le langage qui est au plus proche de la machine, du hardware du coup aura de meilleur performance.

Le C++ est un langage qui n’a cesser d’évoluer depuis 40 ans et qui continu et son apprentissage demande d’être continuellement entretenu, le tout pour être aussi tôt oublier dans le monde du JV.

Tout dépend de la vision que l'on a du JV, soit c'est un art qui est produit par des artisans du code, soit c'est une industrie et on génère de la bouse à tour de bras. Et dans ce cas autant apprendre juste le C#, Python, lua, pour faire de la programmation haut niveau (binder les assets entre eux) sur un moteur tout prêt.

Clown

Le C++ professionnel dans le monde du JV:
RTTI -> poubelle.
OOP -> poubelle.
STL -> poubelle.
exception -> poubelle.
virtual overload -> poubelle.
operator overlaod -> poubelle.
Template -> poubelle.

Après apprendre le Modern C++ et faire des jeux, ouai mais ça ne sera jamais aussi puissant que sous C enfin ouep osef, l'important c'est la maintenabilité du code et l’éducation, non? Bon apres allez-y le compilateur de la NDS supportait le C++11, donc ouep go apprendre le C++20, pour au final voir que 95% de ce que tu aura appris ne te servira pas, sauf a développer des outils pour les moteurs chez les éditeurs.

PS: Le C++ sous Unreal de mon expérience c'est plus proche de Java / C#, que du vrai C++. (Pas de memory management a faire, les pointeurs et objets utilisent le garbage collector du moteur.)

89ron
Niveau 10
22 mai 2022 à 11:35:26

Le 21 mai 2022 à 22:33:27 :

Le 20 mai 2022 à 18:09:36 :
L'important dans un jeux vidéo, n'est pas le langage, mais l'interaction ou plus précieusement le temps entre l'input (l'appui sur une touche) et l'output (l'image générer sur l’écran), plus le temps sera court et plus le jeu aura un bon feeling. (Se démarquera de ses concurrents)

Le C est le langage qui est au plus proche de la machine, du hardware du coup aura de meilleur performance.

Le C++ est un langage qui n’a cesser d’évoluer depuis 40 ans et qui continu et son apprentissage demande d’être continuellement entretenu, le tout pour être aussi tôt oublier dans le monde du JV.

Tout dépend de la vision que l'on a du JV, soit c'est un art qui est produit par des artisans du code, soit c'est une industrie et on génère de la bouse à tour de bras. Et dans ce cas autant apprendre juste le C#, Python, lua, pour faire de la programmation haut niveau (binder les assets entre eux) sur un moteur tout prêt.

Je suis vraiment navré de dire ça mais je ne comprends pas du tout le rapport avec mes propos ;
En l'occurrence je ne demande pas "comment faire un bon jeu", ce sera à moi seul d'en juger en fonction de mes idées, de mes compétences, de mon équipe etc..
Je voulais surtout savoir quel langage était le plus adéquat à apprendre en premier, dans l'optique de faire du dev de jeux vidéos (après développer une appli plus "classique" et un site web c'est carrément dans mes projets aussi, donc rien de figé, c'est juste que c'est surtout pour le jeu vidéo)
Puisque là j'ai surtout l'impression que tu me conseilles pour ne pas que je foire mon jeu indé, mais j'ai jamais dit que je voulais faire un jeu vidéo commercial, en l'occurrence d'ailleurs ce serait juste pour mon plaisir de développer et de tester avec mes amis et des membres de ma famille. Dans l'avenir pourquoi pas en faire un métier, mais c'est pas l'objectif immédiat.
On m'a d'ailleurs toujours dit que le C était au contraire, un langage haut niveau (donc plutôt éloigné de l'hardware) ; là où le C++ est le plus proche parmi les langages les plus utilisés dans le domaine du jeu vidéo..

Je te remercie quand même de tous tes messages ! N'hésite pas si tu as d'autres choses à ajouter.

Le C++ ne te servira pas a faire des sites web ou alors ça serait comme apprendre ce qu'il ce passe dans la chambre de combustion d'un moteur, alors que ton but c'est de démarrer une voiture.

Le problème du C++ c'est que 95% de ce que tu vas mettre a apprendre pendant X années, ne te servira pas dans le monde du JV ou du Web. Alors que 100% du C te servira pour apprendre 100% des langage tout en étant efficient. Le C n'est pas juste enseigner pour une question d'histoire, il est enseigner parce-qu’il te forme a une certaine discipline il te place dans un certain moule. Le C justement s'apprend en quelque semaines au contraire du C++ moderne qui prendra de 3 mois minimum a plusieurs années. Le C est a la base du développement actuel de quasi tout les langages actuel.

Le C est a la base de tout aujourd'hui (c'est le point commun entre quasi tout les langages), mais c'est moins facile a appréhender que du Python ou du Ruby ou du JavaScript, c'est sur.

Wonder_Star
Niveau 8
22 mai 2022 à 12:21:38

Le 22 mai 2022 à 11:35:26 :

Le 21 mai 2022 à 22:33:27 :

Le 20 mai 2022 à 18:09:36 :
L'important dans un jeux vidéo, n'est pas le langage, mais l'interaction ou plus précieusement le temps entre l'input (l'appui sur une touche) et l'output (l'image générer sur l’écran), plus le temps sera court et plus le jeu aura un bon feeling. (Se démarquera de ses concurrents)

Le C est le langage qui est au plus proche de la machine, du hardware du coup aura de meilleur performance.

Le C++ est un langage qui n’a cesser d’évoluer depuis 40 ans et qui continu et son apprentissage demande d’être continuellement entretenu, le tout pour être aussi tôt oublier dans le monde du JV.

Tout dépend de la vision que l'on a du JV, soit c'est un art qui est produit par des artisans du code, soit c'est une industrie et on génère de la bouse à tour de bras. Et dans ce cas autant apprendre juste le C#, Python, lua, pour faire de la programmation haut niveau (binder les assets entre eux) sur un moteur tout prêt.

Je suis vraiment navré de dire ça mais je ne comprends pas du tout le rapport avec mes propos ;
En l'occurrence je ne demande pas "comment faire un bon jeu", ce sera à moi seul d'en juger en fonction de mes idées, de mes compétences, de mon équipe etc..
Je voulais surtout savoir quel langage était le plus adéquat à apprendre en premier, dans l'optique de faire du dev de jeux vidéos (après développer une appli plus "classique" et un site web c'est carrément dans mes projets aussi, donc rien de figé, c'est juste que c'est surtout pour le jeu vidéo)
Puisque là j'ai surtout l'impression que tu me conseilles pour ne pas que je foire mon jeu indé, mais j'ai jamais dit que je voulais faire un jeu vidéo commercial, en l'occurrence d'ailleurs ce serait juste pour mon plaisir de développer et de tester avec mes amis et des membres de ma famille. Dans l'avenir pourquoi pas en faire un métier, mais c'est pas l'objectif immédiat.
On m'a d'ailleurs toujours dit que le C était au contraire, un langage haut niveau (donc plutôt éloigné de l'hardware) ; là où le C++ est le plus proche parmi les langages les plus utilisés dans le domaine du jeu vidéo..

Je te remercie quand même de tous tes messages ! N'hésite pas si tu as d'autres choses à ajouter.

Le C++ ne te servira pas a faire des sites web ou alors ça serait comme apprendre ce qu'il ce passe dans la chambre de combustion d'un moteur, alors que ton but c'est de démarrer une voiture.

Le problème du C++ c'est que 95% de ce que tu vas mettre a apprendre pendant X années, ne te servira pas dans le monde du JV ou du Web. Alors que 100% du C te servira pour apprendre 100% des langage tout en étant efficient. Le C n'est pas juste enseigner pour une question d'histoire, il est enseigner parce-qu’il te forme a une certaine discipline il te place dans un certain moule. Le C justement s'apprend en quelque semaines au contraire du C++ moderne qui prendra de 3 mois minimum a plusieurs années. Le C est a la base du développement actuel de quasi tout les langages actuel.

Le C est a la base de tout aujourd'hui (c'est le point commun entre quasi tout les langages), mais c'est moins facile a appréhender que du Python ou du Ruby ou du JavaScript, c'est sur.

Oook d'aaccord je comprends mieux où tu veux en venir.. je vais en tenir compte, c'est très intéressant je trouve
Merci encore !

lokilok
Niveau 10
22 mai 2022 à 13:38:13

[10:44:00] <89ron>
Le C++ professionnel dans le monde du JV:
OOP -> poubelle.
operator overlaod -> poubelle.
Template -> poubelle.

Pour quelle raison ? Le reste je comprends que ca a des impacts au runtime, donc quand on a un besoin de performance très élevé on évite, mais ça je vois pas.

Wonder_Star
Niveau 8
23 mai 2022 à 15:58:23

J'ai l'impression que le débat est assez houleux, et qu'il n'y a pas de "vraie bonne réponse" à ma demande.
Je remercie tous ceux qui m'ont répondu, j'ai commencé mon apprentissage, mais je reste toujours tout ouï à vos avis et retours d'expérience :)

1
Sujet : Commencer la programmation (débutant)
   Retour haut de page
Consulter la version web de cette page