|
Publicité ' | ||||||||||||||||||||||||
|
|
#181 |
|
Inactif
![]() Inscription : octobre 2004 Messages : 3 894 ![]() |
En relisant, je devrais dire "moi aussi"... Heureusement, mon assembleur Z80 et mon Basic Locomotive sont rouillés, parmi d'autres langages que j'ai eu maîtrisé à une époque...
Ceci étant dit : se rappeler des adresses des vecteurs d'interruption de l'Amstrad CPC 20 ans après, ça vaut combien de points dans le compteur de psychopathie ?
|
|
|
00
|
|
|
#182 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 9 ![]() |
Pour aller dans une toute autre direction justement : l'avantage de l'informatique moderne, contrairement à celle d'il y a 20 à 40 ans, c'est que les langages sont puissants, et permettent très facilement à un débutant de découvrir les principes algorithmiques (qui sont les plus importants pour _débuter_) tout en ayant un résultat séduisant !
Et pour cela, rien de mieux qu'un langage qui permette très aisément des résultats animés, riches, interactifs. Comme par exemple Scratch : http://scratch.mit.edu/ Extrêmement haut niveau, mais ça permet facilement un résultat riche, et une approche directe des problématiques de programmation. Débuter par le C, pour faire ce qui plaît le plus aux débutants, un jeu, c'est une vraie gageure (pareil en Pascal, ADA, ou un langage fonctionnel). |
|
|
00
|
|
|
#183 |
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 86 ![]() |
Pour exposer mon avis sur ce point, je dirais qu'un langage dit "bien pour démarrer" ne doit pas satisfaire certains critères, mais au contraire ne pas posséder certains défauts (défauts d'un point de vue apprentissage, j'entends):
- gestion manuelle de la mémoire (quand on débute, c'est Core Dump sur Core Dump et Mem-Leak sur Mem-Leak) - syntaxe rebutante - trop grande spécificité (ne pas commencer par un langage vraiment spécialisé dans un domaine, comme l'ActionScript par exemple) - trop bas niveau (comprendre comment le PC marche, c'est utile, mais devoir tout penser en fonction de lui c'est tout sauf pédagogique) Un premier langage, c'est celui par lequel on va donner goût à quelqu'un à la programmation, un langage qui va donc intéresser le débutant, dans lequel il va rapidement pouvoir se faire ses propres petits programmes, car on ne le dira jamais assez, la meilleure méthode pour progresser en dev. c'est encore de s'intéresser et d'essayer tout seul en ayant son cours à côté, ça j'en suis convaincu. Je l'ai toujours constaté à mon école : nous avons démarré par le C, et quasiment SEULS ceux qui avaient - comme moi - déjà fait de la prog avant s'intéressaient (bon, les profs étaient pas terribles), et du coup nous étions les seuls à tenter nos propres programmes chez nous, pendant que les autres se désintéressaient de plus en plus et donc ramaient de plus en plus. Un bon premier langage doit donc avoir cette qualité essentielle d'être captivant, simple et pas lourd à apprendre d'un point de vue syntaxique (j'ai pourtant quelques années de prog derrière moi et pourtant je répugne à utiliser des langages qui n'ont pas une syntaxe épurée, donc exit Pascal). Tout est un donc compromis entre intérêt pour le débutant, rigueur et simplicité. Mon avis personnel est donc : Python, pour sa simplicité, sa logique et sa consistance (qualité n°1 que je recherche dans un langage), son champ d'application immense, son côté multi-paradigme qui permet de découvrir de nombreuses manières de coder et prépare mieux aux autres langages, et sa vitesse d'apprentissage allucinante : on a les bases en un week-end, et on peut commencer à "jouer" avec le langage et s'essayer très vite, tout en profitant du haut niveau. Après, oui il a un typage dynamique qui, je peux le reconnaitre, n'assure pas question rigueur, mais de toutes façons, aucun langage n'est parfait à 100% pour débuter. Mais c'est aussi une question de goût : je conseillerais sans problème un langage comme Haskell à quelqu'un qui a le goût de la logique et des maths, et qui a une manière de penser qui n'a pas encore été pervertie par des concepts impératifs. Mais Python, je le conseille à tout le monde. |
|
|
00
|
|
|
#184 |
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 86 ![]() |
Désolé pour le double post, mais je rajouterais aussi que le fait que Python soit interprété est énorme pour un débutant : pas besoin de s'embêter à compiler (quand on a qu'un fichier, ça va, mais dès qu'on doit gérér une dizaine de fichier avec d'un côté code et de l'autre headers, ça devient difficile à maintenir pour le débutant), et possibilité de tester son code à la volée dans l'interpréteur intéractif.
|
|
|
00
|
|
|
#185 | |
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
-- Jedaï |
|
|
|
00
|
|
|
#186 |
|
Inactif
![]() Inscription : octobre 2004 Messages : 3 894 ![]() |
Et tu conseilles Python avec ses indentations perturbantes (ou perturbées, au choix) ??
Mouais, c'est ... spécial, comme argument... Avoir un programme planté par manque d'une instruction, tout le monde arrive à comprendre. Avoir un programme planté à cause d'une indentation, c'est plus difficile à faire avaler quand même. |
|
|
00
|
|
|
#187 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 9 ![]() |
Pas si tu commences par Python.
Je t'assure que l'indentation de python est justement très intuitive, et garantit au développeur qu'il prendra les bonnes habitudes dès le départ (pas de for sur une seule ligne, par exemple) |
|
|
00
|
|
|
#188 | |
|
Expert Confirmé
![]() frederic francesConsultant informatique Inscription : juin 2009 Messages : 1 851 ![]() |
Citation:
|
|
|
|
00
|
|
|
#189 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : août 2003 Messages : 4 527 ![]() |
Non mais attend. On programme sous notepad ou sur papier+crayon et les indentations doivent se faire à la main et nullement automatiquement sur des outils de geeks comme emacs ou vim!
Plus sérieusement, le truc qui me perturbe avec cet argument qu'il vaut mieux de l'interprété au compilé, c'est qu'au lieu d'avoir des messages d'erreur du compilateur, on a à la place des comportements "non-conformes" que l'on ne pourra constater qu'au moment de l'exécution d'une branche particulière. Alors certes, les TU/TV/TI sont des choses importantes qu'il faudrait enseigner mieux. Mais je ne vois pas commencer les cours par ça. On remplace un problème par un autre. Un que j'ai catégorisé dans : "ce qu'il y a de plus difficile à corriger" car il faut commencer par constater les erreurs de comportement.
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++ Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. |
|
|
00
|
|
|
#190 | |
|
Inactif
![]() Inscription : octobre 2004 Messages : 3 894 ![]() |
Citation:
En tout cas, pour avoir touché un peu à Python, j'en retire surtout une impression de langage bordélique. J'ai toujours eu horreur du typage dynamique (les erreurs avec ça sont tellement fréquentes...), je trouve ça anti-pédagogique justement. Trop "haut niveau" pour permettre de prendre des habitudes saines derrière si l'on décide un jour d'aller vers le bas niveau, ce que je trouve rédhibitoire pour un langage de formation initiale. |
|
|
|
00
|
|
|
#191 | |
|
Membre éprouvé
![]() |
Citation:
__________________
Il est difficile de retrouver ses erreurs lorsqu'on est persuadé que son code est juste... Groupe des développeurs ivoiriens |
|
|
|
00
|
|
|
#192 | |
|
Membre émérite
![]() Inscription : décembre 2008 Messages : 195 ![]() |
Citation:
En fait Python regorge de pièges dans ce genre qui font de lui un très mauvais candidat comme premier langage, mais j'ai la flemme de détailler. |
|
|
|
00
|
|
|
#193 | |
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 86 ![]() |
Citation:
De toutes façons, bien indenter, c'est une OBLIGATION, du coup c'est très bien que le prog plante à cause d'une erreur d'intentation, ça force à bien indenter : combien j'en ai vu qui faisaient du C avec un code tout aligné à gauche et impossible à lire ! |
|
|
|
00
|
|
|
#194 | |
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 86 ![]() |
Citation:
|
|
|
|
00
|
|
|
#195 | |
|
Membre Expert
![]() Inscription : août 2006 Messages : 1 153 ![]() |
Citation:
- affectation - entrées-sorties - boucles C'est reparti pour un tour |
|
|
|
00
|
|
|
#196 |
![]() ![]() ![]() Nicolas ValléeIngénieur d'études Inscription : décembre 2005 Messages : 9 979 ![]() |
ils annoncent surtout que vu le niveau très médiocres des enseignants, ils cherchent malgré tout à faire faire de l'informatique au lycée... et se tournent vers la programmation fonctionnelle, adéquate pour des aggrégés de maths
![]() ça revient exactement à ce que je disais... c'est du lobbying, et du manque de compétence de la part du corps enseignant (parce sans les foncteurs, et les systèmes de preuves par induction, c'est comme si l'on n'apprenait rien |
|
|
00
|
|
|
#197 | |
|
Membre Expert
![]() Inscription : août 2006 Messages : 1 153 ![]() |
Dans le titre, il est fait mention de "aussi" entre parenthèse, l'idée étant de faire amha les deux en parallèle.
Dans la conclusion: Citation:
|
|
|
|
00
|
|
|
#198 | |
![]() ![]() ![]() Nicolas ValléeIngénieur d'études Inscription : décembre 2005 Messages : 9 979 ![]() |
Citation:
j'ai lu jusqu'au bout... mais je vois aussi ce que certains vont en retenir |
|
|
|
00
|
|
|
#199 | |
|
Membre Expert
![]() Inscription : août 2006 Messages : 1 153 ![]() |
Je relève principalement cette prise de conscience:
Citation:
|
|
|
|
00
|
|
|
#200 | |||||
|
Inactif
![]() Inscription : octobre 2004 Messages : 3 894 ![]() |
Citation:
Tu vois, je dis ça parce qu'il y a bien des années, quand je suivais des cours de C, 90% des étudiants n'avaient AUCUN problème particulier avec le C lui-même (on avait déjà tous appris d'autres langages auparavant, ce qui aide beaucoup). Par contre, à peu près le même pourcentage foirait régulièrement les makefiles : ils indentaient correctement, mais pas avec UN SEUL TAB comme l'exigeait "make"... C'était indenté, pourtant, mais pas de la "bonne" manière. Source d'erreur, source de non-lisibilité, source de problèmes. La forme ne devrait pas être plus importante que le fond. Citation:
N'importe quel programme correct de "beautifier" (remise en ordre de code source suivant des règles strictes) permet de remettre un source tout clean, du moment que des marqueurs de blocs réels existent. On en utilise assez souvent de façon automatique avant de mettre un source en gestion de configuration, afin de "normaliser" l'aspect du code. Ne me fais pas dire ce que je n'ai pas dit : je suis le premier à incendier un dév qui ne présente pas un source correct. Mais la remise en forme du code peut être automatique, tout comme le contrôle des règles de codage, permettant ainsi de se concentrer sur la pertinence des commentaires, la justesse de l'implémentation et la validité du découpage modulaire. Bref, se concentrer sur les choses importantes, à savoir le fond. La forme, elle, peut être contrôlée automatiquement. Et j'estime qu'un débutant à qui l'on met en tête d'abord la forme avant de lui apprendre le fond, c'est "dangereux", côté méthodologie. Citation:
C'est pour cette raison que je préconise un langage médian permettant d'approcher (plus ou moins finement) la plupart des paradigmes, tout en étant strict, clair, non ambigu et imposant un minimum de rigueur. Citation:
Mais apprendre la programmation à tout le monde ??? Stupide !!! C'est comme si l'on obligeait tous les élèves des cours d'EPS à se préparer à des compétitions !! Certains élèves n'en ont strictement rien à faire (et c'est leur droit le plus strict), d'autres n'auront jamais les mécanismes mentaux adéquats pour en faire (on ne peut pas être doué en tout...), et on leur imposerait une matière qui n'a même pas la justification d'améliorer la culture générale ? C'est du non-sens... |
|||||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com