IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Quelle est la meilleure méthode pour apprendre la programmation ?

Le , par LittleWhite

293PARTAGES

7  0 
Quelle est la meilleure méthode pour apprendre la programmation ?
avec des tutoriels écrits
70 %
avec des livres
46 %
en école
37 %
avec des tutoriels vidéos
35 %
avec un langage de haut niveau (Python, Go, Rust)
33 %
avec un langage de bas niveau (C, assembleur...)
33 %
en formation
30 %
avec un langage de script
17 %
avec des sites interactifs dédiés (CodeCombat, Codingame, ...)
9 %
avec la programmation Web
9 %
avec des jeux vidéos thématiques (7 Billion humans, TIS-100, Shenzen IO, Opus Magnum)
9 %
au travers d'un framework
7 %
au travers d'un moteur de jeux vidéo
4 %
avec un système de noeuds (Scratch)
2 %
Voter 46 votants
L'apprentissage de la programmation est un sujet de plus en plus mis en avant. D'ailleurs, certains pensent que cela devrait être une obligation. Toutefois, la programmation n'est pas, pour tout le monde, chose aisée à appréhender (comme de nombreuses autres choses). Heureusement, une multitude de méthodes et de ressources sont disponibles, dont certaines gratuitement. Alors qu'il y a vingt ans, l'apprentissage de la programmation était une chose qu'on commençait souvent seul : avec un livre, voire, le manuel de son ordinateur et qui se complétait en université.

Aujourd'hui, le sujet est amené aux plus jeunes, chose rendue possible avec des langages et concepts plus accessibles : langage de haut niveau, programmation à l'aide de nœuds... au point même qu'aujourd'hui, il est possible de trouver des jeux vidéo qui, sous couvert d'un enrobage plus ou moins discret, permettent aux gens de comprendre la logique qu'un développeur utilise tous les jours dans son travail.


Mais, avec toutes ses possibilités, le choix n'en devient que plus compliqué. Quelle est la meilleure méthode pour apprendre la programmation ? Ici, on parle bien de programmation (ou autrement dit, la logique) et non de l'apprentissage d'un langage en particulier.

Quel est votre point de vue sur la question. N'hésitez pas à partager votre expérience d'apprentissage, ou encore, de dire comment vous, vous auriez aimé apprendre la programmation.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Zefling
Expert confirmé https://www.developpez.com
Le 11/05/2022 à 10:19
Avec des projets intéressants.

C'est toujours ce qui m'a poussé à apprendre, l'envie de réaliser quelque chose.
12  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 11/05/2022 à 10:09
La question est mauvaise. Il n'y a pas de vraiment une "bonne" méthode pour apprendre la programmation. Tout ce qui est cité dans le sondage permet tout a fait d'apprendre la programmation, même si certaines nécessiteront d'approfondir avec d'autre outils par la suite.

La clé est de cerner les exercices qui feront le plus envie a l'étudiant pour se motiver, après c'est gagné, l'outil est vraiment annexe. Et malheureusement il n'y a pas de réponse facile a ce point, chacun est différent.
11  0 
Avatar de air-dex
Membre expert https://www.developpez.com
Le 13/05/2022 à 18:04
Chose la plus importante : ne jamais négliger l'algorithmique, qui est le solfège du développeur.

L'une des choses les plus importantes est de savoir différencier les concepts et leurs implémentations. Un langage c'est d'abord l'implémentation de ces concepts là. Des concepts fondamentaux tels que la boucle if ne sont pas totalement réinventés à chaque fois que tu passes d'un langage à un autre. Si tu sais faire la différence tu seras déjà dans tes petits souliers à chaque fois que tu découvres un nouveau langages. Tu n'as alors plus qu'à te concentrer sur les spécificités liées à ce langage et sur son paradigme s'il t'est étranger. C'est pareil dans les langues vivantes. Que tu dises "wagen" en allemand, "car" en anglais, "voiture" en français ou "coche" en espagnol, ça reste de même tas de ferailles avec 4 roues et un volant. C'est pareil pour les langages de programmation.

Niveau langages, j'ai envie de conseiller le C :
  • Sa syntaxe est très standard. Enormément de langages s'en inspirent, donc là aussi ça facilitera l'apprentissage de ces nombreux langages qui s'en inspirent.
  • Typage fort
  • Langage bas niveau, parce qu'il en faut bien un dans son arsenal.
  • Langage compilé, parce qu'il en faut bien un.
  • On voit beaucoup de concepts de programmation avec le C.
  • On peut tout faire avec le C, même simuler des choses qui sont simplifiées avec du sucre syntaxique ailleurs. J'avais eu un cours dans ce genre en école d'ingé et j'avais adoré.
  • Il force à mettre les mains dans le cambouis pour bien simplifier les choses.


Je complète ça avec du Python :
  • Force à acquérir des bonnes habitudes.
  • Langage haut niveau, parce qu'il en faut bien un.
  • Langage de script, parce qu'il en faut bien un.


Pour de l'objet, je conseille fortement le C++, pour la simple et bonne raison que ce n'est pas un langage de Sainte Nitouche. Le C++ est un langage franc, il ne ment pas. Il ne va pas passer par je ne sais quel concept alambiqué pour faire des choses sans les dire, notamment pour l'héritage multiple. Si C++ veut faire de l'héritage multiple alors il en fait. Il ne s'embarrasse pas de concepts comme les interfaces et les traits pour ça. Idem avec les pointeurs.

J'ai envie de dire "non dans un premier temps" quant aux frameworks. Qt n'est pas C++. Boost non plus. Symfony n'est pas PHP. Django n'est pas Python. Node.js n'est pas JavaScript. Unity n'est pas C#. On n'y vient que lorsqu'on est déjà solide sur ses bases. C'est même sans doute la première chose à faire une fois que c'est le cas, mais après.

Quant à la méthode ça dépend de chacun, de sa manière de fonctionner. Perso je suis très rat de bibliothèque sur ce point et rien ne vaudra mieux pour MOI que le nez dans un bon bouquin et des tutos écrits. Mais ça reste mon cas personnel et qui n'est sans doute pas une généralité.

Par contre je conseille d'éviter les "apprenez tartampion en 5 minutes". Je parle de ces daubes du type "Crac, Boum, Hue ! Ça marche !". Le genre de choses simples au possible avec N choses déjà préparées auparavant et finies à l'arrache pour le show, sans trop les expliquer. Si jamais tu veux faire quelque chose un poil plus complexe, ce genre de daube ne te donnera pas la solution à ton problème et il faudra aller fouiller profondément dans ces choses déjà préparées dont le tuto simple "apprenez en 5 minutes" ne te parlera jamais. Qu'est-ce que j'ai pu rager contre la documentation de Qt qui en est pleine.

Un projet personnel (ou pas) peut aussi être une bonne source de motivation à ne pas négliger. C'est l'idéal pour voir ce que t'as retenu de ton apprentissage et pour te faire gagner de l'expérience sur la pratique d'un langage et devenir autonome là dessus.

Dernière chose : si vous voulez vivre de la programmation, apprenez des langages qui en font vivre. Apprenez aussi les frameworks qui font vivre de la programmation dans le langage dont on veut vivre. Beaucoup trollent le Cobol, mais on peut se faire des couil*es en or avec, contrairement au langage D. De même que PHP c'est bien, mais Symfony c'est mieux.

Citation Envoyé par grunk Voir le message
Des outils à base de bloc sont plutôt pas mal pour ceux qui n'ont pas la formation mathématique qui apporte normalement cette réflexion.
Logique plus que mathématique. Les maths requises dans le développement ne sont pas très élaborées ni nombreuses :
  • Les cinq opérations de base : +, -, *, / et %.
  • Les comparaisons : <, >, == et !=, ainsi que <= et >= par extension.
  • Les bases de nombres pour leur écriture.
  • Les décalages de bits.
  • La notion de fonction.


Si t'as besoin de davantage de maths de base alors t'as toujours un bout de bibliothèque standard spécialisée pour ça. Et si t'as besoin d'encore davantage de maths c'est très probablement parce que le projet demande des savoir-faire mathématiques qui n'ont pas de liens directs avec la programmation en elle-même.

Je pense que t'as fais ce lapsus parce qu'on confond la logique et les mathématiques dans l'apprentissage français des maths.

Citation Envoyé par grunk Voir le message
- La première des choses est de construire une culture informatique , savoir comment marche un ordinateur. (vous imaginez pas le nombre de candidat qui me disent qu'une variable s'écrie sur le disque dur )
Mais tellement. Savoir ce qu'est un ordinateur et comment s'en servir est plus encore plus important que la programmation elle-même. C'est pour ça que perso j'ai du mal avec la programmation qui serait enseignée trop tôt à l'école, qui relèvent clairement de politiques voulant se la jouer "modernes" avec "on apprend l'ordinateur à nos enfants dès le plus jeune âge". Que nos enfants sachent d'abord ce qu'est un ordinateur et s'en servir avant d'aller gratter là dedans.
7  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 16/07/2022 à 7:25
Citation Envoyé par moldavi Voir le message
C'est tellement bien reconnu , que depuis 2003 que je suis sur ce site, je ne sais même pas de quoi tu parles. Peut-être une démonstration ?
Écoute, tu es le premiers que je vois proposer de manière sérieuse l'assembleur comme langage d'apprentissage. Je comprend bien l'idée séduisante d'approcher l'informatique avec une approche bottom-up : commencer au plus bas niveau pour aller vers le plus abstrait. Mais a peu près tous les professeurs te diront que ça n'est absolument pas conseillé, tout comme on ne va pas conseiller d'apprendre l'arithmétique a l'école primaire en commençant par les Axiomes de Peano, qui permettent pourtant de prouver que 1+1=2.
L'abstraction apportée par les langages de plus haut niveau est bien plus naturelle et évite qu'un débutant soit submergé d’emblée par les détails du fonctionnement à bas niveau.

Citation Envoyé par moldavi Voir le message
La compréhension du fonctionnement de la machine est indispensable. Qui va développer les moteurs, qui nécessite des connaissances bas niveau, si tout le monde n'apprends que du haut niveau ?
La compréhension précise du bas niveau est utile pour certains types de programmes, quand on a atteint un certain niveau, mais le sujet à la base, c'est l'introduction à la programmation pour des débutants complets. Mieux vaut attaquer les problématiques de très bas niveau une fois que l'on maitrise les bases de l’algorithmie.

Citation Envoyé par moldavi Voir le message
A un moment, il faut former des développeurs compétents, cela veut dire du bas niveau, pour que des développeurs qui n'y comprennent rien, et qui ne font pas du bas niveau, comme tu le suggères, puissent écrire des programmes potables.
Compétant, ça veut dire apte a répondre au besoin, et bien souvent, le bas niveau n'est pas ce dont on a besoin, surtout quand on débute. On peut faire un serveur d'application web en assembleur, mais dans la pratique, on ne le fera pas parce que ça n'est pas le bon outil : ça prendra un temps fou et il va falloir réinventer la roue 50 fois au passage.
Quand on apprend la programmation, ce qui est utile, c'est de voir rapidement et simplement les résultats de ce que l'on fait et de ne pas être retenu par des problématiques annexes.

Citation Envoyé par moldavi Voir le message
Donc en gros, pour que des nuls en programmation puissent écrire des programmes en Java, il faut quand même des mecs qui comprennent l'assembleur pour écrire le moteur de Java.
Ça va les chevilles ? Tous les programmeurs Java ne sont pas des nuls loin de là, ils font face à des problèmes différents des vôtres, pour des résultats différents, c'est tout.
Oui les développeurs haut niveau ont forcément besoin à un moment de s'appuyer sur des outils réalisés à bas niveau. Mais ça ne veut pas dire que le bas niveau est une science supérieure, tout comme le plombier ou le boulanger ne te sont pas supérieur, même si tu as besoin d'eux pour manger du pain ou prendre une douche.

Citation Envoyé par moldavi Voir le message
Je suis désolé, mais quand un gland me dit que le langage C est à faible typage, je sais que je parle à un troll.
C'est difficile de donner raison à l'un ou l'autre sur ce sujet étant donné qu'il y a un consensus indéniable sur le fait que la notion de typage fort/faible ne fait pas du tout consensus, contrairement à la notion de typages statique/dynamique.

Il n' y a pas de discussion sur le fait que C est statiquement typé : c'est à dire que les variables ont un type fixé définitivement à la compilation et que ce type ne changera pas au cours de l’exécution, contrairement à ce qui peut se passer en Python ou JavaScript.

Maintenant, comparé a d'autre langages, le C reste très laxiste sur les types notamment au niveau des conversion implicites, potentiellement dangereuses, notamment au niveau des pointeurs. Cela fait que je comprend tout a fait pourquoi on peut être tenté de le classer comme ayant un typage faible, comparé à l'Ada ou au Rust qui évitent toute conversion implicite, voire au Java ou C++ ou le modèle objet et les génériques permettent de réduire les recours aux pointeurs hasardeux.
6  0 
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 22/07/2022 à 9:01
Dans un sujet aussi polémique que "la meilleure méthode de programmation", on aura finalement eu une polémique sur le typage des langages. Bien joué. {^_^}b
6  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 26/07/2022 à 8:09
Que de modestie et de respect des autres, ça fait plaisir !

Citation Envoyé par moldavi Voir le message
C'est normal, car à la base j'ai suggéré du C et de l'assembleur pour leurs côtés formateurs et pragmatiques. Du coup ils ont dévié la conversation en disant que le langage C n'est pas typé, le propre des crétins, pour essayer de décrédibiliser mes propos (ils sont faibles d'esprit).
Tu es au minimum aussi coupable que les autres d'avoir dévié le sujet, on t'as répondu sur beaucoup de points, tu as choisi de ne répondre que sur l'utilisation du terme typage faible.

Citation Envoyé par moldavi Voir le message
Ils ont oubliés que je suis là depuis 2003, et qu'il y a 20 ans de cela, tout le monde ici nous expliquait, qu'un typage fort c'est un langage avec des char/short/int/long/longlong, présents jusqu'à la compilation.
On t'as donné quelques références qui valent ce qu'elles valent, mais c'est quand même bien mieux que : "les gens sur un forum, il y a 20 ans". Puisse que tu nous le réclames avec tant d'insistance, j'aurais aimé de ta part que tu puisses aussi nous fournir des références de personnes connues et suffisamment nombreuses pour prouver qu'il y a consensus sur ta définition du typage fort.
Sinon on peut aussi se mettre d'accord sur le fait qu'il n'y a pas de consensus et laisser tomber tomber ce sujet sans interet.

Citation Envoyé par moldavi Voir le message
Les mecs essaient quand même de prouver qu'un langage comme le javascript, est à typage plus fort que le C, parce qu'l fait super bien les conversions. Enfin on n'en sait trop rien, le wikipédia n'est pas certain non plus...
C'est un très vilain sophisme de l'homme de paille que tu nous fais là. Quand on accuse les autres d'essayer de décrédibiliser ses propos, la moindre des choses est de ne pas faire de même.
Personne ici n'a prétendu que JavaScript était fortement typé. S'il y a bien un langage qui met tout le monde d'accord sur la légèreté de son typage, c'est le JavaScript qui coche toutes les cases des diverses définitions, aussi bien au niveau du typage dynamique que des conversions implicites hasardeuses.

Citation Envoyé par moldavi Voir le message
A la base, je pensais que l'on allait me demander pourquoi je préconise le C et l'assembleur (je l'ai déjà expliqué sur ce site). Ben en fait je suis tombé sur des crétins pétris de certitude qui me disent que le langage C est à typage faible. Du coup j'ai aussi fait monter la mayonnaise (j'aime bien l'humour).
Écoute, on ne peut pas parler à ta place. Si tu as des choses intéressantes à dire, dit les. Parce que le peu que tu as dit à propos de tes préconisations, avant de partir en hors sujet, était peu convaincant. Je t'ai expliqué pourquoi :
  • Pour le C, tu évoques juste vite fait la rigueur, le C reste quand même plutôt lacunaire sur ce point. Je dirais même que parmi les langages à typage statique, c'est celui qui contrôle le moins la rigueur. Si tu veux vraiment apprendre la rigueur, Rust et Ada sont vraiment adaptés.
  • Pour le C++ tu évoques le fait qu'il est objet, certes, mais parmi les langages objets, c'est un des plus complexe. Pour apprendre l'objet à un pur débutant, il y en a des beaucoup plus simples.
  • Pour l'Assembleur, c'est certes un langage intéressant pour bien comprendre le bas niveau. Mais comme le sujet c'est un langage pour découvrir la programmation depuis le niveau zéro de connaissance, c'est vraiment trop éloigné de ce qu'attend un débutant. L'assembleur est plutôt utile quand on a déjà un minimum de maitrise de l’algorithmie et que l'on veux approfondir en apprenant le bas niveau

Malheureusement, tu n'as répondu à rien de tout ça pour te concentrer délibérément sur un point de forme plutôt que sur le fond. Si tu veux expliciter ta pensée et faire avancer le débat sur le fond, alors va y ! On attend que ça ! Parce que pour le moment tout ce qui se dégage de ton propos, c'est ton ego surdimensionné de super-développeur chevronné(alors que le sujet c'est les débutants qui découvrent la programmation) et ton mépris des glands™ qui n'ont pas ton avis.
6  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 11/05/2022 à 10:38
Citation Envoyé par Zefling Voir le message
Avec des projets intéressants.
Tu m'as grillé, mais ça me fait plaisir de constater que je ne suis pas le seul à penser comme ça.
5  0 
Avatar de Jacti
Membre habitué https://www.developpez.com
Le 14/07/2022 à 11:58
Citation Envoyé par moldavi Voir le message


Peut-être qu'avec tes 40 ans d'expérience, tu vas me surprendre. J'attends le développement de tes certitudes pour m'incliner...

PS : j'ai rigolé pour les 200 lignes d'assembleur écrites en 40 ans d'expérience.

PS2 : j'ai répondu, mais je pense que tu es un troll. Si tu n'es pas un troll, c'est que tu es vraiment un gland.
Tu me reproches de ne donner que des certitudes (déjà, là, la phrase n’est pas en bon français. On ne « donne pas des certitudes » mais on les assène) mais tu auras remarqué que je dis pourquoi le langage C est exempt de rigueur : faible typage et manipulation de pointeur laxiste, entre autres.
Pour C++ c’est pareil : trop compliqué pour un débutant en objet. Ce n’est pas un vrai langage objet car il ne contraint pas à « faire de l’objet » . On peut écrire en C++ comme en C, sans faire de l’objet contrairement à Java où toute fonction doit être dans une classe.
Quant à l’assembleur, je ne vois pas pourquoi mes 200 lignes d’assembleur te font rigoler car c’était juste pour montrer qu’apprendre l’assembleur aujourd’hui n’est pas du tout indispensable. Ce qui est essentiel, par contre, et qui ne se fait plus dans les cursus informatique c’est un vrai cours d’architecture machine et système : la notion de ring, la segmentation, le tas (heap), les machines RISK, l’overlay, les GPU, les sémaphores, etc.
Enfin je n’aime pas beaucoup (c’est un euphémisme) ta façon de me parler en me traitant « de gland » ce qui montre que tu es un malotru et ce qui n’encourage pas à une discussion ouverte comme tu sembles le préconiser. Sache, de plus, qu’en 40 ans d’expérience j’ai effectivement acquis un certain nombre de certitudes car, outre le développement, j’ai aussi participé à l’élaboration de nombres de cursus informatique via des comités de programmes dans des grandes écoles, des organismes de formation et que j’ai enseigné nombre de langages de programmation comme C, C++, Java, Lisp, Prolog, ADA, Pascal ainsi que la conception objet dès les années 80.
Merci de revoir ton style d’écriture car « bouffi de certitudes » n’est pas des plus convivial pour amorcer une discussion.
Il semble plutôt que tu ne supporte pas la contradiction et j’ai voulu effectivement te montrer que les langages que tu as chois ne sont pas les meilleurs pour apprendre la programmation.
D’ailleurs pour apprendre la programmation, il est préférable de commencer par «écrire des algorithmes en pseudocode et de les appliquer ensuite à tel ou tel langage. D’ailleurs, en parallèle de la pure programmation, il est essentiel d’apprendre à mesurer la complexité algorithmique et de ne pas vouloir écrire du code optimisé dès le premier jet.
Enfin, dans le développement, ce n’est pas la partie programmation la plus important mais la partie conception globale et détaillée et là, on ne trouve pas grand monde de compétent… hélas.
5  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 19/07/2022 à 6:33
Citation Envoyé par moldavi Voir le message
Bonjour.
J'aime bien tes histoires de consensus, mais je ne sais toujours pas de quoi tu parles. Peut-être as-tu des liens qui confirment ce consensus ?
Par exemple : https://en.wikipedia.org/wiki/Strong...nd_weak_typing
In computer programming, one of the many ways that programming languages are colloquially classified is whether the language's type system makes it strongly typed or weakly typed (loosely typed). However, there is no precise technical definition of what the terms mean and different authors disagree about the implied meaning of the terms and the relative rankings of the "strength" of the type systems of mainstream programming languages.
Citation Envoyé par moldavi Voir le message
Oui, c'est ce que l'on appelle du typage fort... Visiblement tu découvres l'eau chaude, mais on sent que tu vas tenter une entourloupette ci-dessous.
Je ne découvres pas l'eau chaude, je te rassures je connais le sujet depuis une bonne vingtaine d'années. J'essaie juste de t'expliquer, sans te traiter de gland au passage, qu'il y a un terme qui est clairement défini pour ça et qui ne souffre pas de débat : c'est le typage statique. Visiblement pour toi c'est aussi la définition de typage fort, mais cette définition ne fait pas l'unanimité, et pour le coup c'est toi qui à l'air de le découvrir.

Citation Envoyé par moldavi Voir le message
Si tu penses qu'un langage qui permet de faire 1 + "1" (entier + string), et qui est maîtrisé par tous les développeurs, je n'y crois pas une seconde. Tout le monde sait qu l'on ne mélange pas des choux et des carottes.
En tout cas la syntaxe de cette phrase n'est pas très maitrisée, le français n'est pas un langage fourni avec un compilateur strict .
Si tu veux dire que accepter les conversion du type 1 + "1" est une mauvaise idée, tu prêches un convaincu.

Citation Envoyé par moldavi Voir le message
Un typage fort oblige le développeur à prendre ses responsabilités. Un typage faible, c'est croire que tout va bien, vu que les choux et les carottes ne plantent pas...
Je suis tout a fait d'accord, et c'est pour ça que le positionnement du C n'est pas évident. Le typage statique lui offre certaine garanties par rapport à des langages comme JavaScript. Mais le C reste quand même beaucoup plus léger en termes de garanties offertes par le typage que des langages comme Ada ou Rust.
5  0 
Avatar de nhugodot
Membre habitué https://www.developpez.com
Le 14/05/2022 à 11:00
J'étais doué en maths, ai fait math sup et spé w une école d'ingénieur mécanique puis informatique, mais si j'adorais la programmation au début avec Pascal ou Basic, j'en ai été écoeuré ensuite avec Unix Bash et surtout C. Pourquoi? Parce que attiré par les maths, propres et carrées, j'ai trouvé C et Unix degueulassesw des bricolages vite fait mal fait pas penses du tout, un gâchis terrible. (Lisez ''the Unix haters book' des anciens qui utilisaient des Lisp Machines, autrement mieux pensées.. Unix est un bricolage vite fait après l'échec de Multics qui, lui, était mieux pensé.). Et toute notre informatique est une pétoire similaire (PHP JS etc.) qui a écoeuré les plus ''carrés'', même Brendan Eich créateur de JS (qui voulait lui aussi un Lisp, Scheme)...

Donc la première des choses est de trouver la motivation de l'élève dans sa personnalité, ce qu'il aime et déteste, comment il appréhende le monde et sa manipulation mentale.

Je comprend qu'on puisse aimer le C voire l'assembleur pour bidouiller (''hacker'') l'ordinateur avec ses registres mémoires, maîtriser la bête depuis ses entrailles, puis monter petit a petit avec C++, Java, JS. Ou l'inverse comme moi, penser plutôt abstrait, non pas ''bottom-up'' mais ''top-down'' comme un architecte et non pas un maçon ou menuisier, avec des langages abstraits tels que Lisp ou Python.

J'ai repris la programmation avec Visual Basic/VBA: là, manipuler des tableaux Excel par exemple est fort gratifiant, puissant, efficace, utile directement au travail de tous les jours. Démarrer même l'apprentissage avec juste des macros Excel qui, rappelons le, est de très très loin l'outil ''de développement '' le plus utilisé au monde pour faire n'importe quoi, d'un agenda a une base de données clients ou projets, visuellement (on voit d'abord le résultat, on entre ensuite dans la manipulation par code ou no code ), est l'inverse des outils que vous manipulez. Pas aussi ''puissant'' mais aussi utiles.

Python, Smalltalk, Pharo, Ruby, LiveCode surtout (un HyperCard en live coding comme Smalltalk d'ailleurs ce dernier a été inventé par Alan Kay qui ne pensait que pour enseigner justement la programmation aux enfants, Scratch etc.) sont des outils beaucoup plus clairs intuitifs faciles intégrés et cohérents donc moins rébarbatifs que C, Vi/emacs, Unix, etc.! Si on ne veut pas écœurer dès le début un débutant...

Bref, jeune garçons bricolo ''hackeur'' bidouilleur qui aime voir sous le capot, ou femme qui aime ce qui est beau simple clair élégant, entre les deux il y a un monde, et a chacun son outil, ''les mains dans le cambouis'' (C) ou ''assemblage de beaux éléments'' (LiveCode, RoR)...

Même Alan Kay dit dans ses conférences TedX qu'on attend toujours la révolution software qu'on a eu en hardware.. plus de 40 ans après son Smalltalk, on code toujours plus mal qu'avant , de quoi en écœurer plus d'un, moi le premier... Quel gâchis.
4  0