CommentCaMarche
Recherche
Posez votre question »

Programmation - Comment débuter, quel langage?

Mars 2015


Comment débuter, quel langage?


Introduction

Une des questions récurrentes sur ce forum dédié aux débutants est "Comment débuter en programmation ?" ou parfois "Quel langage pour débuter ?". Je vais tenter d'y répondre, mais il faut bien savoir que ce genre de question est susceptible de déclencher des guéguerres de chapelles. Pour essayer d'avoir quelque chose de relativement objectif, je me suis basé sur les opinions des membres recueillies aux travers des réponses accordées à ces questions (utilisez le moteur de recherche dans le forum programmation, il est là pour ça :o) ).

Alors tout d'abord, il n'y a pas de langage pour débuter la programmation, du moins la programmation se commence sur papier, avec l'algorithmique. (www.commentcamarche.net/contents/6-algortihme-definition-et-introduction) Évidemment, pour tester les algorithmes, il peut être confortable de le faire avec un langage de programmation, mais dans ce cas, la seule chose que je recommanderai est un langage simple, non objet, non graphique. Les bons choix peuvent être Basic, Pascal, Python, néanmoins la syntaxe de ces derniers sera sans doute plus utile par la suite. Mais rien n'est vraiment à exclure ici, même le langage de calculatrice peut suffire à tester les algos simples. Ensuite, il est de bon ton d'avoir une idée sur les différents type de langages, sur ce qu'est un compilateur et autres choses généralistes. (www.commentcamarche.net/contents/617-les-langages-informatiques).

Une fois ici, on a déjà des bases saines pour commencer à programmer...seulement on ne programme pas pour programmer, il faut un but, une idée, un logiciel à faire. Là, je ne peux rien faire pour vous, c'est en fonction de ses gouts, de ses connaissances,... et là s'effectue les premiers choix techniques:
Langage objet, oui ou non ?
Multi plateforme, oui ou non ?
Avec machine virtuelle, oui ou non ?
Interface utilisateur, oui ou non ?
Accès à une base de données? Si oui laquelle?
...

Une fois ces choix faits, l'éventail des langages se retrouve singulièrement restreint.

Alors passons en revue les langages les plus souvent cités pour débuter, avec toujours en tête le point de vue de l'apprentissage.

NB : il existe aussi une voie très ludique pour découvrir la programmation :Phrogram anciennement KPL (Kid's Programming Language).
Un autre langage pour les enfants :LOGO, ici une version en ligne.

Interface soignée (couleurs, sons, graphismes) et un apprentissage de la programmation orientée vers la conception de jeux. L'idée de fond est : apprendre en s'amusant. Si réellement vous ne connaissez rien à rien à l'informatique ni à la programmation, cela peut être une porte d'entrée. De même, cela est bien évidemment un moyen d'y mettre vos enfants (ce qui est bon pour eux est bon pour vous, à priori). Ce logiciel est un freeware (c'est dit sur le site) et n'est pas restreint aux jeux, bien entendu, et le site est multilangues (anglais, espagnol, portugais, français et quelques langues nordiques), comme le logiciel. Le langage lui est tout ce qu'il y a de plus commun dans les autres langages : Begin, End, Main, False, True, etc.

Ceux que l'on peut utiliser

Delphi/Pascal

Une bonne solution, les compilateurs et environnements de développements se trouvent gratuitement (sous certaines conditions peu contraignantes). On peut commencer par faire des petits programmes dans des shell en Pascal et ensuite passer (après avoir appris la notion d'objet) à des choses plus costaudes avec environnement graphique grâce à Delphi (et Kylix sous Linux :o) ). Le langage est relativement intuitif, rigoureux, la création d'interface graphique simple, on peut vite se faire plaisir. La portabilité est médiocre mais existe vers certaines plateformes (Kylix...)

Pour apprendre
Site officiel Delphi (Anglais)
Télécharger Pascal

Java

Langage objet, très portable, syntaxe utilisée également pour des scripts internet (la syntaxe, pas le langage...). Il existe de nombreux environnements de développement gratuits sur le net : il faut juste choisir en fonction de ses goûts, néanmoins, ça n'a pas la facilité de Delphi au niveau des interfaces graphiques. Il s'agit là d'un langage "nouvelle génération" qui donnera aussi une expérience intéressante à ceux qui souhaitent travailler en informatique.

Histoire
Tutoriel complet

Python

Simple, rapide, donne de bonnes habitudes de programmation, léger (à tel point que repasser à un autre langage après semble vite pesant), ouvert, énormément de documentation sur internet, c'est le préféré de Sebsauvage ;o). Il permet de vite se faire plaisir soit en faisant des scripts puissants (grâce notamment à la programmation objet). Il est également "nouvelle génération" et portable. Il fonctionne avec une machine virtuelle qui peut être empaquetée grâce à certaines classes disponibles sur le web (on en trouve de toutes sortes et à toutes fins...) dans un exe pour distribuer l'application de manière simple et indépendante.

Site officiel python (en anglais)
Livre "Apprendre à programmer avec Python " : accessible intégralement en ligne
Didacticiels python
Tutoriels Python
Wiki python francophone

.Net

Alias le futur selon Microsoft, du bon et du mauvais dans cette plateforme, mais elle permet de programmer des applications graphiques de manière simple, ne tourne que sous Windows avec quelques tentatives adaptives sous Linux. Je conseillerai le C# qui est le langage "natif" de cette plateforme : sa syntaxe est proche du C et de java, pas de pointeurs, tout se passe à un niveau d'abstraction supérieur aux anciens langages microsoft. C'est comparable à Java et à Python, sauf que ce n'est pas libre.

Depuis la version 2008 (Framework 3.0) Microsoft propose une version gratuite Visual Studio Express. Ces versions permettent de développer les mêmes applications que les versions payantes, en revanche elles ne sont pas dotées de nombreux outils pour simplifier le développement (seul ou en groupe), le déploiement ou encore le mutli-plateforme. A télécharger ici pour la version 2010 compatible avec XP, ou là pour la version 2013 nécessitant Seven
Depuis 2014, Microsoft propose une version plus performante appelée Visual Studio Community, gratuite pour la recherche, les petites sociétés et le développement non professionnel (merci à dsy73 pour l'info).


Un environnement de développement gratuit et OpenSource pour .Net(Merci Rodolphe_)

Smalltalk

Pour moi LE langage objet par excellence. Gratuit, syntaxe simple, il impose une rigueur inégalée dans la programmation objet. Malheureusement pas assez répandu, il est rare de trouver un boulot avec, mais cela donne toujours une référence solide, et des choses comme Squeak permettent de faire énormément de choses avec.

Squeak
Tutorial Dolphin Smalltalk

Ceux que l'on peut utiliser à la rigueur

C/C++

Ce sont de bons langages, mais avec une syntaxe compliquée qui ne facilite pas leur apprentissage. De plus l'utilisation des pointeurs rend leur utilisation, même par des professionnels, souvent ardue. L'avantage est que ces langages peuvent être utilisés sur plusieurs plateformes (après compilation) et que, une fois maîtrisés, ils font paraître les autres plus simples. Un avantage : elle confère de bonnes habitudes. Ce sont des langages encore très utilisés dans le monde professionnel. A utiliser exclusivement dans le but de faire de l'informatique un métier.

Pour apprendre
Pour apprendre
Site Borland C++

PHP

Un langage initialement prévu pour le développement de pages web dynamiques. Sa syntaxe est proche du C++.
PHP est assez "simple" à aborder et permet de communiquer assez facilement avec une base de données.
Pour développer des pages web dynamiques, il requiert aussi une bonne connaissance de l'HTML et éventuellement du SQL si vous avez besoin d'une base de données.
Il permet notamment d'avoir rapidement une "visibilité" de son travail en le mettant en ligne, et ainsi d'avoir les commentaires/suggestions des internautes.
On peut également développer des applications normales avec ce langage (hors web).
Notons aussi que vous pouvez programmer de manière procédurale ou orientée objet, au choix, ça permet un bon tour d'horizon.
Ceci dit c'est un bon langage mais pas forcément le meilleur pour apprendre. Il est puissant et permissif si bien que vous risquez de prendre de mauvaises habitudes en apprenant avec. Notamment au niveau des pages web, il n'influence pas à programmer proprement de prime abord.
Si vous chercher un langage facile à apprendre, qui permet d'apprendre l'orienté objet, et qui laisse derrière lui de bonnes habitudes, choisissez plutôt un langage comme python.

Pour apprendre
Site officiel
Php France (Tutoriaux)
Php débutants
Le php facile

Ada

Langage encore utilisé dans le monde du temps réel. Il reste relativement facile à apprendre mais est a recommandé surtout aux futurs informaticiens, sinon l'intérêt est limité. Il vaut mieux passer à Ada seulement avec le but "temps réel" ou du moins informatique embarquée. Il tend à disparaître.

Désolé, pas de liens, n'hésitez pas si vous en connaissez des bons
Pour apprendre

Lisp/Caml/...

Les langages fonctionnels. Ils sont nombreux, classifiés en deux grandes familles : les purs(haskell) et les non purs(famille lisp). La famille des purs est en fait classifiée en deux: les vraiment purs, pas d'effet de bord (famille haskell) et la famille ML (Caml,SML,...). La manière de programmer est totalement différente par rapport aux autres langages. En fait, la programmation fonctionnelle est une autre manière de voir un programme et cela n'empêche pas par exemple d'avoir un langage fonctionnel et objet (scala par exemple) ou même un langage fonctionnel qui allie impératif/objet/fonctionnel (Ocaml). En connaître un permet d'avoir de bonnes bases et permettra également aux personnes plus orientées vers les mathématiques de passer doucement vers l'informatique. Ils sont souvent utilisés en analyse numérique ou en intelligence artificielle (mais c'est juste à cause de leur origine). On peut les utiliser pour programmer tout ce que l'on peut programmer avec les autres langages (la communauté commonlisp est très active par exemple).

caml.inria.fr/index-fra.html (La référence)
dept-info.labri.u-bordeaux.fr/~strandh/Common-Lisp/ressources-web.html
www.paulgraham.com/onlisp.html
scala.epfl.ch/index.html

Ceux que l'on peut ne pas utiliser

(x)HTML/CSS

Bon, je vais être bref, écrire une page ou un site en HTML est à la programmation ce que boire un verre d'eau est à l'alcoolisme. Il s'agit de présenter un document, pas de programmer quoique ce soit, et ce n'est pas en incluant quelques scripts au milieu que cela change grand chose.

Pour apprendre
Pour apprendre

Perl

Soyons clair, ce langage apparemment simple n'est pas du tout
adapté à l'apprentissage de la programmation. Sa souplesse et sa puissance
risquent de vous faire prendre de mauvaises habitudes de programmation
voire de vous décourager par les erreurs qu'elles vous autoriseront
silencieusement à faire. Mieux vaut commencer par apprendre un langage
rigoureux, pour ensuite pouvoir exploiter au mieux Perl.
Merci à Jeremy Just pour cette correction
Je rajoute pour ma pomme par contre, que l'on peut très bien vivre une vie professionnelle en informatique sans l'utiliser ;o)


Pour apprendre

Visual Basic/Basic : D

Déconseillé formellement par tous les professionnels qui ont travaillé avec. Il donne de mauvaises habitudes de programmation (déclaration des variables non nécessaire, aucune notion de valeur/référence, tentative avortée de faire de l'objet,...), et de plus Microsoft (il s'agit d'un langage propriétaire) l'a laissé tomber au profit du Framework.Net. Pour finir il n'existe aucune version gratuite, il faut donc passer à la caisse. Le seul point positif que je lui reconnaitrais, c'est son côté ludique et la facilité de faire des interfaces graphiques pour Windows (Ha oui, j'oubliais, il n'est pas portable non plus...), mais c'est loin d'être le seul dans ce cas, si c'est ce qui vous intéresse, penchez-vous plutôt sur Delphi ou encore .Net.
Le cas de Basic est plus ou moins le même, il existe des compilateurs gratuits, mais il s'agit d'un langage dépassé qui n'est ni rapide, ni portable, ni objet, ni rigoureux. Préférez Pascal qui permet par la suite d'évoluer vers Delphi.

Pour apprendre

Divers/math

Pour les matheux, vous pouvez aussi essayer les langages d'aide a la preuve. Pour le moment, leur puissance est limitée mais on espère qu'ils se développeront avec le temps. Pour le moment les plus répandus sont en couple avec la famille ML ou Haskell. Pour Ocaml, vous avez coq. Les paradigmes sont fondés sur la logique.

Pour apprendre (le livre de Pierre Castéran était sur le net, mais malheureusement il n'y est plus depuis l'année dernière avec la publication):
coq.inria.fr/

Conclusion et liens

Quelques liens piqués au hasard des discussions sur le forum, ils me paraissent à ce jour les plus complets mais bon :o)

Choisir un langage de programmation (selon ses usages)
www.commentcamarche.net/forum/affich-796367-d%E9butant-en-programmation
www.commentcamarche.net/forum/affich-756102-d%E9butant-en-programmation
www.commentcamarche.net/forum/affich-756219-%5BApprendre-%E0-programmer%5D-Aider-moi-s-%23039-il-vous
www.commentcamarche.net/forum/affich-579484-Aprendre-a-programer-rapidement
www.commentcamarche.net/forum/affich-474123-Suis-je-trop-jeune
www.commentcamarche.net/forum/affich-500093-Language
www.commentcamarche.net/forum/affich-328802-programmation
www.commentcamarche.net/forum/affich-212475-multi-languages
www.commentcamarche.net/forum/affich-99120-Re-Re-Ecrire-des-programmes
www.commentcamarche.net/forum/affich-301134-Visual-Basic-VS-Delphi
www.commentcamarche.net/forum/affich-409073-Euh-je-d%E9bute-alors

Encore une autre précision, il y a plusieurs liens en anglais (ou en anglo-américain ;o) ) ci-dessus. Ceci est courant dans le monde de la programmation et apprendre à programmer se fera dans de meilleures conditions si on lit bien l'anglais voire même si on peut l'écrire (pour poser des questions sur les forums spécialisés...).

Voilà, j'espère avoir été le plus complet possible, mais je m'aperçois que je n'ai pas réussi à être vraiment objectif, mon opinion transparait encore énormément :o). De plus, un posteur occasionnel avait donné un langage spécialement prévu pour les débutants, mais je n'ai pas retrouvé le nom :o( si quelqu'un a ça ou si le posteur repasse par là je suis preneur :o)

Bon apprentissage.
------------------------------------


Vous trouverez également beaucoup de compilateurs gratuits pour différents langages à www.thefreecountry.com/ cette adresse

PS : débuter en programmation, c'est aussi se trouver confronté à une épineuse question : mais pourquoi mon programme ne marche pas ? Les messages d'erreur fournis (ou non) par les environnement de compilation ou d'exécution (ou le comportement de l'ensemble) plongent parfois les débutants dans une perplexité sans fond qui peut devenir exaspérante. Une bonne méthode est de faire relire son code par quelqu'un d'expérimenté, et/ou d'expliquer à autrui votre problème. Parfois l'énoncé à haute voix de votre raisonnement vous mettra sur la bonne voie et fera de vous le vainqueur de votre chasse au fameux bug. Enfin, la capacité à (bien) programmer va (souvent) de pair avec celle de s'abstraire de ce monde matériel dans lequel nous sommes tous plongés. Bienvenue dans un monde où rien n'est réellement concret.

Si la programmation vous mord, vous en rêverez peut-être ... Ayez dans ces moments là une feuille et un crayon à papier (l'arme absolue de l'informaticien) sur votre table de chevet, notez les solutions qui vous viennent à l'esprit et testez-les le matin venu, vous serez probablement surpris du conseil que la nuit vous a alors apporté :-)
Pour une lecture illimitée hors ligne, vous avez la possibilité de télécharger gratuitement cet article au format PDF :
Programmation-comment-debuter-quel-langage.pdf

A voir également

Dans la même catégorie

Réalisé sous la direction de , fondateur de CommentCaMarche.net.

¿Qué lenguaje de programación aprender primero?
Par Carlos-vialfa le 13 juillet 2008
Programmazione - Come iniziare, quale linguaggio?
Par kioskea-modo le 18 mars 2009
Publié par teebo - Dernière mise à jour par Whismeril
Ce document intitulé «  Programmation - Comment débuter, quel langage?  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.