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
219. Vous ne pouvez pas participer à ce sondage.
  • Assembleur

    6 2,74%
  • Basic

    17 7,76%
  • Bash

    2 0,91%
  • C

    53 24,20%
  • C++

    35 15,98%
  • C#

    62 28,31%
  • Cobol

    0 0%
  • Delphi

    2 0,91%
  • Fortran

    3 1,37%
  • Go

    0 0%
  • Java

    84 38,36%
  • Javascript

    38 17,35%
  • Kotlin

    23 10,50%
  • Ladder

    0 0%
  • Pascal

    91 41,55%
  • PHP

    18 8,22%
  • Python

    124 56,62%
  • Ruby

    10 4,57%
  • Rust

    50 22,83%
  • Swift

    0 0%
  • Typescript

    63 28,77%
  • Visual Basic

    7 3,20%
  • VBA

    14 6,39%
  • VHDL

    0 0%
  • Autres (à préciser)

    4 1,83%
  • Je ne sais pas

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

Les étudiants de première année doivent-ils être initiés à la programmation en s’appuyant sur Python ou Java


Sujet :

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

  1. #21
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 137
    Points : 33 102
    Points
    33 102
    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 ?

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 881
    Points
    1 881
    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
    Expert confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 388
    Points : 4 520
    Points
    4 520
    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 habitué
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2021
    Messages
    55
    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 : Mai 2021
    Messages : 55
    Points : 183
    Points
    183
    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
    Juillet 2013
    Messages
    4 709
    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 : Juillet 2013
    Messages : 4 709
    Points : 10 755
    Points
    10 755
    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
    Août 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 : Août 2017
    Messages : 364
    Points : 1 235
    Points
    1 235
    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
    Mars 2005
    Messages
    2 848
    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 : Mars 2005
    Messages : 2 848
    Points : 5 743
    Points
    5 743
    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
    Juin 2009
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 952
    Points : 2 910
    Points
    2 910
    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
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 455
    Points
    1 455
    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.

  10. #30
    Expert éminent
    Avatar de calvaire
    Homme Profil pro
    .
    Inscrit en
    Octobre 2019
    Messages
    1 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : .
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2019
    Messages : 1 813
    Points : 6 659
    Points
    6 659
    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.

  11. #31
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2019
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2019
    Messages : 267
    Points : 1 248
    Points
    1 248
    Par défaut
    J'ai voté pour Basic (Visual ou pas, mais sans le .NET), Pascal (ou Delphi) et Javascript.
    Un "débutant" qui veut faire quoi ? Du développement web (d'où le choix javascript) ou du développement non-web (le basic et le pascal sont idéals pour s'initier à la programmation).

  12. #32
    Chroniqueur Actualités
    Avatar de Patrick Ruiz
    Homme Profil pro
    Redacteur web
    Inscrit en
    Février 2017
    Messages
    2 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Redacteur web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2017
    Messages : 2 137
    Points : 57 288
    Points
    57 288
    Par défaut Les étudiants de première année doivent-ils être initiés à la programmation en s’appuyant sur Python ou Java ?
    Les étudiants de première année doivent-ils être initiés à la programmation en s’appuyant sur Python ou Java ?
    Quels langages devrait-on utiliser pour cette initiation ?

    Dans les années 80, Pascal était le langage de programmation le plus utilisé pour l’initiation à la programmation. Compte tenu du faible taux d’utilisation du langage en milieu professionnel, Pascal a été progressivement abandonné par les universités en faveur des langages plus populaires en entreprise. C’est l’approche pour laquelle a opté le Khoury College of Computer Sciences dans le cadre d’une refonte de son cursus. Cette dernière marque l’entrée en scène du langage Python en section d’initiation à la programmation informatique. Le tableau ravive le débat sur la question de savoir quel est le langage idéal pour initier des tiers à la programmation informatique.

    « Un bon programme d'études en informatique doit mettre l'accent sur des principes fondamentaux largement applicables, permettant aux étudiants de s'adapter facilement aux nouvelles technologies dans le domaine qu'ils abordent. Il doit enseigner aux étudiants comment penser aux logiciels et comment résoudre les problèmes. C'est exactement ce que le programme actuel de Northeastern s'efforce de faire. Le cours « Fundamentals of Computer Science », ou « Fundies », comme on l'appelle communément, enseigne la conception systématique de programmes par le biais de la recette de conception, qui fournit une formule cohérente pour s'attaquer à des problèmes peu familiers. La recette de conception décompose un problème en petites étapes réalisables, dont les premières demandent aux étudiants de réfléchir soigneusement au problème avant d'écrire le code pour le résoudre. Les cours de base tels que Fundies 1, Fundies 2, Conception orientée objet et Développement logiciel se concentrent sur la formation des étudiants à raisonner sur le code, plutôt qu'à l'écrire sans réfléchir », commente un enseignant assistant.

    « Mais aujourd'hui, alors que le marché de l'emploi dans le secteur technologique est au plus bas depuis plus de vingt ans, le Khoury College of Computer Sciences envisage d'abandonner l'approche qui a toujours permis à ses diplômés de réussir. Le projet de refonte de l'école prévoit la suppression progressive de Fundies 1, Fundies 2 et Object-Oriented Design (conception orientée objet), et leur remplacement par des cours entièrement nouveaux. Les nouveaux cours enseigneront principalement Python, et l'école affirme que c'est un avantage supplémentaire car Python « est actuellement le langage le plus demandé par les employeurs des programmes coopératifs ». Mais nous ne devrions pas enseigner un langage simplement parce qu'il est actuellement populaire dans l'industrie - nous devons choisir un langage qui a une réelle valeur pédagogique. Racket a été choisi parce qu'il permet d’introduire des fonctionnalités au fur et à mesure que les étudiants apprennent les principes de conception pertinents. Bien que le nouveau programme commence par Pyret, qui est également conçu à des fins d'enseignement, il passera rapidement à Python dans le premier cours. Python n'a rien de semblable : les étudiants doivent apprendre d'emblée des fonctionnalités complexes, avant d'acquérir les compétences de conception qui leur permettront d'utiliser ces fonctionnalités de manière propre et efficace », indique-t-il pour ce qui est des changements à venir.

    « Les étudiants qui entrent à l'université ont des parcours et des expériences de programmation de plus en plus hétérogènes. Certains sont totalement novices en informatique, tandis que d'autres apportent des crédits de transfert ou des crédits NUin provenant d'universités partenaires à l'étranger. Environ 40 % des étudiants de Khoury arrivent avec des crédits en informatique, et d'autres ont appris par eux-mêmes ou par des moyens non traditionnels. Plutôt que d'envoyer tout le monde à Fundies 1, nous visons une séquence d'introduction plus adaptable dans laquelle chaque étudiant suit les cours qui ont le plus de sens pour lui compte tenu de son point de départ.

    Un autre problème concerne Fundies 2, qui consacre un semestre entier à faire passer les étudiants de la programmation fonctionnelle en Racket à la programmation impérative en Java. Cette transition est nécessaire en raison de l'endroit où nous faisons commencer les gens dans Fundies 1, mais elle ne serait pas nécessaire si nous commencions dans un autre langage.

    La « conception orientée objet » est un bon cours qui enseigne beaucoup de choses, et c'est effectivement la porte d'entrée vers les entreprises, le cours que vous devez suivre pour être prêt. Mais parce qu'il est si important, il comporte trop de responsabilités et de matériel, et c'est trop pour beaucoup d'étudiants. La charge de travail est l'une des plus élevées de tous les cours que nous proposons ; c'est ce que nous disent régulièrement les étudiants dans leurs évaluations. L'idée n'est pas de se débarrasser de la matière, mais de la répartir sur l'ensemble du cursus, afin qu'elle ne soit pas concentrée sur un seul semestre.

    Les cours Fundies 1, Fundies 2 et conception orientée objet vont être progressivement supprimés et nous allons repartir sur de nouvelles bases. Cela ne signifie pas que le contenu et les aspects que nous apprécions dans ces cours disparaîtront, mais qu'ils seront présentés sous une forme différente », expliquent les têtes derrière la refonte de ces programmes.

    Un langage de programmation pour débutants est aussi fonction du domaine cible

    Quels langages pour un débutant en développement web ?

    Certains professionnels de la filière recommandent HTML, CSS, JavaScript ou PHP pour ce qui est du développement frontend et Java, Python ou Ruby quant à ce qui est du développement backend. Ce sont des langages que l’on retrouve d’années en années dans les classements d’institutions comme IEEE.

    Lesquels suggéreriez-vous pour un débutant en développement d’applications mobiles ?

    Le choix du meilleur langage pour le développement d'applications dépend en grande partie du système d'exploitation avec lequel le programmeur compte travailler. Le fait est que différents systèmes d'exploitation prennent en charge différents langages de programmation mobiles. Par exemple, lorsque Swift et Objective C sont utilisés pour les applications iOS, Kotlin et Java sont utilisés pour le système d'exploitation Android. En revanche, React Native est idéal pour les deux.

    Quid du cas de la programmation système ?

    Ceux qui écrivent du code pour des systèmes d’entrée/sortie de base (BIOS), des chargeurs d’amorce, des systèmes d’exploitation, etc. sont dans la filière de la programmation système. Ici, on est dans les méandres du fonctionnement des systèmes informatiques ; on parle de code avec lequel l’utilisateur n’interagit, car distinct de celui de la couche dite applicative.

    Dans cette filière c’est le C qui s’est imposé aux intervenants pour plusieurs raisons. Primo, il y a qu’en tant que langage évolué, le langage C permet aux développeurs de gagner en matière d’utilisabilité et de productivité ; c’est moins de lignes du code pour accomplir les mêmes tâches en comparaison à l’assembleur. C’est aussi un niveau de performance qui proche de celui de l’assembleur Deuxio, il y a que le passage au C n’induit pas de pertes en termes de possibilités que l’assembleur offre. C’est d’ailleurs utilisé par les mainteneurs du noyau Linux. Depuis le mois de septembre de l’année précédente, le langage Rust a fait son entrée dans ce cercle portant ainsi à deux le nombre de langages utilisés pour le développement du noyau Linux.

    Et pour les systèmes embarqués ?

    Plusieurs langages de programmation se veulent dédiés à l’embarqué. Parmi ces langages se trouvent Ada et le langage assembleur, ce dernier restant encore un choix approprié pour les systèmes soumis à des contraintes sévères de temps réel. Des langages proches de la machine comme le C et dans une moindre mesure le C++ sont aussi utilisés. On retrouve en sus d’autres langages tels que Arduino, Haskell, D, LabVIEW et VHDL dans la liste de ceux dont on fait usage pour le développement des systèmes embarqués.

    Source : Khoury

    Et vous ?

    Quels sont selon vous les ingrédients indispensables à une classe d'initiation à la programmation informatique ?
    Quels langages est idéal pour l’initiation d’un débutant au développement web ? Pourquoi ? Partagez votre expérience
    Quels langages est idéal pour l’initiation d’un débutant au développement d’applications mobiles ? Pourquoi ? Partagez votre expérience
    Quels langages est idéal pour l’initiation d’un débutant à la programmation système ? Pourquoi ? Partagez votre expérience
    Quels langages est idéal pour l’initiation d’un débutant au développement embarqué ? Pourquoi ? Partagez votre expérience

    Voir aussi :

    Emploi développeur 2018 : les langages les plus demandés et les mieux payés
    Quels sont vos langages de programmation préférés pour le Web en 2017 ? Et pourquoi ? Vous êtes invités à partager votre expérience
    Sondage : quels sont les langages de programmation qui vont probablement disparaître dans les prochaines années ?
    Kotlin gagne trois places et dépasse Scala dans le classement PYPL, l'indice qui analyse la fréquence de recherche des tutoriels sur Google
    Sondage : quels sont les langages de programmation que vous détestez le plus en 2019 ? Pourquoi ? Partagez vos avis
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  13. #33
    Expert éminent
    Avatar de calvaire
    Homme Profil pro
    .
    Inscrit en
    Octobre 2019
    Messages
    1 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : .
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2019
    Messages : 1 813
    Points : 6 659
    Points
    6 659
    Par défaut
    l'objectif d'une 1ere année et de maitriser les fondamentaux, donc je dirais plutôt le langage C, qui permet de mettre en pratique le théorique (gestion mémoire, instruction cpu...etc.), et le C est un langage stricte (un entier ne peut pas devenir une chaine de caractère comme en python)
    Je dirais C et ensuite c++/java pour l'objet. Je mettrais python en dernier, car python est pour moi un langage "d'expert", c'est un langage facile et très permissif, c'est justement son danger, un junior a vite fait de faire n'importe quoi, il est important de maitriser les bonnes pratique avant de partir sur du python. C ne pardonne pas la moindre erreur.

    ensuite les années suivantes il faut former sur des langages utilisé par les entreprises, il est indispensable en sortie d'école d'avoir les bases dans au moins 3 de ces langages Java/Python/C/C++ et un langage web (php ou js)


    edit: j'ai déjà travaillé avec des datascientistes, bon en datascience mais absolument pas dev et quand ils m'envoyait leurs code python c'était affreux, absolument pas industrialisable. Ils ne maitrisait aucune notion, les variables qui change de type, pas d'objets, des fonctions avec n'importe quoi en entrés et en sortie...etc.
    C'est pour cela que je dis que python est un très mauvais langage pour débuter, toute les horreurs sont possibles.
    Un dev c/c++/java ou autres ne fera pas ces erreurs de débutant. Il aura eu les réflexes de faire une bonne structure/architecture (des objets, des fonctions, il ne fera pas de variables globale inutilement...) clairement définie.

  14. #34
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 125
    Points : 655
    Points
    655
    Par défaut
    Ce qu'il faut pour commencer, c'est un langage simple, transactionnel, qui permette de faire de l'appli ligne de commande.
    Evidemment, comme une grande majorité de personne, je pense au langage C qui fut mon langage premier.

    Du coup, je pense à un autre langage transactionnel qui pourrait être très intéressant tout en apportant plus d'élements que le C, le langage Rust.

    ce qui serait un réel avantage je pense vu qu'il me semble être un langage d'avenir.

    Ensuite, apprendre un langage orienté objet (.Net ou Java).
    le choix d'apprendre les langages web (javascript/Java) vs data (python/scala/R) vs embarqué (C/Rust/...) devrait être ensuite dans une option dans les années plus avancées.

  15. #35
    Expert confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 388
    Points : 4 520
    Points
    4 520
    Par défaut
    Pour la première année, je vous rejoints avec C (ou Rust)

    Ensuite, je dirais qu'il serait bien de faire du Go car ça progresse en entreprise. J'ai fait plusieurs entreprises et elle changeait de JAVA (car trop gourmand pour des microservices, beaucoup de RAM nécessaire pour faire tourner un IDE, ...) vers un autre langage (Python ou Go).

  16. #36
    Membre averti
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Février 2024
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Février 2024
    Messages : 143
    Points : 431
    Points
    431
    Par défaut
    Question facile ! Python est un standard industriel là pour durer au contraire de Java qui est passé de mode.

  17. #37
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 109
    Points : 3 203
    Points
    3 203
    Par défaut
    et bien je dirais pour commencer : LUA un langage simple et qui a l'inverse de C/C++ n'est pas pollué par quantité de syntaxe et de concept qu'on ne trouve que dans ces languages.

    et continuer sur : Java et Typescript, python si c'est un besoin.
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  18. #38
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 848
    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 : Mars 2005
    Messages : 2 848
    Points : 5 743
    Points
    5 743
    Par défaut
    L'avantage du Pascal (sur lequel j'ai également commencé pendant mes études) est qu'il permettait de maitriser les fondamentaux, puis les concepts POO, tout en mettant des garde-fous pour éviter de prendre de mauvaise habitudes.
    Par mauvaises habitudes, je rejoins Calvaire sur Python et son typage pas très strict, ou encore sa vision de l'encapsulation en POO (sur laquelle j'ai eu des débats houleux avec certains membres du forum).

    Donc dans un premier temps, pour acquérir les bases, j'aurais laissé le Pascal.
    Mais effectivement, à moi aussi, le C parait être une excellente option.

    Pour l'objet, également j'aurais laissé le Pascal, ou plutôt le Delphi qui est son héritier.
    Le C#, qui est mon langage de prédilection, est excellent pour faire de l'objet.
    Mais Microsoft a tellement travaillé dessus pour gagner en productivité qu'il masque aujourd'hui une partie de ce qu'un étudiant devrait connaître.
    Le GC n'aide pas non plus à comprendre la durée de vie d'un objet.

    Pour le Web, je n'imagine pas un apprentissage sans HTML/CSS/JS.
    Cela peut paraître vieux jeu mais j'ai vu passer tellement d'alternants qui faisait des appli avec ASP/Net et MVC ou d'autres outils et qui n'avais aucune idée de ce qui se cachait sous le capot.

    Pour le mobile, C# et MAUI.

  19. #39
    Expert éminent sénior

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 856
    Points : 19 359
    Points
    19 359
    Par défaut
    Citation Envoyé par RenarddeFeu Voir le message
    Question facile ! Python est un standard industriel là pour durer au contraire de Java qui est passé de mode.
    Java n'est pas du tout passé de mode et il est même numéro 1 sur les offres d'emploi.
    Ne prenez pas la vie au sérieux, vous n'en sortirez pas vivant ...

  20. #40
    Candidat au Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Novembre 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité

    Informations forums :
    Inscription : Novembre 2021
    Messages : 1
    Points : 3
    Points
    3
    Par défaut
    La réponse reste quand même vachement liée à ce que les étudiants veulent faire plus tard,
    - C, C++, ASM et Rust sont bien pour développer des choses pour de l'embarqué, bricoler du Linux, faire des logiciels ultra rapide, des drivers,
    - Bash pour tout ceux qui sont amener à travailler sur Linux ou plus largement les Unix-likes,
    - Python pour des choses autour de l'IA
    - C# pour des app exclusivement Linux ou des jeux sur moteur ou sans moteur
    - Java, Kotlin, et un langage compilé machine type C, C++, Rust pour les app Android,
    - Swift pour du dev Apple exclusivement,
    - PHP et JS et même ASP sont bien pour aller faire du site web,
    - Pascal, Fortran et tous ces "vieux langages pour des app et librairies scientifiques,
    - Ada car c'est formateur.
    ...

    Le VBA par contre ne me semble pas d'avenir pour quelqu'un en école de dev car : MS va l'abandonner au profit de Python et que de toute façon les ingénieurs dans les domaines scientifiques l'apprennent déjà à l'école (avec Python pour certaines écoles), donc un besoin en spécialistes plus restreint.
    Pour le/les Basic, à par s'amuser sur son émulateur C64 a faire des rétro app à vendre sur itch.io je ne vois pas d'intérêt pratique pour lequel des gens serait près à payer, mais après je ne suis pas quelqu'un qui à fait un cursus traditionnel de prog.

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