Affichage des résultats du sondage: Selon vous, quel est le meilleur langage pour apprendre la programmation ?

Votants
274. Vous ne pouvez pas participer à ce sondage.
  • C

    85 31,02%
  • C++

    36 13,14%
  • Python

    53 19,34%
  • Ruby

    16 5,84%
  • Java

    28 10,22%
  • C#

    12 4,38%
  • PHP

    9 3,28%
  • Matlab

    9 3,28%
  • HTML/CSS

    8 2,92%
  • OCaml

    14 5,11%
  • 1 0,36%
  • 1 0,36%
  • 1 0,36%
  • 1 0,36%
+ Répondre à la discussion Actualité déjà publiée
Page 1 sur 14 1234511 ... DernièreDernière
  1. #1
    Expert éminent sénior

    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : septembre 2014
    Messages : 194
    Points : 12 264
    Points
    12 264

    Par défaut Quel est le meilleur langage pour débuter la programmation ?

    Quel est le meilleur langage pour débuter la programmation ?
    Les avis diffèrent et chacun a ses critères

    L’équipe de Developpez.com a souvent remarqué des questions sur les forums ou les réseaux sociaux d’apprentis programmeurs qui demandent « quel est le meilleur langage pour débuter la programmation ? », le problème avec ce genre de questions, c’est que la discussion tourne rapidement vers un débat infini où les développeurs plus expérimentés prônent que leur langage de programmation préféré est le meilleur. Résultat : l’apprenti qui avait posé la question se trouve encore plus perdu dans son choix parmi le vaste nombre de langages qui existent.

    Avant de pouvoir dresser une liste des meilleurs langages pour débutants, nous voulions d’abord connaître combien il existe de langages de programmation ? Une page sur Wikipédia nous a donné à peu près une idée, plus de 1500 langages répertoriés ! D’accord ! Ce n’était peut-être pas la bonne question à se poser. Nous nous sommes donc orientés vers les statistiques pour savoir quels sont les langages les plus utilisés : selon notre sondage, les trois langages de programmation préférés de la communauté de Developpez.com durant l’année 2014 sont C#, Java et C++ (avec à peu près 20% chacun), suivis de Python (10%) et Windev (7%).

    Mais il faut avouer que cela ne touche qu’une communauté bien particulière, en réalité : le nombre de participants au sondage était de 257 lors de l’écriture de cet article, ce qui est assez peu en termes de statistiques pour pouvoir tirer des conclusions. De plus le sondage ne prenait pas en compte les langages orientés web. Heureusement, IEEE était là pour nous sauver puisque l’organisation de standardisation publie chaque année des études détaillées pour classer les langages de programmation, la figure suivante montre les 20 langages informatiques les plus utilisés dans le monde durant cette année :


    Ceci montre déjà une nette différence, mais ne résout toujours pas le problème. En effet, il s’agit là des langages utilisés par les développeurs expérimentés et les grandes entreprises de développement, mais est-ce l’idéal pour un débutant ?

    En fait, les avis sont partagés : certains des développeurs questionnés nous répondent que le meilleur langage pour l’apprentissage de la programmation est le C ; il est basique, simple et bas niveau, ce qui permettra à l’apprenant de comprendre réellement comment la machine fonctionne en interne. D’autres répondent que non : Python et Ruby sont les meilleurs pour apprendre puisqu’ils ont une syntaxe intuitive, ils sont puissants et en même temps très faciles à utiliser, de plus ils sont orientés objet ce qui permet de maîtriser ce concept assez tôt lors de la phase d’apprentissage.

    D’autres encore préconisent qu’il faut commencer par des métalangages comme OCaml et SML, même s’ils ne pas beaucoup utilisés dans le développement professionnel, ils permettent tout de même d’apprendre l’importance des types de données et comment la machine les gère. Il y a aussi beaucoup de personnes qui conseillent de commencer avec PHP, qui reprend grandement la syntaxe du C++, mais en moins stricte. Quelques personnes parlent aussi du Java ou du C#, mais ce sont des langages beaucoup trop compliqués selon certains pour être adressés à des novices qui n’ont pas encore assimilé les concepts de base de la programmation.

    Quoi qu’il en soit, les enseignants dans les universités et les écoles préfèrent généralement commencer par : C/C++, Python, Matlab, OCaml ou encore Ruby. Mais malgré tout ça, le choix final appartient à l’apprenant, et ce choix devra être basé sur son objectif final. Si quelqu’un veut entrer dans le domaine du développement web par exemple, il est peut-être plus sage de commencer tout simplement par le HTML non ?

    Source : Sondage de developpez.com, IEEE Ranking Spectrum, Wikipédia.

    Et vous ?

    Qu’en pensez-vous ?

  2. #2
    Expert éminent sénior

    Avatar de Neckara
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2011
    Messages
    6 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2011
    Messages : 6 150
    Points : 15 974
    Points
    15 974

    Par défaut

    Bonjour,

    Ne trouvant pas l'actualité, je me permet de poster ici.

    Quand on inclus un diagramme/graphique, on inclut aussi ses légendes !

    Sinon, je suis assez étonné par le graphique, le Java étant pourtant le 4ème (ou 3ème) langage le plus utilisé dans l'embarqué .
    Pour le "web" (?), il faudrait plus de précisions. Car avec tout ce qui est serveur applicatif, le C et le C++ ont tout de même une place non négligeable. Le "web" ne se limite pas uniquement paquets HTTP(S).

    C'est aussi un peu étrange d'avoir un langage de description au milieu de langages de programmations.
    Le HTML n'est pas un langage de programmation, c'est un langage de description.

    EDIT : D'ailleurs il me semble que c'est "Perl" et non "PERL".
    On dit "chiffrer" pas "crypter" !

    On dit "bibliothèque" pas "librairie" !

    Ma page DVP : http://neckara.developpez.com/

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : septembre 2014
    Messages : 194
    Points : 12 264
    Points
    12 264

    Par défaut

    Citation Envoyé par Neckara Voir le message
    Quand on inclus un diagramme/graphique, on inclut aussi ses légendes !
    Citation Envoyé par Neckara Voir le message
    Le HTML n'est pas un langage de programmation, c'est un langage de description.
    Bonjour,
    La légende est incluse dans le 3ème paragraphe.

    En effet, bonne remarque pour le HTML, j'insiste sur le fait que ces statistiques de IEEE portent sur le classement des langages informatiques les plus utilisés, indépendamment de leurs types.
    Ils ne font donc pas de différence entre un langage de programmation et un langage de description dans cette étude.

  4. #4
    Membre éprouvé Avatar de Simara1170
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    avril 2014
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Delphi
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2014
    Messages : 423
    Points : 1 143
    Points
    1 143

    Par défaut

    Le Php pour apprendre la programmation? Mon dieu jamais au grand jamais!
    Apprendre la programmation, ce n'est pas apprendre un langage ( qui relève plus de la formation continue/ curiosité qu'autre chose), mais apprendre la logique de programmation, et le fonctionnement de la machine...
    Et pour faire ça, il faut découper en 3 grandes catégories, chacune illustrées par un langage différent:
    1/ l'algorithmique, ou avoir un langage très verbeux et très rigide (fortement typé) permettra d'apprendre la rigueur inhérente à l'algorithmique, et pour ça ADA, ça reste un must
    2/ le fonctionnement de la machine, les changement de types, les pointeurs et autres joyeuseté bas niveau: la, le C s'impose, et les erreurs sur les pointeurs apprendront à l'étudiant quelques grands principes de la programmation bas niveau.
    3/ la POO, qui devient de plus en plus prépondérante aujourd'hui. Mais pour ça il faut encore une fois un langage assez rigide pour imposer un "cadre de bonnes habitudes", et pour ça, je trouve le java relativement adapté...

    Il n'y a pas de langage magique qui permette de maîtriser tout les aspects de la programmation d'un seul coup, il faut en utiliser plusieurs, chacun "symptomatique" d'une facette de la programmation
    Citation Envoyé par deuche
    Il y a encore à peine 150 ans, nous vivions encore comme il y a environ 2000 ans.

  5. #5
    Membre habitué
    Avatar de Thomas404
    Homme Profil pro
    Amateur de programmation
    Inscrit en
    novembre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Amateur de programmation

    Informations forums :
    Inscription : novembre 2009
    Messages : 58
    Points : 134
    Points
    134

    Par défaut

    Le C pour apprendre la programmation ? Avec la gestion de la mémoire vous allez faire fuir les gens ...

    Non il faut un langage simple, puissant et généraliste tel que python ou tout autre langage permettant de "tester" rapidement ce que l'ont fait et de pouvoir faire beaucoup en ecrivant peu.

  6. #6
    Membre averti
    Inscrit en
    juin 2010
    Messages
    322
    Détails du profil
    Informations forums :
    Inscription : juin 2010
    Messages : 322
    Points : 312
    Points
    312

    Par défaut

    Citation Envoyé par Thomas404 Voir le message
    Le C pour apprendre la programmation ? Avec la gestion de la mémoire vous allez faire fuir les gens ...

    Non il faut un langage simple, puissant et généraliste tel que python ou tout autre langage permettant de "tester" rapidement ce que l'ont fait et de pouvoir faire beaucoup en ecrivant peu.
    C pour apprendre la prog est parfait ça permet d'apprendre que ce n'est pas magique contrairement à Python et consort ça oblige à la rigueur. LE WTF n'est pas permis

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2013
    Messages : 5
    Points : 19
    Points
    19

    Par défaut

    Avant de comprendre comme ont programme, il est plutôt utile de savoir comment fonctionne un ordinateur.
    Devoir gérer la mémoire avec le C n'est donc pas une mauvaise idée. Au contraire, celà forcera les gens à comprendre ce qu'ils codent, et comprendre pourquoi quand ils font telle chose, ils ont tel résultat.

  8. #8
    Expert confirmé
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    janvier 2011
    Messages
    2 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : janvier 2011
    Messages : 2 099
    Points : 5 568
    Points
    5 568

    Par défaut

    @Simara1170 : je suis tout à fait d'accord avec votre approche.
    Cependant j'aurai plus vu un langage tel que le Pascal plutôt que de l'ADA qui est un langage assez perturbant par rapport à d'autres classiques.
    Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    avril 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : avril 2012
    Messages : 27
    Points : 66
    Points
    66

    Par défaut

    Citation Envoyé par Simara1170 Voir le message
    Le Php pour apprendre la programmation? Mon dieu jamais au grand jamais!
    Apprendre la programmation, ce n'est pas apprendre un langage ( qui relève plus de la formation continue/ curiosité qu'autre chose), mais apprendre la logique de programmation, et le fonctionnement de la machine...
    En fait ça dépend de ce qu'on appelle "apprendre la programmation", pour certains ce sera ce que tu décris, mais pour d'autre ce sera simplement apprendre à faire des applications, et dans ce cas le choix d'un langages comme PHP peut se justifier : Il est assez simple à prendre en main, permet d'obtenir très rapidement un résultat dans le cadre d'une appli web, a une communauté accueillante pour les débutants, des frameworks orientés objets bien pensés.

    De toutes façons pour avoir vu un certain nombre de personnes apprendre ou essayer d'apprendre à programmer, généralement ça bloque sur les notions de boucles et de variables... Donc j'ai envie de dire peu importe le langage.

    Sinon pour ce que ça vaut, aujourd'hui quand on me pose cette question je réponds Python, même si j'en fais très peu, ça m'a l'air d'être aussi facile à appréhender que PHP tout en étant plus cohérent.
    Le C j'ai peur que ce soit vraiment décourageant pour un débutant : Un fois qu'il a péniblement compris ce qu'était une variable une boucle et une condition, BAM ! on lui envoie l'adressage mémoire et les pointeurs en pleine figure.

  10. #10
    Membre du Club
    Homme Profil pro
    Chômeur
    Inscrit en
    juin 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chômeur

    Informations forums :
    Inscription : juin 2009
    Messages : 24
    Points : 62
    Points
    62

    Par défaut

    Pour apprendre, je pense que Python est un bon choix par la syntaxe haut niveau qu'il procure, c'est-à-dire qu'il rapproche de la langue naturelle.
    Il permet donc de développer des applis très rapidement. Par contre, il est plus lent que Java et C++ (d'après un post que j'ai vu il y a quelques mois).

    Si on lit bien la doc, on peut voir qu'on peut intégrer du C++ pour accélérer les performances. Je pense que c'est une bonne chose de compléter l'apprentissage par l'utilisation des pointeurs pour mieux gérer la mémoire, et en en apprendre davantage sur le fonctionnement d'un PC....

  11. #11
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Architecte Web / Android
    Inscrit en
    août 2003
    Messages
    4 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 4 245
    Points : 10 848
    Points
    10 848

    Par défaut

    Tout dépend de ce que le débutant veux faire. Si le but est de devenir un bon développeur , il n'y'a pas un langage mais plusieurs qui chacun mettent l'accent sur des fondamentaux de la programmation.

    Je verrais bien quelque chose comme :

    C : pour comprendre les bases : types, gestion mémoire, ...
    Java: pour comprendre le modèle objet sans trop se soucier de la mémoire.
    C++ : Pour appliquer les deux notions précédente

    Dans tous les cas il faut je pense éviter les dernier langages à la mode qui n'ont de réel intérêt que si on maîtrise le développement et se focaliser sur les valeurs sures .
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Expert éminent sénior

    Avatar de Neckara
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2011
    Messages
    6 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2011
    Messages : 6 150
    Points : 15 974
    Points
    15 974

    Par défaut

    Citation Envoyé par Amine Horseman Voir le message
    La légende est incluse dans le 3ème paragraphe.
    Mais il faut avouer que cela ne touche qu’une communauté bien particulière, en réalité : le nombre de participants au sondage étaient de 257 lors de l’écriture de cet article, ce qui est assez peu en termes de statistiques pour pouvoir tirer des conclusions. De plus le sondage ne prenait pas en compte les langages orientés web. Heureusement, IEEE était là pour nous sauver puisque l’organisation de standardisation publie chaque année des études détaillées pour classer les langages de programmation, la figure suivante montre les 20 langages informatiques les plus utilisés dans le monde durant cette année
    Où est la légende ?
    II.4. "Notice, liste placée dans un coin ou aux marges d'une carte géographique, d'un plan, etc., et fournissant l'explication des signes conventionnels utilisés."

    D'ailleurs je remarque que vous avez dit "la figure suivante montre les 20 langages informatiques les plus utilisés dans le monde durant cette année",
    Pourtant je lis : "This app rank the popularity of dozens of programming languages [...] Ranking are created by weighting and combining 12 metrics from 10 sources.".

    Citation Envoyé par Amine Horseman Voir le message
    En effet, bonne remarque pour le HTML, j'insiste sur le fait que ces statistiques de IEEE portent sur le classement des langages informatiques les plus utilisés, indépendamment de leurs types.
    Ils ne font donc pas de différence entre un langage de programmation et un langage de description dans cette étude.
    Citation Envoyé par Amine Horseman Voir le message
    Heureusement, IEEE était là pour nous sauver puisque l’organisation de standardisation publie chaque année des études détaillées pour classer les langages de programmation
    On dit "chiffrer" pas "crypter" !

    On dit "bibliothèque" pas "librairie" !

    Ma page DVP : http://neckara.developpez.com/

  13. #13
    Membre éprouvé Avatar de dfiad77pro
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    décembre 2008
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2008
    Messages : 422
    Points : 1 250
    Points
    1 250

    Par défaut

    Les personnes choisissant (JAVA, ou C#),

    Je me délecte à vous voir expliquer ( à quelqu'un qui n'a jamais codé) les notions de Polymorphisme , d'héritage ,de JVM/CLR


    Je pense qu'il n'y a pas de langage meilleur à proprement parler,
    mais qu'il faut personnaliser en fonction de l'envie de celui qui souhaite apprendre :

    - Si il est fan de Site web, on adapte le programme pédagogique en le faisant petit à petit découler vers les structure conditionnelle, etc.
    - pour la prog sur smartphone y'a du boulot...

    enseigner c'est aussi donner envie d’apprendre,
    personnellement dans mes études, j'ai commencé direct par le C sous Linux, je ne le regrette pas ( bon j'avais déjà programmé en autonome avant),

    Cependant : sur une promo de 280 élèves, au bout de 6 mois il n'y en restai plus que 74

  14. #14
    Membre chevronné
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2010
    Messages
    809
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2010
    Messages : 809
    Points : 1 922
    Points
    1 922

    Par défaut

    Pour commencer à développer, je rejoins l'avis de beaucoup : le C. Il a l'avantage de fournir une syntaxe que l'on retrouve un peu partout dans les langages impératifs et permet de bien comprendre les bases et surtout comment fonctionne un ordinateur. Après pourquoi pas du JAVA pour l'orienté objet et de l'ocaml pour du fonctionnel.

    Une fois qu'on a ces bases, on peut "apprendre" un autre langage de assez rapidement mais surtout, on pourra lire beaucoup de code d'autres langages et comprendre grossièrement ce qu'il fait sans avoir forcément besoin de connaître le langage en particulier.
    Il y a 10 sortes de gens : ceux qui comptent en binaire et les autres.

    "Premature optimization is the root of all evil" --Donald Knuth
    traduction : "L'optimisation prématurée est la racine de tous les maux" -- Donald Knuth

    Si vous voulez apprendre à développer en Rust, un tuto (en français) est disponible ici.
    Si vous voulez voir mes projets, c'est sur github que ça se passe.

  15. #15
    Expert éminent
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2007
    Messages
    1 641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2007
    Messages : 1 641
    Points : 6 441
    Points
    6 441

    Par défaut

    Je partage l'avis de Simara1170
    A chaque phase d'apprentissage son langage
    J'ai moi même appris en passant par ADA, C (couplé avec du shell bash à gogo) puis le Java

  16. #16
    Membre actif Avatar de KsassPeuk
    Homme Profil pro
    Doctorant
    Inscrit en
    juillet 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2013
    Messages : 76
    Points : 275
    Points
    275

    Par défaut La programmation ... vaste nom.

    Cela dépend très fortement de ce qu'on entend par "apprendre la programmation".

    Typiquement, j'ai pu voir en haut des gens qui conseillent C "parce que ça aide à comprendre que la machine n'est pas magique et qu'il ne faut pas faire n'importe quoi, n'importe comment". Alors oui, mais non. En particulier, si apprendre la programmation inclut "apprendre à coder un algorithme", s'encombrer des problèmes de gestion mémoire, c'est se tirer une balle dans le pied. Le débutant a déjà du mal à pondre un algorithme correct et il faudrait en plus lui infliger la tâche de gérer la mémoire convenablement ? C'est s'attaquer à tous les problèmes à la fois et le meilleur moyen de n'en résoudre aucun.

    Quant au fait de forcer à la rigueur ... Ça c'est la blague du siècle. Pour écrire un programme C correct, il faut effectivement être extrêmement rigoureux (et même comme ça, vu le nombre de points ambigus, obscurs ou mal implémentés dans la norme, ça ne garantit pas grand chose). Après dire que l'on peut enseigner le C rigoureux à des débutants, j'ai encore jamais vu. Je n'ai jamais vu de cours qui montre l'importance de contrôler chaque accès de pointeurs, chaque retour de fonction, chaque structure d'erreurs. Pourquoi ? Parce que c'est super compliqué et que le débutant ne sait déjà pas écrire un algo ...

    Et on sait tous que dans la majorité des formations, "apprendre la programmation" inclut "apprendre à faire un algorithme" pour deux raisons :
    • c'est comme ça depuis longtemps (ça c'est la mauvaise raison),
    • pour valider un algorithme, le meilleur moyen c'est de le coder en vrai (ça c'est la bonne raison).

    Autre chose :

    Citation Envoyé par or10n13 Voir le message
    Avant de comprendre comme ont programme, il est plutôt utile de savoir comment fonctionne un ordinateur.
    Ben non, tout ça, c'est des détails et on est très loin du concept de programme. L'intérêt des langages de programmation est justement de s'abstraire de tous les concepts de hardware, si on a inventé les langages de programmation c'est en grande partie pour cacher tous les détails de la machine, sinon on se prendrait la tête à mort. Plus encore, quand tu débutes, tous ces détails tu t'en fous, en grande partie parce que c'est loin de t'aider à comprendre ce que tu fais.

    La première étape c'est "j'apprends à écrire mon algorithme pour qu'il s'exécute", c'est déjà pas une étape facile.

    Deuxième étape, je sais écrire des algorithmes, je peux apprendre comment être plus précis en dialoguant plus finement avec l'OS. Donc, problématique de gestion des ressources, comment le faire proprement, etc ... C'est déjà une forme de programmation qui n'intéresse plus qu'une partie des devs (et c'est normal).

    Enfin, je peux passer à l'étape, je veux faire des programmes qui sont très performants. Je dois comprendre comment fonctionne l'ordinateur, et là on est plus que sur une fraction très faibles des développeurs (et encore une fois, c'est normal).

    Citation Envoyé par grunk Voir le message
    Je verrais bien quelque chose comme :

    C : pour comprendre les bases : types, gestion mémoire, ...
    Java: pour comprendre le modèle objet sans trop se soucier de la mémoire.
    C++ : Pour appliquer les deux notions précédente
    C comme langage pour apprendre le concept de typage ?! On parle bien du langage où :
    • void* est courant
    • union est courant
    • les fonctions variadiques ne sont pas typées
    • ... et j'en passe et des meilleures.

    (Quand au fait de gérer la mémoire manuellement en C++, c'est généralement dû à de grosses erreurs dans le design).

  17. #17
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    septembre 2011
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : septembre 2011
    Messages : 215
    Points : 689
    Points
    689

    Par défaut

    Citation Envoyé par dfiad77pro Voir le message
    personnellement dans mes études, j'ai commencé direct par le c sous Linux, je ne le regrette pas ( bon j'avais déjà programmé en autonome avant),

    Cependant : sur une promo de 280 élèves, au bout de 6 mois il n'y en restai plus que 74
    Pas étonnant, le C est assez aride, et violent pour débuter. Mieux vaut commencer par de l'algo & softs pseudo code pour débuter et appréhender les principes de base du développement (boucles, variables, types, portées, ...), puis un langage type pascal pour faire la transition avec des langages plus courants dans le monde du dev (JAVA, C#, pour la POO, par exemple). Cela dit, le C a l'immense avantage de permettre de mettre le nez sous le capot et de voir ce qu'il se passe dans la machine, ça permet de mieux appréhender ce qu'on code en haut niveau par la suite. L'assembleur est dans la même veine, mais en encore plus violent

    De mon point de vue, il n'y a pas un langage pour apprendre, mais une succession de langages à manipuler, même si c'est temporaire, afin de bien comprendre comment tout ce bazar fonctionne, apprendre la rigueur et éviter par la suite de faire des erreurs qui peuvent coûter cher. Et oui, ça comprend "toucher aux technos bas niveau". Les langages type Python, ... c'est bien sympa, mais ça masque beaucoup trop de choses pour être utilisés seuls en apprentissage, amha.

  18. #18
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Ninja
    Inscrit en
    juillet 2013
    Messages
    1 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ninja

    Informations forums :
    Inscription : juillet 2013
    Messages : 1 096
    Points : 6 015
    Points
    6 015
    Billets dans le blog
    39

    Par défaut

    Il est possible de débuter avec n'importe quel langage. Ca dépend des aptitudes de chacun. (désolé, tout le monde n'est pas égal quand il s'agit d'assimiler les concepts de la programmation et de l'algorithmique, sauf dans le monde des bisounours peut-être ^^)

    Un petit génie pourra débuter sans souci avec C++ tandis qu'une personne non prédisposée aura des difficultés y compris avec le BASIC par exemple.

    Maintenant, si on demande quel est le meilleur langage pour débuter, je pense qu'un langage procédural est ce qu'il y a de plus "naturel". Pour débuter, il vaut mieux éviter d'aborder tout de go la programmation orienté objet (classes abstraite, multiple dispatch, polymorphisme, et tutti quanti) ou la programmation fonctionnelle (curryfication, fermeture, etc) et commencer sur un langage qui permet de faire simplement du if-then-else et des boucles for et while.

    Je ne vais pas me faire que des amis en disant cela, mais c'est la raison pour laquelle je pense que la généralisation de l'apprentissage de Java, langage qui impose le carcan orienté objet, dans le cursus universitaire n'a pas dû être très heureux pour certains étudiants...

    Le langage C ou C++ sont à mon avis un meilleur choix que Java, même si pour apprendre la programmation, on a tout de suite besoin d'importer des tas de bibliothèques pour faire la moindre application un minimum consistante, ce qui n'est pas forcément bien compris par les étudiants.

    Le langage Python, même si je lui trouve plusieurs défauts est un bon compromis. Il est facile d'accès, sa syntaxe n'est pas trop exotique et est multi-paradigme ce qui permet de passer en douceur de la programmation procédurale à la programmation orientée objet. Dans la pratique, j'ai pu observer que beaucoup de personnes parvenaient rapidement à réaliser des programmes en Python, ce qui n'est pas toujours le cas avec Java ou C++.
    Tutoriels et FAQ TypeScript

  19. #19
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2007
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : juillet 2007
    Messages : 461
    Points : 717
    Points
    717

    Par défaut

    Python est clairement le meilleurs choix car il est simple et utile pour tous. Que l'on veuille devenir, ingénieur, scientifique, graphiste, électronicien, administrateurs réseau ou web, ou simple entrepreneur on aura toujours l'utilité du Python. Il permet a tout un chacun de faire un programme proprement tout en permettant de voir énormément de concept si l'on approfondi dedans. Python a en outre l'avantage de pouvoir remplacer beaucoup de langages spécifiques avec des spécificité particulières : Mathlab, PHP, Bash, (C++/Java pour de simple programmes)...

    Ensuite en fonction de ce que l'on fera on choisira son langage.
    Tout ce que j'écris est libre de droits (Licence CC0) et je vous incite à faire de même.

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    septembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2012
    Messages : 11
    Points : 26
    Points
    26

    Par défaut

    Il n'y a pas de langage magique qui permette de maîtriser tout les aspects de la programmation d'un seul coup, il faut en utiliser plusieurs, chacun "symptomatique" d'une facette de la programmation
    +25000

    J'ajouterai que pour motiver un étudiant, il faut aussi lui donner la possibilité d'accomplir des choses concrètes, c'est à dire d'avoir un retour visuel sous la forme d'une application/programme/site web qui fait vraiment quelque chose.

    Par exemple, la plupart des gens qui commencent le C++ se retrouvent à faire des programmes en ligne de commande à base de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cout << "Entrez une valeur : ";
    cin >> var;
    ce qui aboutit à des programmes certes simples et enseignant des notions de base, mais pas intéressants ou motivants, parce que ne ressemblant à rien de "professionnel".

    Pour aboutir à des choses motivantes rapidement, je vais jeter un pavé dans la mare, et je dirai que ActionScript 3 + Flash est un environnement intéressant.
    Actionscript 3 est, il faut l'avouer, un bon langage orienté-objet, proche de Javascript. Ensuite l'environnement Flash permet facilement de faire des animations, des choses "concrètes", comme par exemple pour créer des jeux vidéo simples.

    Evidemment, l'avenir de Flash en tant que technologie est plus qu'incertain, donc on peut argumenter qu'on peut aussi bien apprendre HTML5+Javascript pour le même résultat, ce qui est une bonne idée à condition de disposer d'un bon environnement accessible aux débutants.

Discussions similaires

  1. Quel est le meilleur langage pour débuter la programmation ?
    Par Amine Horseman dans le forum Actualités
    Réponses: 144
    Dernier message: 28/11/2014, 17h06
  2. Quel est le meilleur langage pour la reconnaissance d'empreintes ?
    Par hanou88 dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 09/02/2011, 07h58
  3. Débat : Quel est le meilleur langage pour coder en open-source ?
    Par Katleen Erna dans le forum Actualités
    Réponses: 15
    Dernier message: 17/08/2009, 10h54
  4. Quel est le meilleur langage pour la portabilité : Windows & Linux (voire Mac) ?
    Par iubito dans le forum Débats sur le développement - Le Best Of
    Réponses: 57
    Dernier message: 26/11/2007, 23h45
  5. Réponses: 4
    Dernier message: 12/05/2007, 00h55

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