Bonjour alors voilà je debute en programmation et pour l'instant on apprend du C++ ! On vient d'apprendre les tableau 1D et 2D donc bon je suis pas si loin que ca mais jai deja beaucoup de difficulté !
Vous auriez une méthode pour apprendre plus vite et bien ? Parceque je veut pas avoir trop de retard la !
Je suis à votre écoute pour tout conseils
Programmer des projets par toi même, par exemple des petits jeux 2D c'est le mieux.
C'est pas un peu trop difficile ça pour un début ? Je vais essayer quand même si sa peut m'aider mais pour me sortir du pétrin lorsque je bloque je fait comment ?
stackoverflow
Essaye de chercher sur internet. Par exemple si ton compilateur te donne une erreur que tu ne comprends pas cherche le message d'erreur sur internet ça pourrait te permettre d'où vient ton problème
Le mieux est effectivement de programmer des jeux, et peut-être avant/pendant suivre un tutoriel qui enseigne quelques bases
Après le C++ peut être relativement complexe car c'est probablement un des langage les plus riches à ma connaissance (si ce n'est le langage) ; il requiert presque la maitrise du C, avec une surcouche orientée objet qui peut être complexe. Je ne suis pas spécialiste C++ je précise Après apprendre les bases c'est pas beaucoup plus compliqué que pour un autre langage
Mais faire un petit jeu en 2D (morpion, démineur, snake, etc) c'est le must pour apprendre, même si ça peut impliquer d'apprendre une bibliothèque graphique - et donc pour un débutant de devoir s'accrocher. Mais crois moi quand on voit qu'on peut maitriser des petits carrés sur l'écran on apprend rapidement
Le 17 octobre 2017 à 22:03:44 Aygo-69 a écrit :
C'est pas un peu trop difficile ça pour un début ? Je vais essayer quand même si sa peut m'aider mais pour me sortir du pétrin lorsque je bloque je fait comment ?
si tu ne vois pas trop par où commencer / comment structurer ton programme / d'éventuels algorithme, je pense que ce topic est fait pour ça Par contre c'est à toi de voir comment retranscrire tout ça en code en étant le plus autonome possible
D'accord je vais suivre tout vos conseils le plus possible et je compterais sur vous pour me venir en aide quand je bloquerait vraiment même en recherchant ou quoi
Encore merci ! J'espère vite progresser
Et c'est ou ou on vous propose C++ comme premier langage ?
En L1 Mathématique-Informatique
Pourquoi c'est trop tôt ?
Ce lancer dans le C++ en premier langage sans la bonne pedagogie c'est suicidaire et aller trop vite c'est un coup a te faire arretter la programmation.
Dis toi que la pluspart des classes en premiere annees tu as 90% des eleves qui ont du mal avec les tableaux a 2 dimensions et là on parle de ceux qui font de la programmation imperative avec java/python en IUT.
Vu que vous etes ou tableau 1D et bientot 2D c'est que vous n'avez pas vu encore la programation orientee objet, bref votre prof vous fait faire du C avec un compilateur C++ tout au plus.
Vu sa pedagogie, a tout les coup c'est du vieux C++ de papa qui n'as pas ete mise a jour depuis au moins 20 ans et qui ne respecte meme pas les standard actuels.
Le C++ comme le C demande une tres tres bonne conaissance de l'architecteure PC sinon c'est mort de chez mort tu vas etre perdu dans la richesse de ce langage.
Commencer a programmer des jeux maintenant ? Euh non clairemant non... sauf des jeux textuels sous la console DOS en affichant des chaines de caracteres mais pas plus, sauter les etapes en C++ c'est ce degouter du langage.
Tu veux progresser vite et bien :
1. Tu es perfectioniste et anglophone : Deniche toi la derniere edition de "Programming: Principles and Practice Using C++" de Bjarne Stroustrup (le createur du C++), avec ca tu vas remetre ton prof a sa place et decrocher la note maximal. (Et pourtant c'est un livre pour debutant)
2. Tu es anglophobes et tu aimes te prendre la tete : Programmer en langage C++, 9e édition de Claude Delannoy.
(Et apprend l'anglais sinon tu n'iras pas loin)
3. Tu veux rater ta carriere professionnel : Openclassrom.
PS: L1 Mathematique-Informatique, c'est clairement trop tot a moins d'avoir de bonne base en alogrithmie et une tres bonne conaissance de l'architecture PC, sans ces prerequis faire du C++ c'est tout aussi efficasse que de developper en Python.
Je sais pas trop si c'est bien ou pas mais de toute façon j'ai pas trop le choix si je veut passez cette année après c'est vrai que on commence à peine et on va à une vitesse c'est beaucoup trop...
On a bien fait les tableau en 2D, on a fait en 1D et 2D sur le même cour !
Puis j'ai l'impression que le C/C++ est un langage très important et très utilisé donc bon je peut pas trop me laisser allé et prendre trop de retard !
J'ai regardé les éditions que tu m'a proposer, je vais m'en servir merci
89ron T'abuse un peu, c'est toujours mieux de commencer avec un langage de programmation carré qu'avec du Python par exemple de toute façon (après c'est les goûts et les couleurs, je ne dis pas que Python n'a pas son utilité)
Maintenant faut sans doute être un peu plus motivé pour commencer par du C++, même si je suis d'accord autant commencer par bien maitriser le C, quoique certains diront que ça donnera de mauvaises habitudes pour la POO ?
Mais je crois que l'OP veut juste apprendre la programmation à son niveau, pas devenir un crack tout de suite
Par contre qu'entends-tu quand tu dis "Le C++ [...] demande une tres tres bonne connaissance de l’architecture PC" ? Par ce que je suis désolé mais pour moi les notions de base requises sont loin d'être si compliquées (rôle des différents composants du PC, heap, stack, interface de programmation et sécurité de l'OS, etc)
Le 18 octobre 2017 à 16:08:04 Aygo-69 a écrit :
Je sais pas trop si c'est bien ou pas mais de toute façon j'ai pas trop le choix si je veut passez cette année après c'est vrai que on commence à peine et on va à une vitesse c'est beaucoup trop...On a bien fait les tableau en 2D, on a fait en 1D et 2D sur le même cour !
Ce n'est pas forcement etonnant. La fac ca va vite.
Le conseil de regarder des petits jeux a du sens. Ca marche assez bien en pratique. Lapintade avait developpe NGCK a cet effet: https://m.jeuxvideo.com/forums/1-31-8582917-1-0-1-0-c-methode-ngck-exercices-debutants.htm
Il y a plein de jeu simple qui sont facil a ecrire. En jeux de tableau: morpion, dame. En jeu video, snake n'est pas particulierement difficile.
Puis j'ai l'impression que le C/C++ est un langage très important et très utilisé donc bon je peut pas trop me laisser allé et prendre trop de retard !
C'est a peu pres le seule langag de bas niveau qui valle la peine d'etre appris.
Le C++ est un langage particulier puisqu'il fait a la fois du bas et du haut niveau et c'est un langage qui c'est enrichi depuis 40 ans, avec des refontes majeurs ces dernieres annees.
Le problemes c'est que dans les cursus du public il est toujours aussi mal enseigner, exemple les pointeurs en premiere annees (ce qui oblige d'avoir des connaissance importante en architecture PC) devrait etre interdit a moins de vouloir casser de l'etudiant. (C'est comme si tu devait apprendre tout d'abord la reaction chimique du moteur a explosion, pour enfin arrvier a faire demarrer ta voiture)
Juste en retirant les raw pointeurs et en utilisant la STL des les premiers cours le C++ devient aussi simple que du Java en gardant toute ca puissance : https://www.youtube.com/watch?v=YnWhqhNdYyk
Bah la simple notion de heap / stack, la pagination, le linkage c'est pas clair souvent pour des personnes avant plusieurs annees, les temps d'acces a la cache, etc. + la localité des variables etc, les concepts d'interblocage... etc.
Bon, j'ai hesite longtemps a repondre a 89ron. Mais finalement, je pense que ca en vaut la peine.
Ce lancer dans le C++ en premier langage sans la bonne pedagogie c'est suicidaire et aller trop vite c'est un coup a te faire arretter la programmation.
Mouais, ca je suis d'accord.
Dis toi que la pluspart des classes en premiere annees tu as 90% des eleves qui ont du mal avec les tableaux a 2 dimensions et là on parle de ceux qui font de la programmation imperative avec java/python en IUT.
En meme temps que ca soit en C++ ou en java python, ce n'est pas tres different.
Vu que vous etes ou tableau 1D et bientot 2D c'est que vous n'avez pas vu encore la programation orientee objet, bref votre prof vous fait faire du C avec un compilateur C++ tout au plus.
En meme temps, c'est comme ca que tu apprends le C++. Tu pars des constructions les plus simples et tu montes en abstraction.
Vu sa pedagogie, a tout les coup c'est du vieux C++ de papa qui n'as pas ete mise a jour depuis au moins 20 ans et qui ne respecte meme pas les standard actuels.
La tu supposes un peu quand meme non ? En plus, les standard de 97 fonctionnent toujours aujourd'hui. Et encore une fois, tu commences toujours comme ca. Tu parles d'imperatif comme tu le ferais en C, tu montes en objet avec les moves constructors. Apres tu parles de template et tu parles d'auto et de lambda (tu pourrais le faire avant, mais ce n'est pas super utile avant) en meme temps que tu parles de structures de donnees et d'abstraction de type. A un moment tu parleras d'exception.
Le C++ comme le C demande une tres tres bonne conaissance de l'architecteure PC sinon c'est mort de chez mort tu vas etre perdu dans la richesse de ce langage.
Heu... non. Tu n'as pas besoin de savoir comment marche le decodage d'instruction dans un processeur, caching, dma pour comprendre le langage.
Commencer a programmer des jeux maintenant ? Euh non clairemant non... sauf des jeux textuels sous la console DOS en affichant des chaines de caracteres mais pas plus, sauter les etapes en C++ c'est ce degouter du langage.
Bah bien sur que si. J'ai ecrit des jeux en premiere annee. Naturellement il faut un peu de scaffolding. Mais ce sont de tres bon exercice. Lapintade avait ecrit NGCK et ca marche du feu de dieu.
PS: L1 Mathematique-Informatique, c'est clairement trop tot a moins d'avoir de bonne base en alogrithmie et une tres bonne conaissance de l'architecture PC, sans ces prerequis faire du C++ c'est tout aussi efficasse que de developper en Python.
Ca veut dire quoi "efficace de faire du C++"? Tu te poses la mauvaise question (comme tous les gens qui pensent etre meileur prof que les prof.) Tu ne te poses pas al question de pourquoi ils font du C++ et pas autre chose. Pour commencer a apprendre le langage n'est pas important. Si tu regardes la litterature pedagogique, ils sont a peu pres tous d'accord. Si tu ne comprends vraiment rien, un langage comme alice ou scratch sont de tres bonne introduction. Apres ce qui est important c'est de prendre un langage et de rester un peu dessus.
Le choix du langage originel depend souvent de ce qui va etre fait dans le cours d'apres. Si le cours d'apres c'est architecture, alors tu veux que les etudiants aient fait du C (ou C++, quasiment personne ne fait purement que du C de nos jours de toute facon). Parcequ'ils vont pouvoir compiler leur C vers de l'assembleur MIPS pour comprendre comment marche un processeur au niveau utilisateur. Si le cours d'apres c'est systeme d'exploitation, la encore tu vas vouloir qu'ils aient fait du C pour qu'ils puisse regarder les appels systemes UNIX, peut etre lire des petits bout du kernel linux. Ou peut etre faire du MINIX.
Si le cours d'apres c'est analyse de donne. La clairement du python ca aurait ete mieux.
Vu la popularité du C++ a l'heure d'aujourd'hui la pedagogie dite ascendante c'est avairé totalemant desastreuse, ce qui a obliger ces fondateurs a quasiment changer de nom : Modern C++.
Quand je dit aussi efficasse que Python, bon c'etais un chouilla exagerrer, je l'avoue.
Mais bon si la complexité de ces algorithmes est comme tout developpeur qui n'as pas conscience de ces notions, est souvent catastrophique O(N^2), etc.
Par exemple, la fameuse double boucle imbriquer
Les mecs qui font des boucles de code qui tape directement dans le tas ( heap ), bonjour la geule des temps d'acces... (bah oue dans ce cas vaux mieux commencer en python, d'ailleurs c'est ce qui ce fait au MIT il me semble pour les L1)
Les deux seules raison pour lesquels sont prof fait du C++ :
1. C'est comme ca qu'il as appris et bah il as pas envie de se mettre a jour. (Et si cela a marcher pour lui de cette maniere, les autres doivent en faire tout autant, sinon ils n'ont pas leur place dans son cour.)
2. Il ne connait surement qu'une seule ou deux librairie qu'il utilise chaque jour dans son lab de recherche et qu'il souhaite transmettre au cour de l'annee.
Bah la simple notion de heap / stack, la pagination, le linkage c'est pas clair souvent pour des personnes avant plusieurs annees, les temps d'acces a la cache, etc. + la localité des variables etc, les concepts d'interblocage... etc.
Je trouve ça un peu abusif, alors je reconnais que moi même je suis loin de connaître tout ça, mais il ne me semble pas par exemple que connaitre le mécanisme de pagination de la mémoire soit nécessaire pour programmer "correctement" en C++, vu que l'OS s'occupe justement de rendre cela invisible. Nul doute que quand on fait de grands projets vraiment complexes c'est nécessaire, mais ça, c'est plus l'expérience professionnel qui le donnera plus tard.
Pareil la localité des variables je ne sais pas comment c'est implémenté par l'OS / le compilo (bien que je me suis souvent posé la question), mais pour le coup ça n'empêche pas de programmer correctement en faisant attention à leur portée
Le 18 octobre 2017 à 17:35:15 89ron a écrit :
Les mecs qui font des boucles de code qui tape directement dans le tas ( heap ), bonjour la geule des temps d'acces... (bah oue dans ce cas vaux mieux commencer en python, d'ailleurs c'est ce qui ce fait au MIT il me semble pour les L1)
Tu parles en C++ ?
Par contre quand j'ai regardé en Python, j'ai vu qu'à chaque fois qu'on faisait un i += 1 ça recréait une variable Ma petite expérience de programmeur en C m'empêche du coup de vouloir utiliser ce langage (même si je me doute qu'en fait ça changera pas grand chose pour des petits projets que je peux faire)
Merci beaucoup pour les petits jeux d'entd'entraînement de Lapinade c'est très utile ! Je vais utiliser ça je pense !
Parcontre je comprend tellement rien à ce que vous raconter j'ai l'impression d'être a des années lumière de ça
Parcontre notre prof je pense vraiment pas qu'elle n'y connaisse pas grand choses sachant que la totalité de nos PROF sont des CHERCHEURS
Dites moi c'est long à progresser ou pas ?
En L1 tant que tu n'as pas de bonne notion d'algorithmie, tu programmeras aussi mal en Python qu'en C++ et c'est pas la centaine d'instruction suplementaire du i += 1 de Python qui ferra la difference. La seule difference c'est qu'avec l'un tu aurs les petites roues et pas l'autres.
Le C++ avec la pedagogie ascendante c'est comme la selection des Ninja à la naissance : On prend le bébé et on le jette dans le puits, s'il ne coule pas il fera l'affaire.