bonjour,
je débute en C, et j'aimerais être bon en programmation.
Comment peut-on s'entraîner en programmation ?
avez-vous des conseils à me donner, svp ?
merci.
Version imprimable
bonjour,
je débute en C, et j'aimerais être bon en programmation.
Comment peut-on s'entraîner en programmation ?
avez-vous des conseils à me donner, svp ?
merci.
Eteindre l'ordinateur + un papier + un crayon + un bon livre l'algorithmique ;)
Thierry
un livre d'algorithmique ?
la programmation, ce n'est pas écrire des fonctions en C.
Qu'est-ce que c'est que l'algorithmique ?
Est-ce qu'il y a des sites qui proposent des cours d'algorithmique ?
Quelle livre me conseilles-tu ?
merci.
http://www.developpez.net/forums/sho...d.php?t=307094
Je suis peut-être un peu dûr là. En parallèle de l'algo, tu peux choisir un premier langage avec lequel commencer la programmation. Pascal, Ada, OCaml, Python sont de bons choix selon moi. C n'est pas le langage le plus approprié comme 1er langage, même si j'ai débuté avec ce langage. Enfin, tu trouvera plus d'infos ici:
- http://www.developpez.net/forums/showthread.php?t=79
- http://www.developpez.net/forums/sho...d.php?t=365939
- http://www.developpez.net/forums/sho...d.php?t=366762
Thierry
Je dirais : Eteindre l'ordinateur + un papier + un crayon + un bon livre de C. D'accord, le C n'est pas un langage à la portée des débutants, mais on peut apprendre le C et en parallèle l'informatique. Pour ma part, j'ai appris 4 langages de programmation différents avant de découvrir l'algorithmique, mais je n'ai eu aucun problème. Personnellement, je défends l'idée selon laquelle il est préférable d'apprendre un ou deux langages de programmation avant de s'intéresser à l'algorithmique. Je parle bien d'algorithmique, c'est-à-dire l'étude des algorithmes, pas de la "programmation" en pseudo-langage, le langage utilisé en algorithmique pour être totalement indépendant d'un langage de programmation particulier, qui devient évident si l'on maîtrise un vrai langage de programmation (l'inverse m'étonnerait). En résumé, il ne faut pas confondre l'apprentissage d'un langage de programmation et l'apprentissage de la programmation. Ce que j'ai dit est valide si on veut apprendre un langage de programmation avant d'apprendre à programmer, comme le souhaite space_56 je suppose.Citation:
Envoyé par Thierry Chappuis
Tu peux apprendre un langage de ton choix avant d'apprendre l'algorithmique comme je viens de le dire. Sache cependant que le C suppose que le programmeur n'est pas un débutant en matière d'informatique (si tu ne sais pas ce que c'est que la mémoire, un shell et un système d'exploitation, oublie le C). Tu trouveras des cours de langage C sur ce site. Google est aussi ton ami.Citation:
Envoyé par space_56
Perso je dirai plutôt qu'avant de commencer à apprendre un langage de programmation il faut avoir des bases tel que savoir ce qu'est un test, une boucle, un type, un tableau, etc... c'est pour cela que l'algorithmique est indispensable car une fois l'algorithme écrit on peut le traduire dans n'importe quel langage de prog la démarche sera pratiquement tout le temps la même (on est pas à l'abri des exceptions d'un langage ex: Scheme qui n'a aucun typage). Et si tu veux apprendre un langage de programmation rien ne vaut la pratique sur l'ordinateur ainsi qu'un bon livre ou tuto:mouarf:
Moi je trouve cependant que c'est en apprenant un langage de programmation qu'on apprend ces choses. Quelle est la différence entre apprendre à écrire un Si ... Sinon ... FinSi (pseudo-langage, et Windev aussi je crois ...) et if ... else ... endif par exemple ? Les vrais langages ne sont pas plus compliqués que le pseudo-langage (ils sont même encore plus simples ! car plus proches de la réalité).Citation:
Envoyé par snake264
La même chose, une fois le programme écrit dans n'importe quel langage de programmation, il est facile de le traduire dans un pseudo-langage.Citation:
Envoyé par snake264
Normal, les pseudo-langages que nous utilisons la plupart du temps en algorithmique sont orientés programmation impérative (procédural ou orienté objets) et non liste ou programmation fonctionnelle ...Citation:
Envoyé par snake264
C'est vrai tu as aussi raison mais cette question est je trouve en fonction du point de vue de chaque personne, il y a des gens qui préfèreront commencer les bases de l'algorithmique, et d'autres vont tout de suite apprendre avec un langage quelconque. Mais moi on m'a toujours appris qu'un programme passait toujours par du papier et un crayon à écrire les algorithmes en pseudo-code, à faire les schémas, etc.. et ensuite une fois que tout est terminé passer à l'écriture dans un langage. C'est pour cela que j'ai dis de commencer par de l'algo mais rien n'empeche d'apprendre en même temps un langage. Ceci dépend de la personne.;)
La différence fondamentale est dans la place qu'on accorde au langage et à l'étape du codage proprement dit dans la résolution d'un problème. Je constate, dans ma pratique professionnelle, que beaucoup d'étudiants abordent un problème (de programmation) en se ruant sur le codage. Or cette étape n'est pas une fin en soi, elle n'est qu'un moyen d'expliquer pas par pas à l'ordinateur la marche à suivre pour résoudre le problème donné. Les étapes de spécification du problème (QUOI?) et de conception (COMMENT?) sont à mon avis au centre d'un projet de programmation. L'algorithmique intervient au niveau de la conception. Une fois que l'étudiant a réfléchit et définit ce que doit faire son programme et qu'il a défini une architecture (ou au moins une esquisse), et qu'il a spécifié les algorithmes à implanter (que ce soit en pseudo-code ou en français), l'étape du codage est finalement relativement directe (bien que pas nécessairement triviale).
Dès lors, des phrases telles que "Je dois coder un répertoire téléphonique en C" ou "J'ai un projet Matlab..." n'ont pas de sens, car c'est le rôle des phases de spécification et de conception de débroussailler le terrain et d'aider au choix de l'outil le plus approprié pour la tâche à réaliser. Dans la pratique, l'étudiant utilisera le langage qu'il connaît ou celui qui lui est imposé dans la donnée du devoir, mais c'est un autre problème...
Thierry
:king: Tu as bien résumé ce que j'ai essayé de dire depuis tout ce temps. C'est c*n que je n'ai pas pu m'exprimer aussi simplement :mouarf:.Citation:
Envoyé par snake264
Tout ce que tu dis est vrai. Cependant, l'apprentissage d'un langage avant d'aborder l'algorithmique, les méthodes de conception, etc. peut être aussi une motivation pour l'étudiant, puisque ça amorti en quelque sorte la théorie. Il faut donc savoir faire un bon compromis. Et concernant le répertoire téléphonique, il faudra quand même un jour se décider si on va le faire en C ou en Matlab ;).Citation:
Envoyé par Thierry Chappuis
Non Thierry a raison, et il suffit de regarder les posts ici-meme pour se rendre compte a quel point c'est une lacune grave de ne pas avoir appris a REFLECHIR avant de coder.....
L'apprentissage essentiel est celui de la logique/organisation de pensee.
Ensuite, on passe a "Qu'est-ce que je veux faire ?", puis "comment ?", tout cela uniquement en pensee et papier et crayon.
Seulement apres on passe au codage, en ayant ou non le choix du langage.
Mais "Faire un programme de dessin" se decompose en taches elementaires QUEL QUE SOIT le langage et l'outil graphique. La meme chose pour du traitement d'image, pour un site, etc etc...
Je peux éventuellement conseiller d'accompagner l'étude des algorithmes fondamentaux avec l'apprentissage d'un langage tel que Python qui, par son haut niveau et par sa simplicité, peut être assimilé dans cette situation à une sorte de pseudo-code exécutable. Ceci laisse le temps de ce concentrer sur les détails du QUOI et du COMMENT en évitant d'avoir à se proccuper des détails d'implantation de bas niveau.
Thierry
C'est pas grave on peut pas toujours pensé à tout, sa arrive à tout le monde;)et je dirai même surtout à moi:aie:
+1 je suis entièrement d'accord, python est un très bon langage de programmation de par sa simplicité qui permet de ne pas trop ce prendre la tête avec les subtilités d'un langage tel que le C ou autres et ainsi mieux se préocupper de la démarche de l'algo.