Lequel des 2 est le mieux pour debuté en programmation svp ? ![]()
Le C
Les 2, mais C++ > C
Le C. C'est plus simple et plus central que le Python.
C plus simple que Python. ![]()
Python a une syntaxe plus simple je dirais mais j'aurai commencé par C perso ![]()
Tu veux des bonnes bases pour poursuivre avec d'autres langages -> C
Tu veux pas être dégouté de la programmation -> Python
C/C++ pour start ![]()
Que ce soit soit au niveau syntaxique, algorithmique, ou théorique, le C est plus simple que le Python./
Le python est plus simple pour débuter, il permet une abstraction du bas niveau (gestion de mémoire et tout ) ce qui permet de plus se préocupper de la resolution de problème.
Personnelement j'ai commencé par du c, je suis passé au python ensuite et je me suis rendu compte que c'est ce que j'aurait du faire depuis le début pour apprendre la programmation
Et puis, mes profs de fac sont aussi de l'avis que le c est assez délicat pour commencer (pour ca qu'ils ont choisit python pour la l1
)
Dans le python, il y a quand même certain aspects "compliqués", que ça soit les générateurs, gestionnaires de contexte et autres, et tout ce qui est fonctionnel (les décorateurs par exemple, c'est quand même pas évident).
Après, avis personnel, on peut faire très vite, des choses très illisibles.
Le C biensûr
J'ai eu ma période genre "j'aurais trop du apprendre python avant c'est génial"
Mais en fait non. Je me suis retrouvé la plupart des fois à faire des copier-coller car l'api est infame, le typage ignoble, la lisibilité hardcore, je parle même pas des versions 2.7 et 3.X qui se mélangent sur la toile.
Par contre j'avoue que j'ai codé un début de mini projet très rapidement par rapport à si j'avais du le faire en C.
Je parle d'une expérience personnelle qui à durée en gros 3 semaines.
Le C c'est un peu l'inverse, mode "putain c'est horrible de coder comme ça, faut TOUT gérer", puis on fini par s'y habituer et on en ressort "grandi".
Après tu as surement moyen de passer au C++ pour te "simplifier la vie" quand tu sera à l'aise en C.
heu le python est peut etre plus simple mais le C te servira tellement plus ... sinon perso je te conseil le java ![]()
"Le python est plus simple pour débuter, il permet une abstraction du bas niveau (gestion de mémoire et tout ) ce qui permet de plus se préocupper de la resolution de problème."
bel exemple de discours naïf.
1. Tu peux faire du C pendant très longtemps (tout un semestre) sans gérer la mémoire (hint: se contenter de manipuler des tableaux définis statiquement).
2. Quand le but est de se consentrer sur la résolution du problème, alors on fait de l'algorithmique et non de la programmation (et donc c'est hors sujet pour le choix du langage).
3. En faisant trop abstraction de la mémoire, on perd la notion des passages d'arguments par valeur/copie/référence. Or il s'agit là de quelque chose d'important si on veut passer d'un algorithme à un code de façon correcte et efficace.
Par ailleurs, la situation est beaucoup plus claire en C qu'en Python (et je trouve qu'elle est encore plus claire en C++, mais ce dernier a d'autres défauts qui font que je suggère de commencer plutôt par du C).
Quant à Java, c'est pire que tout (il cumule les défauts du C et du Python :
environnement pas trivial à prendre en main (comme pour le C)
POO (= difficulté théorique inutile pour les débuts)
abstraction de la mémoire trop importante
gourmand en ressources et performances limitées
Chris_27
Posté le 8 août 2013 à 19:14:50
"Le python est plus simple pour débuter, il permet une abstraction du bas niveau (gestion de mémoire et tout ) ce qui permet de plus se préocupper de la resolution de problème." bel exemple de discours naïf.
1. Tu peux faire du C pendant très longtemps (tout un semestre) sans gérer la mémoire (hint: se contenter de manipuler des tableaux définis statiquement).
2. Quand le but est de se consentrer sur la résolution du problème, alors on fait de l'algorithmique et non de la programmation (et donc c'est hors sujet pour le choix du langage).
3. En faisant trop abstraction de la mémoire, on perd la notion des passages d'arguments par valeur/copie/référence. Or il s'agit là de quelque chose d'important si on veut passer d'un algorithme à un code de façon correcte et efficace.
Par ailleurs, la situation est beaucoup plus claire en C qu'en Python (et je trouve qu'elle est encore plus claire en C++, mais ce dernier a d'autres défauts qui font que je suggère de commencer plutôt par du C).
1.Le c sans la gestion de mémoire c'est quand même pas mal limité.
2.Oui mais c'est mieux de pouvoir implementer les algos que l'on fait dans un langage pour pouvoir tester (et ca sera plus facile en python qu'en c ).
3. Du moment que c'est précisé dans le tuto, ya aucun problème.
Deplus, pour des mini projet, ca prendra beaucoup moins de temps à réaliser en python qu'en c, et ca pour la motivation quand on est débutant c'est vraiment important
Aprés j'ai eu aussi dans ma promo des gens qui venaient d'autre fac et qui n'avait quasiment rien compris en c alors qu'en python dans ma fac, ca se passait super bien pour eux ![]()
"1.Le c sans la gestion de mémoire c'est quand même pas mal limité. "
Tant mieux... ça permet d'apprendre les bases avant de s'attaquer à la gestion de la mémoire. Plutôt pratique, non ?
"2.Oui mais c'est mieux de pouvoir implementer les algos que l'on fait dans un langage pour pouvoir tester (et ca sera plus facile en python qu'en c ). "
Premièrement, on ne met pas la charrue avant les boeufs : on résout d'abord le problème algorithmiquement, et ensuite on le traduit. Le langage n'a pas à imposer de contrainte à l'algorithme.
Deuxièmement, c'est bien plus simple de traduire vers du C qui est plus riche en structures de contrôle, et surtout qui fournit la structure de tableau (beaucoup plus présente dans les algorithmes de base que les listes).
Précision : un code plus court n'est pas forcément un code plus facile à écrire.
"3. Du moment que c'est précisé dans le tuto, ya aucun problème. "
je parle pédagogie moi. Ne réduis pas ça à un vulgaire tuto (surtout s'il vient d'un site en 3 lettres dont je tairais le nom).
"De plus, pour des mini projet, ca prendra beaucoup moins de temps à réaliser en python qu'en c"
Je n'en doute pas. On se pose moins de question en python, donc ça va plus vite ... et on apprend moins.
Oui, la motivation est importante. Mais celui qui veut absolument aller au plus vite n'a clairement pas assez de motivation.
"Aprés j'ai eu aussi dans ma promo des gens qui venaient d'autre fac et qui n'avait quasiment rien compris en c alors qu'en python dans ma fac, ca se passait super bien pour eux"
prouve-le. ![]()
C'est très français d'essayer de trouver des justifications à ses échecs. C'est aussi très français de se lancer dans des études avant de savoir si c'est la bonne voie.
C'est mon ressenti aussi que Python est apprécié par les frustrés de l'info.
Avec Python on apprend moins de choses, mais qui te dit qu'il veut pas se concentrer sur l'algorithmique ?
Et puis c'est aussi plus facile d'apprendre des choses quand on les a déjà vues.
"mais qui te dit qu'il veut pas se concentrer sur l'algorithmique ? "
Il demande un langage, donc je compose avec ça. Et puis j'ai déjà dit pourquoi je trouvais plus facile de traduire un algorithme basique en C plutôt qu'en Python.
"Premièrement, on ne met pas la charrue avant les boeufs : on résout d'abord le problème algorithmiquement, et ensuite on le traduit. Le langage n'a pas à imposer de contrainte à l'algorithme.
Deuxièmement, c'est bien plus simple de traduire vers du C qui est plus riche en structures de contrôle, et surtout qui fournit la structure de tableau (beaucoup plus présente dans les algorithmes de base que les listes).
Précision : un code plus court n'est pas forcément un code plus facile à écrire."
Euh, que ca soit pour les algos de tri de tableau ou autre, ya jamais eu aucun probleme à implementer ca facilement en python (et le fait que les listes soit à taille dynamique sans que l'on ai à s'en occuper ainsi que les methodes bien pratiques associés rendent ca clairement plus simple pour certains algorithme ![]()
Quand au structures de contrôle, à part le do while qui manque en python, et le for each qui n'est pas présent en c, je ne voit pas de grandes differences
""De plus, pour des mini projet, ca prendra beaucoup moins de temps à réaliser en python qu'en c" Je n'en doute pas. On se pose moins de question en python, donc ça va plus vite ... et on apprend moins."
On apprend pas moins mais on apprend des choses différentes, le fait de ne pas avoir à se poser tout un tas de questions sur le bas niveau en python permet d'utiliser ce temps pour apprendre d'autre choses de plus haut niveau. Deplus, le python permet d'experimenter pas mal de choses beaucoup plus rapidement et facilement.
""Aprés j'ai eu aussi dans ma promo des gens qui venaient d'autre fac et qui n'avait quasiment rien compris en c alors qu'en python dans ma fac, ca se passait super bien pour eux" prouve-le.
C'est très français d'essayer de trouver des justifications à ses échecs. C'est aussi très français de se lancer dans des études avant de savoir si c'est la bonne voie."
Non c'etait pas de trouver des justification à leur échec, c'est juste leur ressenti sur les cours et les langages utilisés.
(et non ils ne parlaient pas des structures de controles ou des variables de bases qui restent quasiment les mêmes dans les deux langages mais des choses un peu plus compliqué et surtout de l'implémentation des algos).