France IOI

Choisir un langage pour apprendre la programmation

Arthur Charguéraud

Pourquoi un langage

Nous vous proposons d'apprendre à programmer. Vous n'avez pas besoin de connaissances préalables particulières, et pouvez commencer immédiatement. Nous faisons tout notre possible pour que vous puissiez progresser aussi rapidement que possible et de manière entièrement autonome. Ce qui ne vous empêche en rien de poser des questions lorsque vous en aurez.

Pour programmer, on utilise un langage de programmation. C'est la langue dans laquelle on explique à l'ordinateur ce qu'il faut qu'il fasse. Il existe des centaines de langages différents, qui sont chacun plus ou moins adaptés pour différentes tâches. Rassurez-vous, les langages se ressemblent souvent beaucoup au niveau de la logique, et une fois que l'on connaît un langage, il est facile d'en apprendre d'autres. En effet, contrairement aux langues comme le français ou l'anglais, les langages de programmation sont formés de très peu de mots et de règles de grammaire et la principale difficulté est de comprendre la logique de fonctionnement de la programmation en général.

Ecrire ses programmes dans le langage que comprend directement l'ordinateur est extrèmement pénible. On part donc de la description en Français de ce que l'on veut faire, et on le traduit dans un langage de programmation intermédiaire entre le Français et le langage machine. Un programme appelé compilateur traduit alors ce langage de programmation en langage machine, pour fabriquer le programme voulu.

Les cours proposés

France-IOI a sélectionné deux langages qui sont adaptés pour l'algorithmique. Si vous ne savez pas ce qu'est l'algorithmique, voyez cela comme la partie intelligente des programmes. Deux cours vous sont donc proposés : un en OCAML (lire "O camèle"), et un autre en C :

  • le cours de programmation en OCAML, écrit par Arthur Charguéraud.
  • le cours de programmation en C, par Mathias Hiron, inspiré du cours précédent.

Les deux cours suivent la même pédagogie et globalement, le même ordre de présentation.
Remarque : vous entendrez souvent "CAML" à la place de "OCAML".

Lequel choisir

Le choix d'un langage de programmation n'est pas facile, chacun a ses spécificités et correspond mieux à certains types d'utilisations, ou tout simplement à certaines personnes.

Pour faire votre choix entre C et Caml, nous vous conseillons de prendre en compte les critères suivants :

  1. ce que vous voulez programmer ensuite,
  2. votre façon de voir les choses : plutôt abstraite, ou plutôt concrète,
  3. les compétences des gens qui peuvent vous aider.
Voici quelques points qui peuvent vous aider à vous décider :
  • Tout programme peut s'écrire en Caml ou en C, avec des performances parfois un peu moins bonnes pour le Caml.
  • Le C est l'un des langages proposés aux Olympiades Internationales d'Informatique, mais pas Caml.
  • Etant plus répandu, le C peut interagir plus facilement avec le système d'exploitation, par exemple pour faire du graphisme ou accéder au réseau.
  • Le C a une syntaxe assez proche des langages PHP et Java, très utiles en particulier pour le développement d'applications Web.
  • Le Caml est un langage assez abstrait, naturel à utiliser par ceux qui aiment les mathématiques, tandis que le C est plus proche des principes de fonctionnement du microprocesseur de votre ordinateur.
  • Caml permet d'écrire les programmes plus courts et plus simples que le C, ce dernier demandant de faire attention à plus de détails techniques.
  • Caml peut s'apprendre plus rapidement, car il contient moins d'éléments.
Si des gens peuvent vous donner des conseils et répondre à vos questions à propos d'un langage donné, cela peut vous aider à progresser un peu plus vite, même si la programmation est quelque chose qui s'apprend beaucoup par l'expérience personnelle.

Conclusion

Nous vous invitons à survoler les deux cours, pour voir à quoi ressemblent les langages OCAML et C. Choississez alors en fonction des points détaillés précédement. N'oubliez pas de prendre en compte le fait que lorsque vous aurez fini l'un des deux cours, vous pourrez terminer l'autre en beaucoup moins de temps que le premier. Plus tard, lorsque vous connaîtrez CAML et C, il vous sera facile d'apprendre la plupart des autres langages de programmation, si vous en avez le besoin un jour.