Quel langage pour débuter en programmation ?

Pour rebondir sur ce message plein de sagesse, et qui je l’espère va calmer le troll et les attaques personnelles, mon approche de l’apprentissage consiste à inculquer la curiosité et la passion, pour que les gens aient envie d’aller voir plus loin, découvrir d’autres langages et façons de faire.

1 « J'aime »

On ne peut pas dire “Tout sauf [blabla]” sans argumenter. Ce n’est pas constructif et n’apporte rien du tout au sujet.

ruby :) c’est le mieux pour commencer, c’est le mieux pour continuer, et c’est le mieux pour l’expertise aussi ;)

Un retour après 10 ans à proposer Python en tant que premier langage :
http://prog21.dadgum.com/203.html

(spoiler : il préconise désormais JS)

1 « J'aime »

Hum .
Pourquoi Java?

  • C’est un langage facile a apprendre
  • C’est un langage qui exige une grande(typesafe) rigueur.
  • C’est une langage qui permet d’architecturer son code avec un niveau d’abstraction correct (interface, abstract, template, generics, annotations, exceptions, synchronize, serialization etc)
  • Le fait que ton programme évolue dans une JVM est une bonne chose et limite les problèmes de sécurité non voulu.
  • Java c’est du costaud utilisé par l’Armée Américaine, la Nasa, les scientifiques, et les grosses entreprises, les sites internet à gros volume(SNCF) et celles qui “possèdent” les meilleurs ingénieurs du monde (Google).
  • Java possède aussi parmi les meilleurs IDE,des outils d’intégration continue, plein de librairies gratuites, énormément de documentation et de littérature de qualité, les performances sont réellement la, tu n’es pas obligé de gérer la mémoire (le Garbage Collector fait cela pour toi), les threads sont gérés nativement, Java est portable, il y a une immense communauté etc.
  • Tu ne peux hériter que d’une seule classe cela peut être vu comme étant un problème mais cela prévient aussi beaucoup de complexité et de problème potentiels
  • La réflection

En bref, c’est pas un “one fit all” sa fait pas tout mais pour apprendre c’est bien.
Après si on veut apprendre la programmation mais pas pour devenir programmeur juste pour faire son site web on peut apprendre Ruby.

1 « J'aime »

Je trouve que tu mets la charrue avant les boeufs en parlant du haut de la pyramide. A mes yeux Java ne remplit pas son role d’introduction pour justement deux raisons que tu cites et qui déroutent complètement les débutants :

  • des IDE bourrins : pourquoi il faut que je lance Eclipse pour générer un projet me posant 100 questions sur quelle version de machin je veux faire tourner alors que je veux juste taper 1 bout de code?

  • du boilerplate rédibitoire pour la moindre chose. Comparaison :

      public class HelloWorld {
    
          public static void main(String[] args) {
              System.out.println("Hello, World");
          }
    
      }
    

vs

    console.log("Hello, World");

Dans le cas Java il faut assimiler trop de concepts de front (public? static? String[] args?) qui mériteraient d’être abordés par petites touches.

3 « J'aime »

Avec Java 8 et les methodes Default c’est l’ouverture à une sorte d’héritage multiple en Java.

1 « J'aime »

Je ne connaissais pas merci. Je vais “scouter” sa .

La complexité cela dépends des gens je suis sur que ma majorité des gens trouve Java simple. Il y a aura toujours 10 à 25% des gens qui prendrons un peu plus de temps pour comprendre tout les concepts de front. Mais cela vaut tellement le coût… Pour moi mieux vaut apprendre un truc un peu complexe mais tellement plus puissant que apprendre un truc plus simple qui fait beaucoup moins.

En lisant le thread, j’ai l’impression que tu mélanges les questions, tu fais apologie de Java pour ses complexes avancés alors que je ne pense pas que cela soit ce que recherche un débutant en programmation.

En ce qui me concerne, j’ai débuté en Pascal (puis Delphi) et j’ai par la suite enseigné à des débutants en Java. Pour réaliser cet enseignement, nous avions demandé aux étudiants d’éluder toute la partie complexe de Java et de faire abstraction de l’objet dans un premier temps.
A mon avis, ce choix pédagogique fut une belle connerie. En utilisant Java (pour simplifier le boulot de l’équipe pédagogique) on a joliment perturbé/frustré une bonne partie des étudiants. (Il n’est jamais simple d’admettre une partie du code sans la comprendre).

Pour moi, et je me trompe peut être, les bases de l’apprentissage de la programmation, c’est l’algorithmique. Savoir faire une boucle efficace, comprendre les tris et les fonctions de base, c’est la base. Et ensuite, avec un minimum de pratique, on va voir l’intérêt des objets, des héritages , des bibliothèques … et des autres langages …

Java n’est pas pour moi le langage d’un débutant … et c’est encore moins un langage facile … Si les SSII ne promeuvent, ce n’est pas pour sa qualité … mais peut être bien que la complexité (et la diversité) de ce langage fait qu’une fois quelles ont mis le pied dans un projet, il est très dur le continuer sans elles …

Sinon, pour répondre à la question initiale, pour ma part je voterai pour Python, un poil dur à mettre en place sur certain système, mais suffisamment clair pour avancer vite, et suffisamment répandu pour pouvoir faire rapidement des trucs très intéressant.

3 « J'aime »

Cette phrase est vrai si tu remplaces “les bases de l’apprentissage de la programmation” par “les bases de la programmation”.
Historiquement on a bien l’apparition de l’algorithmique, procédure, etc. avant programmation orientée objet.

Mais ça ne veut pas dire que les élèves doivent apprendre dans le sens historique des “découvertes”.

1 « J'aime »

Voici ce que je pense du python

La revue techno

1 « J'aime »

Pour l’apprentissage d’un langage, il faut hélas commencer par de la théorie et une feuille blanche et un crayon. Donc commencer par l’algorithmie et les types de données. L’informatique, c’est le traitement automatique et cohérent de l’information. Ensuite, un petit topo sur les les framework et leur utilité, les éditeurs de textes. Parler ensuite des méthodologies de développement et des outils de conception (agilité, uml, ci/cd). Juste un petit résumé pour situer les choses. On passe au codage maintenant, pour rentrer dans le vif du sujet. Personnellement, j’utilise ruby pour toutes ces raisons : Ruby — Wikipédia

Il n’en reste pas moins que connaître le C, C++, java, JavaScript, PHP et python permet de trouver du job très facilement.

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s