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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: Quels sont les langages de programmation à conseiller à un débutant ?

Votants
201. Vous ne pouvez pas participer à ce sondage.
  • Assembleur

    5 2,49%
  • Basic

    13 6,47%
  • Bash

    1 0,50%
  • C

    48 23,88%
  • C++

    32 15,92%
  • C#

    57 28,36%
  • Cobol

    0 0%
  • Delphi

    1 0,50%
  • Fortran

    3 1,49%
  • Go

    0 0%
  • Java

    81 40,30%
  • Javascript

    33 16,42%
  • Kotlin

    21 10,45%
  • Ladder

    0 0%
  • Pascal

    84 41,79%
  • PHP

    18 8,96%
  • Python

    115 57,21%
  • Ruby

    9 4,48%
  • Rust

    46 22,89%
  • Swift

    0 0%
  • Typescript

    61 30,35%
  • Visual Basic

    3 1,49%
  • VBA

    10 4,98%
  • VHDL

    0 0%
  • Autres (à préciser)

    3 1,49%
  • Je ne sais pas

    0 0%
Sondage à choix multiple
Débats sur le développement - Le Best Of Discussion :

Quels sont les langages de programmation à conseiller à un débutant ? La panoplie des choix est déroutante


Sujet :

Débats sur le développement - Le Best Of

  1. #21
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    June 2010
    Messages
    7 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : June 2010
    Messages : 7 095
    Points : 32 842
    Points
    32 842
    Billets dans le blog
    4
    Par défaut
    Je serais aussi partisan de Python pour enseigner la (base de la) programmation.
    La syntaxe est plutôt simple et claire.
    Ça montre les blocks / scopes et donne un peu de rigueur à la lisitiblité du code.
    Être interprété rend son exécution plus rapide et simple, pas de chaîne de compilation.
    Je pense qu'avec Python il est plus facile d'intéresser les gens qui peuvent juste s'y mettre et avoir un résultat rapide. Ce qui est satisfaisant et encourageant pour un débutant.

    Ensuite s'ils veulent pousser et vraiment devenir programmeur, ils peuvent déjà forcer le Python qui a plein de secrets, syntaxes, concepts.
    Ou passer à un langage comme Java, C#, C ou C++ afin d'appréhender les méandres de la mémoire et du CPU.

    Mais commencer par ces langages plus complexes, imo ça ferait juste fuir des personnes qui auraient autrement pu s'y intéresser.
    Après, écrémer de cette façon est peut-être pas une mauvaise chose. Mais faut voir le résultat espéré : intéresser plus de monde ou réserver ça à une pseudo-élite ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  2. #22
    Membre chevronné
    Profil pro
    Inscrit en
    May 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : May 2006
    Messages : 721
    Points : 1 857
    Points
    1 857
    Par défaut
    La question, c'est pourquoi faire. Si c'est pour faire de la programmation web, les options ne seront pas les mêmes que pour de l'embarqué.
    Je trouve que Python est un bon compromis: langage abordable, polyvalent et surtout: contemporain.

    Je pense que le faible typage n'est pas un argument décisif: on peut dire que ça pousserait aux mauvaises habitudes, mais par la force des choses on se rend vite compte que les int ne se manipulent pas comme des str, et que ce n'est pas une bonne idée de recycler les variables pour leur faire changer de type. C'est vrai qu'on voit beaucoup de code de mauvaise qualité en Python aussi, mais ce n'est pas forcément au niveau du typage que c'est le plus problématique.

    Du C++ pour commencer ça me paraît relativement hard, mais si c'est pour de l'embarqué il faut peut-être y passer (voire aux FPGA aussi).
    Toutefois, je pense que c'est important de pouvoir sortir rapidement quelque chose de fonctionnel, afin d'avoir un sentiment de gratification et d'encouragement.
    A mon avis, le programmeur doit se concentrer sur son objectif et ne devrait pas (trop) se prendre la tête avec des problèmes du siècle dernier tels que GC ou les buffer overflows.

    Donc autant apprendre un langage qui a le vent en poupe et pour lequel il y a de la demande. A l'univ je me suis tapé du Pascal qui à l'époque était déjà une "langue morte". Même si les acquis sont transposables à d'autres langages, l'idée était clairement que c'est un tremplin vers d'autres langages, et que l'idée était de se frotter à plein d'autres langages par la suite. Mais un débutant ne devrait se soumettre au même régime qu'un informaticien de carrière.

    J'entends les critiques envers PHP, mais si on veut faire de la programmation web c'est difficilement contournable. Du reste, ce n'est parce que le langage est permissif qu'on doit programmer comme un cochon
    Mais là, apprendre PHP seul ne suffira pas: il faudra se mettre à un framework (au moins un) si on a l'ambition d'avoir de l'utilité sur le marché de l'emploi.

  3. #23
    Membre expert
    Homme Profil pro
    Développeur
    Inscrit en
    August 2003
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : August 2003
    Messages : 1 177
    Points : 3 744
    Points
    3 744
    Par défaut
    Pour apprendre un langage, c'est évidemment bien de commencer par des choses simples afin d'avoir rapidement des premiers résultats.
    Mais, il faut rapidement aborder les choses techniques (mémoire, compilation, ...) afin de ne pas faire croire que c'est facile. Développeur est un métier à part entière !

    Pour devenir développeur, il faut de la logique, savoir lire de l'anglais, savoir lire un cahier des charges, ...
    Je trouve ça normal de "filtrer" les gens sur ce métier (comme pour la médecine, la pharmacie, le droit, ...) afin de ne pas leur faire perdre plusieurs années d'études s'ils n'y arrivent pas ou que ça ne les intéresse pas. Dans le milieu professionnel, cela permet aussi d'avoir plus de gens compétents et motivés.

  4. #24
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    May 2021
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : May 2021
    Messages : 11
    Points : 61
    Points
    61
    Par défaut
    Pas simple de donner des conseils à un débutant. Je vais donner un avis sans tenir compte des débouchés professionnels, mais plutôt dans une perspective pédagogique. Je propose chronologiquement:

    (1) Python peut être une première accroche pour commencer à jouer avec les algorithmes et certains paradigmes; en ce sens le choix des prépas scientifiques de l'enseigner est raisonnable.
    Pour autant, je conseillerais de passer très vite à d'autres langages afin de ne pas prendre de mauvaises habitudes.
    (2) L'apprentissage du C me paraît nécessaire pour bien comprendre les problématiques liées aux contraintes matérielles dont la gestion de la mémoire; et commencer à mieux comprendre la notion de typage.
    (3) Passer à l'apprentissage d'un langage multiparadigme plus structurant et contraignant que Python comme le C#. Là, je propose C# par goût personnel, car je le trouve plus agréable à utiliser que Java, et moins complexe à maîtriser que C++.
    (4) À ce stade, je conseillerais l'apprentissage d'un langage comme Rust, qui à mon avis est plutôt fait pour des programmeurs ayant une relative expérience des langages de programmation. Au stade (4), il y a évidemment toutes sortes d'autres langages intéressants à étudier. Mais je propose Rust, car je trouve d'expérience que c'est un langage riche, esthétique, sûr et performant.

  5. #25
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    July 2013
    Messages
    4 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : July 2013
    Messages : 4 579
    Points : 10 406
    Points
    10 406
    Par défaut
    Moi j'aime bien mon enseignement université en 2000
    • l'assembleur, mais le truc le + simple: 6800
    • 1 langage pour le génie logiciel/ algorithmie (**): SML (<- la blague c'est Stupide M*rdique Language ) [remplacé par Scheme]
    • 1 langage procédural (*): C le roi (+ du "bas niveau" au passage) et Pascal (pas Delphi): 1 légère notion de pointeurs mais c'est surtout assez proche de l'algorithmie (avec les blocs de déclarations variables, corps, ... et la manipulation des données également) et 1 compilation très rapide (idéal pour l'apprentissage)
    • 1 langage objet [pur]: Java le roi (ou éventuellement Smalltalk)
    • 1 langage fonctionnel: Lisp
    • les langages listings sont obsolètes: COBOL, BASIC

    J'avais vu d'autres langages mais liés à leurs domaines: Prolog (moteurs d'inférences), Programmation Orientée Aspect (ce sont des modules Java), bash/ sh (administration Linux), Merise (c'est 1 méthode, mais il y a tellement de trucs que bon)

    Et les incontournables: C++ (clients lourds), SQL (BD), XML (méta), HTML/ JavaScript (Web + Programmation Orientée Prototypes, maintenant on ajoute CSS et TypeScript), Ada (industriel) … maintenant on ajoute Python (script)


    Édit: *: programmation impérative me dit Internet ce terme venu des fonds des âges

    **: la + grosse partie que je me souvienne, c'est d'avoir 1 langage ultra simple à apprendre, essentiellement basé sur les booléens et ainsi prouver la validité d'un algorithme (tables de vérité/ Karnaugh, tautologie, …)

  6. #26
    Membre éprouvé
    Homme Profil pro
    Programmeur des cavernes
    Inscrit en
    August 2017
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Programmeur des cavernes
    Secteur : Enseignement

    Informations forums :
    Inscription : August 2017
    Messages : 364
    Points : 1 241
    Points
    1 241
    Par défaut
    C, C# ou Java, Python. Dans cet ordre. Commencer par Python c'est détruire le cerveau d'un futur programmeur.

  7. #27
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    March 2005
    Messages
    2 525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : March 2005
    Messages : 2 525
    Points : 4 905
    Points
    4 905
    Par défaut
    Je suis assez d'accord avec ceci mais en même temps j'y apporterai un petit bémol :
    Python n'est pas un bon langage pour débuter, il est très facile de coder avec, trop facile justement. Pas de type (c'est optionnel et je doute qu'un débutant le fasse), python lui apprendra pas a bien coder correctement.
    Déjà, l'une des affirmation est fausse.
    Python est typé, certes, dynamiquement, mais typé quand même.
    Python peut tout à fait être le bon langage pour apprendre à coder correctement si on est rigoureux.
    Mais c'est la qu'est le problème. Il est tellement permissif qu'il est très facile de prendre de mauvaises habitudes.

    Ce que je reproche à ces langages "faciles" (pas seulement python mais bien d'autres y compris le langage qui a ma préférence, le C#), c'est qu'on écrit des lignes très facilement mais qu'un débutant va voir que ça fonctionne et ne se posera pas plus de question que ça.

    J'ai croisé beaucoup trop de personnes se disant développeur mais ne comprenant pas ce qui se cache derrière une ligne de code et se retrouvant avec des comportements non désirés ou des performances dégradées sans être capables de l'expliquer. Trouver du code fonctionnel sur internet est à la portée de n'importe qui (encore plus avec ChatGPT).
    Le comprendre et avoir conscience de ce qui se passe en interne, c'est déjà plus compliqué.

    Pour moi l'apprentissage de la programmation passe par plusieurs étapes et plusieurs langages.

    Dans un premier temps, il faut comprendre les concepts basiques (variables, typage, conditions, itérations).
    En cela n'importe quel langage peut faire l'affaire.
    Python à l'avantage d'avoir une syntaxe très simple et l'IDLE permet de faire rapidement des expériences, c'est top !
    Petit bémol, il n'a pas naturellement (à ma connaissance) d'instruction Do..While (il faut bricoler même s'il n'y a rien d'insurmontable).

    Une fois ces concepts acquis, on peut écrire des codes plus complexes qui utilisent en utilise plusieurs (voire les imbrique).
    Python étant basé sur l'indentation, le débutant est obligé de prendre cette habitude, ce qui à mon sens contribue à la lisibilité.

    Pour ce qui de la POO, je déconseillerai fortement Python dont la philosophie basée sur l'ouverture complète est en totale contraction avec le principe d'encapsulation.
    Un débutant non accompagné n'a pas conscience de l'existence de la fameuse convention de nommage avec l'undescore et même s'il en a conscience, il peut choisir de l'ignorer pour une raison ou une autre.
    Je déconseillerai également le C# (même si je l'adore) car il existe trop de mécanismes simplifiant l'écriture mais qui, encore une fois, n'aident pas à comprendre ce qui se passe réellement.
    Je conseillerai un vieux Delphi 7 même s'il est très verbeux (ou alors C# mais sur un Framework inférieur à la 3.5).

    Enfin, je conseillerai de passer un petit moment sur l'assembleur pour aider à comprendre comment fonctionne la machine.

    La suite dépendra du domaine et de la techno choisis.

  8. #28
    Membre émérite
    Profil pro
    Inscrit en
    June 2009
    Messages
    885
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : June 2009
    Messages : 885
    Points : 2 752
    Points
    2 752
    Par défaut
    Le problème pour moi c'est que la question est pas très bien posée déjà.

    Il veut faire quoi le débutant ? Un petit truc chouette pour sa bande de potes vite fait ou il veut devenir un professionnel ?

    Dans le premier cas, Java ou Python serait sans doute une bonne réponse.

    Mais s'il veut devenir un professionel, un avec qui on a envie de bosser et pas juste un singe copier/coller de Stackoverflow, il faut les bases théoriques/pratiques.

    Gestion de la mémoire, Gestion des IO, les Threads d'UI, programmation impératives, objets, le langage de programmation n'est que le support pour apprendre ça correctement.

    Je ne suis pas forcément pour apprendre passer obligatoirement par le C/C++ en tant que tel, mais quelques cours sur à quoi ressemble les instructions les plus élémentaires (assembleur) ou par exemple à quoi ressemble la réalité (et donc pourquoi il faut éviter de faire le petit malin en recodant tout la main), exemple : implémentation de la fonction strlen :



    Sans même aller jusqu'à former quelqu'un a être capable d'écrire ça lui même on voit qu'il existe plusieurs version, et que la raison c'est que la portabilité + l'archi-optimization de ces fonctions élémentaires via des instructions assembleurs toujours plus riches au fur et à mesure des générations de processeur que tout les langages appelles plutôt que de recodés eux-même.

  9. #29
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    April 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : April 2004
    Messages : 830
    Points : 1 429
    Points
    1 429
    Par défaut SURPRISE !
    J'ai voté Pascal en m'attendant à être bien seul.
    Cette "vieillerie" est arrivée deuxième !
    Derrière le truc à la mode.
    C'est à cela qu'on voit la vraie qualité : elle dure.
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  10. #30
    Expert confirmé

    Homme Profil pro
    .
    Inscrit en
    October 2019
    Messages
    1 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : .
    Secteur : Conseil

    Informations forums :
    Inscription : October 2019
    Messages : 1 269
    Points : 5 130
    Points
    5 130
    Par défaut
    Citation Envoyé par Nebulix Voir le message
    J'ai voté Pascal en m'attendant à être bien seul.
    Cette "vieillerie" est arrivée deuxième !
    Derrière le truc à la mode.
    C'est à cela qu'on voit la vraie qualité : elle dure.
    je connais pas pascal, mais python on peut pas dire que c'est "le truc à la mode".
    python ca existe depuis 20ans et a de vrai utilité technique dans le monde pro.
    c'est pas le dernier framework js a la mode qui va disparaitre dans 6mois.

Discussions similaires

  1. Quels langages de programmation utilisez-vous pour Arduino ?
    Par Michael Guilloux dans le forum Arduino
    Réponses: 13
    Dernier message: 21/04/2020, 22h33
  2. Dans quels langages de programmation seriez-vous prêt à vous investir en 2017 ?
    Par Community Management dans le forum Langages de programmation
    Réponses: 70
    Dernier message: 21/02/2020, 20h14
  3. Quels sont les langages de programmation que vous détestez le plus, et pourquoi ?
    Par Community Management dans le forum Langages de programmation
    Réponses: 214
    Dernier message: 31/08/2017, 11h38
  4. Sondage : quels sont les langages de programmation que vous maîtrisez ?
    Par Michael Guilloux dans le forum Débats sur le développement - Le Best Of
    Réponses: 81
    Dernier message: 27/03/2017, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo