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 !

Quels sont les langages de programmation à conseiller à un débutant ? La panoplie des choix est déroutante
Dans un panier qui en compte des milliers dont on fait usage de par le monde

Le , par Patrick Ruiz

2PARTAGES

43  0 
Quels sont les langages de programmation à conseiller à un débutant ?
Python
58 %
Pascal
42 %
Java
40 %
Typescript
30 %
C#
28 %
C
24 %
Rust
23 %
Javascript
16 %
C++
16 %
Kotlin
10 %
PHP
9 %
Basic
6 %
VBA
5 %
Ruby
4 %
Assembleur
2 %
Visual Basic
1 %
Fortran
1 %
Delphi
0 %
Bash
0 %
Je ne sais pas
0 %
VHDL
0 %
Swift
0 %
Ladder
0 %
Cobol
0 %
Go
0 %
Autres (à préciser)
1 %
Voter 204 votants
Quel langage de programmation conseilleriez-vous à un débutant surtout si ce dernier en est au stade où il se dit que HTML en est un. Grosso, on compte des milliers de langages de programmation et donc la panoplie des choix est déroutante. Néanmoins, certains critères président au choix d’un langage de programmation, l’un étant le domaine de développement. En d’autres termes, si l’on veut travailler dans un domaine précis ou sur des problématiques précises, certains langages vont s’imposer d’eux-mêmes. Développement web, développement d’applications mobiles, programmation système, etc. La liste des domaines est extensible à souhait.



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.



Et vous ?

Quels langages conseilleriez-vous à un débutant pour le développement web ? Pourquoi ? Partagez votre expérience
Quels langages conseilleriez-vous à un débutant pour le développement d’applications mobiles ? Pourquoi ? Partagez votre expérience
Quels langages conseilleriez-vous à un débutant pour la programmation système ? Pourquoi ? Partagez votre expérience
Quels langages conseilleriez-vous à un débutant pour le 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

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

Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 08/07/2023 à 8:26
Je proposerais de commencer par le C et C++

Beaucoup de langages sont basés sur la syntaxe C/C++

Pour les systèmes embarqué c'est plutôt le C qui est utilisé. Pour Android c'est un dérivé de Java, pour IOS c'est de l'objective-C ou swift dont la syntaxe est proche du C.

Python est intéressant pour l'apprentissage mais la syntaxe est différente.
5  0 
Avatar de smarties
Expert confirmé https://www.developpez.com
Le 10/07/2023 à 9:10
Apprendre le C et le C++ pour les mécanismes de mémoire, de compilation, ... reste bien à mon avis.

Pour les développeurs front, je dirais de prioriser TypeScript aujourd'hui en ayant des bonnes notions de JS quand même.

Pour le back-end, je dirais Python ou Go. JAVA reste intéressant mais je trouve qu'il a une légère perte de popularité au profil des 2 cités avant.
Je pense aussi Rust qui peut être bien en langage secondaire.

Une fois que l'on a de solides bases, d'expérience, il est judicieux de se spécialiser sur 1-2 langages.
4  0 
Avatar de Bousk
Rédacteur/Modérateur https://www.developpez.com
Le 10/07/2023 à 21:16
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 ?
4  0 
Avatar de jvallois
Membre éprouvé https://www.developpez.com
Le 10/07/2023 à 9:30
Suite à la dernière réforme, Python est le langage utilisé au lycée général. Il y a même une question sur Python dans le sujet de Mathématiques :


Les élèves qui suivent la spécialité NSI le voient de façon plus approfondie.
3  0 
Avatar de bcag2
Membre actif https://www.developpez.com
Le 10/07/2023 à 9:59
Si Python en premier, pour
  • justement sa "simplicité"
  • le fait qu'il est libre (donc non assujetti à un OS/éditeur…) et donc multi-plateforme.
  • son éco-système qui fait qu'on peut faire beaucoup de chose avec dans beaucoup de domaines différents (web, calculs, openhardware…)
4  1 
Avatar de Fagus
Membre expert https://www.developpez.com
Le 10/07/2023 à 10:43
Je pense qu'il faut définir de quel débutant on parle.

Python, c'est utilisé sur le terrain pour les collégiens et lycéens. À mon avis, c'est un bon compromis, car ce qui est vu comme un inconvénient (langage à Duck typing , éloigné de la machine), est un avantage pour l'âge scolaire pour apprendre l'algo et raisonner sur des math sans se préoccuper de ce qui tourne sous le capot (pas de débordement d'entier, pas de gestion de la mémoire). On peut aussi faire l'introduction à la POO.
Donc, oui comme c'est permissif, on peut prendre des mauvaises habitudes, mais rien qu'on ne puisse éviter avec des cours sur les bonnes pratiques (et un passage par un autre langage non permissif).
Un autre avantage, c'est qu'on y trouve de tout. En python, on peut commencer par un hello world en GUI (en 2 lignes s'il le faut) par ex. Dans d'autres langages, le débutant reste limité longtemps à la console.
C'est aussi un langage utilisable à la fois scolairement et professionnellement, c'est toujours bon à prendre.

Si la question porte sur les cours à donner à des étudiants en 1er cycle d'informatique, ce sera pas forcément la même réponse.

De toutes façons, il faut apprendre plusieurs types de langages conceptuellement différents pour avoir un bon panorama. (par ex, entre le C où on essaie de ne pas faire fuiter la mémoire, et smalltalk où on écrit les tests unitaires avant d'écrire le code, il y a deux mondes)
4  1 
Avatar de Rep.Movs
Membre habitué https://www.developpez.com
Le 10/07/2023 à 11:31
  • Python: Le langage est un bon équivalent au BASIC de l'époque pour débuter. Mais les outils sont à mille lieues de ce qu'on fait actuellement
  • Java/C#/Pascal: Avec un bon environnement, je trouve ces langages intéressants, mais les framework freinent l'apprentissage (c'est plus de l'abrutissage par moment)
  • C/C++/Rust: Pas pour commencer. Ou alors juste pour voir comment la RAM est réellement gérée...
  • Pour le Web: HTML, CSS, les principes du protocole HTTP, PHP, comment le serveur web résout les sessions... Une catastrophe à apprendre, ne pas commencer par cela
  • Javascript/TypeScript: avantage: c'est dispo dans la machine. Avec un page HTML basique on peut s'amuser. Mais JS peut mener à des horreurs en termes de réalisation


Je ne suis pas un pro-python, mais pour début c'est pas mal. Comme dit plus tôt, c'est surtout pour résoudre des petits problèmes par-ci par-là, mais faire un gros programme en python est une torture.

Le problème n'est pas le langage, c'est apprendre l'environnement autour. La programmation web me semble toujours un empilement de briques catastrophiquement compliquées à outrance: réaliser la même chose avec des technos plus "anciennes" en client/serveur avec un environnement RAD est tellement plus facile, rapide, et moins risqué pour un débutant (je suis tout à fait d'accord que pour un programmeur aguerri qui sait s'équiper et architecturer, ça ne pose pas de problème majeur - mais le nombre d'outils et concepts à construire/acquérir/apprendre est tellement important ...)
3  0 
Avatar de sergio_is_back
Expert confirmé https://www.developpez.com
Le 10/07/2023 à 16:50
Citation Envoyé par jvallois Voir le message
En fait, les programmes du collège parlent de Scratch, qui fait, lui aussi, l'objet d'une question au DNB :

Ça n'a rien de nouveau...

On n'arrête pas de réinventer la roue décidément, il y a plus de 30 ans on utilisait le langage Logo qui propose quasiment les mêmes possibilités avant de l'abandonner :

https://fr.wikipedia.org/wiki/Logo_(langage)

Sans doute lors d'une énième réforme lors l'arrivée d'un nouveau ministre de l’éducation nationale
3  0 
Avatar de binarygirl
Membre chevronné https://www.developpez.com
Le 10/07/2023 à 22:35
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  0 
Avatar de popo
Expert confirmé https://www.developpez.com
Le 13/09/2023 à 12:25
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.
3  0