Je suis en plein
dedans, donc j'ai décidé de faire un petit article sur pourquoi apprendre à
programmer. Je sais qu'en ce moment, les billets sur mon jeu se font rares :
trop occupé par des révisions plus importantes, je révise mes bases et je
rassemble mes idées, en attendant les vacances.

- En fait, programmer, c'est quoi ?

Programmer, c'est créer des programmes. Des programmes, vous
en avez où ? A peu près partout sur vos appareils électroniques : de votre ordinateur (Word, IE, COD ou
Windows sont des programmes) à vos consoles (le firmware est un programme, les
jeux aussi) en passant par votre calculatrice ou votre appareil photo (je ne
vous réexplique pas). Tous ces programmes ont été programmés !

Concrètement, programmer, c'est écrire des lignes de code, parfaitement lisibles
humainement, mais dans un code très spécial : le langage de programmation.
C'est une langue très structurée, très organisée, qu'un autre programme sur
votre ordinateur va comprendre et transformer en une série de 0 et de 1, que
votre ordinateur pourra lui-même directement comprendre (pour être précis, c'est
Windows qui le comprendra)(et pas la peine de vous poser la question de la
poule ou de l'œuf, c'est pas ce qui nous intéresse ici).

- Pourquoi est-ce que l'on a besoin de traduire le code en 0
et en 1 ? Windows ne pourrait pas comprendre le code lui-même ?

Si, bien sur que si, ca existe : on appelle ca les
scripts. Seulement, ca prend environ 10
fois plus de temps à l'exécution
. C'est pour cela que l'on a inventé des
programmes capables de transformer un code que vous pouvez tout de suite
comprendre en un code que votre ordinateur peut tout de suite comprendre :
les compilateurs.

- Mais, quand on voit des gens qui créent des jeux vidéos,
il ne tapent pas des lignes de code, ils font des croquis, ils modélisent en
3D, ils organisent les niveaux. Alors, au final, pourquoi j'apprendrais à
programmer ?

Raison n°1 : C'est
le secteur qui recrute le plus dans le jeu vidéo !

Bon, là, je ne vous apprends rien. Les jeux vidéo, ce sont à
la base des centaines de milliers de ligne de code. La programmation sert
principalement aux programmeurs, évidemment, qui sont chargés de créer un
moteur de jeu, le middleware. C'est
un gros programme qui sert à ce que des gens qui s'y connaissent moins bien
techniquement puissent participer simplement (enfin, simplement, c'est relatif)
à la création du jeu. Ainsi, le pôle programmation dans la création de jeux est
central mais souvent méconnu, et c'est là que ça embauche le plus !

- Mais, une fois que le middleware est fini, les programmeurs
ont plus rien à faire !

Bien sur que si ! Le middleware est en constante
évolution : les programmeurs l'améliorent, y ajoutent des plug-ins, et
surtout l'adaptent au jeu. De plus, il faut aussi faire de la programmation dans le middleware. Une fois celui-ci
fini, c'est à l'intérieur de ce gros programme que les codeurs pourront s'amuser
à coder l'IA, le gameplay, etc.

Raison n°2 : Il
n'y a pas que les codeurs qui codent

Cependant, il faut aussi savoir qu'il est très utile voire
indispensable pour un game designer de savoir programmer. Cela lui permet de
mieux appréhender la structure du jeu, de comprendre ce qu'il fait exactement,
et même parfois de toucher à une ligne qui ne lui plaît pas trop. D'ailleurs,
dans les plus petites structures, il n'y a pas de game designer : le
design du jeu se fait alors un peu en équipe, voire tout seul si l'équipe se
réduit à une seule personne : savoir programmer est alors indispensable.

Raison n°3 : Ca
peut vous aider en maths

Quand on programme un ordinateur, il faut être
particulièrement méthodique, et surtout réussir à traduire ce que l'on veut
faire en quelque chose de totalement épuré et sans ambiguïté. En fait, c'est exactement la méthode de raisonnement
mathématique
. En s'habituant à ça, on comprend immédiatement mieux les
bases des raisonnements mathématiques et scientifiques, bref, comment
fonctionnent les maths !

D'un autre côté, la programmation s'est beaucoup inspiré des
maths, et vous pourrez mieux appréhender certains concepts mathématiques avec
la programmation. Exemple : les fonctions ! Leur définition et leur
utilité peuvent grandement différer entre les maths et la programmation, mais
je dois dire qu'étant donné que j'en utilisais déjà un peu sur mon ordinateur à
l'époque où on nous l'a appris en cours, j'ai immédiatement pu comprendre et
maîtriser le concept en maths, alors que certains de ma classe s'y perdent
encore aujourd'hui (2 ans après). Et que dire des variables, constantes, ou
encore de la récurrence que j'ai vue en programmation et qui m'a servi hier dans
un exo de préparation aux Olympiades de mathématiques !

Raison n°4 : Ca
vous apprend plein de choses sur votre ordinateur

En apprenant à programmer, vous allez apprendre plein de
choses sur votre ordinateur, indispensable pour bien comprendre ce que vous
faites. Je ne vous apprends pas grand-chose, mais je sais que ce que vous aurez
appris pourra surement vous resservir dans le reste de votre vie numérique.

Tiens, justement, Minecraft vient de crasher en prétextant
un problème de registre ... Bon, je vais régler ça.

Raison n°5 : L'algorithmique,
c'est passionnant

Un autre des aspects intéressants de la programmation, c'est
l'algorithmique. Cela consiste à trouver la manière la plus simple de résoudre
un problème. Définition assez vague (surtout que la simplicité n'est pas un
concept mathématique), donc je vous donne un exemple : vous avez un carré,
et un cercle est dessiné à l'intérieur. Le mieux est-il de calculer directement
l'aire du cercle à l'aide de la formule mathématique (Pi*R²), ou de prendre des
points au hasard dans le carré, de voir combien sont à l'intérieur du cercle,
et d'estimer à partir de là l'aire du cercle ? Si la première solution
paraît évidemment plus simple, elle ne l'est pas toujours pour certaines
surfaces plus difficiles à estimer. (Les plus connaisseurs auront peut-être
reconnu ici intégrales et algorithmes de Monaco)

Raison n°6 : Ca
change tout le temps ...

Tout comme l'évolution technologique, la programmation est
en évolution constante, il y a toujours de nouvelles choses à apprendre :
des nouvelles bibliothèques (ce sont des outils qui vous permettront de coder
plus vite, en s'occupant de choses à votre place, certaines sont spécialisées
dans certaines tâches), des nouvelles plate-formes (programmer su Wii, Iphone,
portable, PS3, etc., ça se fait comme sur ordinateur), ou alors étudier de plus
près les standards (les « règles » de la programmation, c'est
toujours intéressant) etc. En programmation, vous pourrez toujours en apprendre
plus.

Raison n°7 : ...
mais vous pouvez vite vous amuser !

Alors non, en une semaine, vous ne ferez pas un nouveau Call
of Duty. Ni même un Mario. Ni même un Pac-man. Ni même un Pong. Je voulais
contrebalancer ce que je disais plus haut, en revanche, il n'est pas besoin de
connaître parfaitement tous les standards, de s'être avalé une centaine de documentations
(les modes d'emploi des bibliothèques) et d'avoir cracké votre Iphone (j'avais
entendu dire que c'était indispensable pour développer) pour pouvoir s'amuser
en programmation. Personnellement, je trouve que c'est déjà amusant à faire
comme ça ; mais au bout de trois mois (trois mois en y allant très
tranquillement), vous pourrez vous lancer dans un premier jeu 2D. Ce que je
voulais dire par là, c'est que 5 ans de théorie ne sont pas nécessaires pour
pondre quelque chose d'acceptable.

Raison n°8 : Vous
trouvez qu'il y a trop de langages ?

En fait, c'est pas faux. Lequel choisir ? C ? C++ ?
C# / .NET ? Java ? Python ? Ruby ? Ocaml ? Ce sont
tous des langages de programmation, connus, utilisés, et donc intéressants. En
tout, il existe plus de 7000 langages de
programmation
(les chiffres peuvent différer si l'on compte les différentes
implémentations de chacun, je tire celui-là de S&V, qui ne donne pas
beaucoup de précision dessus). Il faut déjà savoir que beaucoup sont très
spécialisés (le MISRA-C par exemple, qui sert à programmer des avions, ou même
l'Ocaml cité plus haut et plutôt utilisé pour l'apprentissage de l'algorithmique,
etc.), et qu'une fois que vous en avez appris un, vous connaissez les bases de
tous les autres.

Je m'explique : la plupart des langages de
programmation partagent les grandes lignes (conditions, boucles, ou alors POO
se retrouvent très souvent et de façon très similaire), ainsi qu'une grande
partie de leur syntaxe (la façon d'écrire les instructions, mot essentiel en
programmation comme  en français,
pensez-y dans les commentaires). Ainsi, une fois que vous en connaissez un, il
faut juste revoir les variantes dans l'utilisation de ces fondamentaux ainsi
que les quelques concepts spécifiques aux langages, et vous pourrez vous lancer
dans l'étude approfondie de celui-ci sans passer par la première partie assez
rébarbative d'apprentissage par cœur en laquelle consistent les bases.

Enfin, par quel langage commencer ? C et C++ étant
particulièrement répandus, je vous les conseille, mais Java par exemple est
aussi très en vogue. Bref, renseignez-vous, faites un choix, tout en sachant
que ce n'est pas un choix décisif pour le reste de votre vie de programmeur.

Raison n°9 : C'est
facile !

Alors, encore une fois, n'allez pas mal interpréter mes
propos : la programmation, c'est un travail, c'est parfois fatiguant de
passer des heures devant un ordi, c'est souvent casse-tête, et je ne vous parle
même pas du débogage et des tentatives de suicide de masse qu'il peut entraîner.
Ce que je veux dire par là, c'est qu'il n'y a pas besoin d'être un génie en
maths pour pouvoir programmer : Addition, soustraction, multiplication,
division et courage, voilà tout ce qu'il vous faut aujourd'hui pour vous lancer !
Même pas besoin d'argent : on trouve aujourd'hui beaucoup de cours
gratuits sur internet, et il existe d'excellents compilateurs (enfin, IDE pour
être précis, c'est-à-dire qu'il comprend entre autres un éditeur de texte)
téléchargeables gratuitement sur le net.

D'un certain côté, je vous conseillerais plutôt de vous
acheter un livre papier, parce que c'est bien plus agréable à lire, et vous n'avez
pas besoin de naviguer constamment entre les fenêtres pour passer du cours à l'IDE.
On trouve plein de livres en librairie sur la programmation, je ne peux pas
vous en conseiller parce que je ne m'y connais pas (laissez un commentaire si
vous avez quelques conseils, je les mettrais dans l'article). Cependant, si vous
cherchez un bon tuto sur Internet, vous pouvez regarder celui du Site du Zéro sur le C et le C++,
assez connu, que j'ai suivi et qui a l'avantage de former aussi à la SDL,
bibliothèque 2D permettant de créer des jeux (encore une fois, je dis cela sans savoir si des livres le font aussi), et que vous pouvez retrouver par
ici.

Raison n°10 : Ca
vous permettra de comprendre des blagues de codeurs.

 

J'espère que j'aurais
donné envie
à certains, grâce à cet article, de se mettre à la programmation,
juste pour voir ou très sérieusement. Je précise que je ne suis pas un expert
en la matière, n'hésitez donc pas à me contacter en cas d'erreur ou d'imprécision
de ma part.