[DELROTH] Débuter la programmation
12-22-2012, 10:57:54
#1
[DELROTH] Débuter la programmation
Je copy-paste ce tuto rédigé par delroth pour le forum des 2017 :

Bon(jour|soir),

J'ai posté un topic à peu près du même genre l'an dernier sur le forum des 2016 pour parler un peu de la programmation, pourquoi c'est important en informatique, et comment et pourquoi s'y mettre dès maintenant. Ça m'a l'air d'avoir été assez utile et d'avoir aidé un certain nombre de gens l'an dernier, donc pourquoi pas refaire la même chose cette année. Le discours sera à peu près le même, mais mon point de vue à certainement évolué depuis l'an dernier donc ça vaut surement le coup.

Premièrement, vous devrez à un moment ou un autre programmer. Si vous entrez à EPITA, à peu près tous les jobs de sortie habituels de cette école impliquent de la programmation. Être chef de projet, administrateur système ou architecte réseau ne veut pas dire ne pas programmer : la programmation est l'outil de base de toute personne passant la plupart de son temps sur un ordinateur pour réaliser ce qu'elle imagine et conçoit, et quoi que l'école essaie de vous enseigner vous ne pourrez pas diriger efficacement une équipe de programmeurs sans comprendre ce qu'ils font (ça semble logique, non ?).

Deuxièmement, l'école vous apportera un bagage minimum de connaissances en informatique. C'est votre curiosité et votre travail personnel qui fera de vous quelqu'un de compétent dans le domaine. N'attendez pas que tout vienne à vous, prenez de l'avance : vous la conserverez, et l'écart s'agrandira au fur et à mesure avec tous les gens qui attendent les cours pour apprendre la base de leur travail. C'est entre autre cet écart qui fait que dans une même promotion des gens sortent de l'école en CDI chez Google/Facebook/Microsoft ou en CDI chez Cap Gemini/Accenture (plus ou moins des usines à programmation). Comme partout, les gens doués à la base n'ont de l'avantage que si vous travaillez autant qu'eux. La prépa EPITA vous donne plein de temps, profitez en pour autre chose que jouer à WoW.

Troisièmement, si vous avez de l'imagination et/ou de la curiosité, apprendre à programmer et savoir comment fonctionne un ordinateur est quelque chose d'extrêmement enrichissant. Avant d'avoir plongé dedans vous ne pouvez même pas imaginer la subtilité du fonctionnement de ces machines : du CPU qui sur une surface de 2 ou 3 cm² exécute 4x3 milliards d'instructions par seconde, à la tête de lecture du disque dur qui lit à une précision énorme un disque qui tourne en périphérie à 651km/h, jusqu'au système d'exploitation qui simule le fonctionnement de plusieurs programmes simultanément en changeant de programme actif 100 fois par seconde. Je ne parlerai même pas des jeux vidéos qui 60 fois par seconde font traiter 2 millions de pixels à la carte graphique pour y faire des calculs d'éclairage. C'est un monde dingue, et s'il vous faudra très longtemps pour tout y comprendre, ça veut aussi et surtout dire qu'il y aura toujours des choses à y apprendre.

Bref, j'espère que j'ai donné à certains l'envie de s'y mettre. Parlons un peu plus de comment bien apprendre à programmer, histoire de gagner du temps.

Pour commencer, deux cours que je trouve pas mal pour commencer la programmation :
  • Learn Python The Hard Way - même si le titre peut faire peur, c'est un cours fait pour les débutants. La pédagogie est d'après moi très bonne, alternant entre des exemples commentés et des petits exercices, et obligeant à entrainer la mémoire en recopiant les exemples plutôt que de simplement les lire.
  • How to Think Like a Computer Scientist - le cours donné aux étudiants du MIT qui débutent la programmation. Très sympa, va bien dans les détails, un peu abstrait parfois, et qui manque un peu d'exercices.

Quelques conseils d'ordre général si vous voulez progresser vite :
  • Ne vous fermez surtout pas à l'anglais. Une très grande partie du contenu intéressant que vous trouverez sur internet est écrit en anglais car c'est une langue supposée compréhensible par tout le monde. Si vous ne savez pas lire d'anglais, c'est du suicide en informatique. À plus haut niveau, écrire et parler correctement l'anglais est également nécessaire pour communiquer efficacement avec les gens avec lesquels vous travaillerez sur des projets.
  • Trouvez une communauté de gens qui s'intéressent à l'informatique et essayez de vous y intégrer le mieux possible. Vous apprendrez énormément en lisant les conversations et en essayant de comprendre ce qu'il se passe, et si vous avez des questions il y aura des gens pour y répondre. Vous êtes avantagés : vous rentrez dans une école d'informatique qui a un channel IRC actif avec 80 personnes connectées presque tout le temps. Soyez sur #epita, écoutez ce qu'il s'y dit en essayant de pas être chiant, si vous ne comprenez pas cherchez sur google et essayez de ne pas interrompre les discussions avec des questions sur ce qu'il se dit, bref, les règles de vies classiques. On est chiant par moment mais on ne mange pas.
  • (Conseil qui vient directement d'un des cours que j'ai conseillé plus haut) N'écoutez pas les gens qui vous disent « le langage|cours que tu as choisi pour commencer l'info est mauvais » ou « beuh tu utilises notepad++ pour programmer, utilise vim|emacs ». L'important au départ est de comprendre les bases de la programmation et sa logique. Que vous appreniez ça via Java, Python, C, PHP ou quoi que ce soit n'est en rien un problème tant que vous comprenez que ce que vous avez appris n'est pas forcément le mieux pour tout. Les technologies sont des outils, il n'y a pas de langage magique qui fait tout.

Sur ce, amusez vous bien !
Don Ares, dit "Le Parrain"
EpiM**** recrute !
01-28-2013, 23:56:05
#2
RE: [DELROTH] Débuter la programmation
Je voulais savoir quand on dit qu'en Sup on fait du C# c'est forcement sous Xna pour la conception du projet de jeux ou non ?
01-29-2013, 02:08:11 (Ce message a été modifié le : 01-29-2013, 02:12:50 {2} par Arys.)
#3
RE: [DELROTH] Débuter la programmation
Non, en faite c'est selon les besoins, si tu fait ton jeu en 2D c'est clairement xna qu'il faut utiliser mais si tu fait un truc en 3D, utilise plutôt quelque chose comme directX ou open gl (utiliser directX en c# c'est vraiment hard car en réalité tu dois utiliser des dérivés comme sharp dx ou encore slimedx qui sont très mal documentés, perso avec mon groupe on utilise sharp dx et on en chie... mais apparemment open gl c'est encore pire) ou encore utiliser une bibliothèque déjà toute faite comme mogre mais ça c'est pour les faibles.

EDIT: En faite t'es même pas obligé de faire un jeu, tu peu faire autre chose en c# ou encore en caml.
Harrys est doux,
Arissa est fort,
Aristote est sage,
mais Arys n'est vraiment pas pratique.

:D Un bon poney est un poney bien cuit :D
01-29-2013, 10:25:47
#4
RE: [DELROTH] Débuter la programmation
(01-29-2013, 02:08:11)Arys a écrit : si tu fait un truc en 3D, utilise plutôt quelque chose comme directX ou open gl

Wololo complete.
[Image: rainbow_dash_signature_banner_by_legenda...4hz0if.png]
01-29-2013, 12:52:32
#5
RE: [DELROTH] Débuter la programmation
ah donc en sup tu peux réaliser tout autre chose qu'un jeux 2D ? Une appli android etc ... ??
01-29-2013, 14:19:25
#6
RE: [DELROTH] Débuter la programmation
Il faut que ça tourne sous Windows et que ça soit écrit en C# ou en OCaml.
01-29-2013, 14:40:55
#7
RE: [DELROTH] Débuter la programmation
modulo le bullshit :p
[Image: rainbow_dash_signature_banner_by_legenda...4hz0if.png]
01-29-2013, 19:22:43
#8
RE: [DELROTH] Débuter la programmation
ah ok
03-24-2013, 14:35:34 (Ce message a été modifié le : 03-24-2013, 14:36:50 {2} par KinokoFuhen.)
#9
RE: [DELROTH] Débuter la programmation
Ouais, c'est dommage si tu veux faire un jeu. Parce que déjà en C#, le seul truc potable c'est XNA, et qu'en plus, le XNA a été abandonné par Microsoft. (Et que Microsoft, c'est le mal)
03-24-2013, 15:23:50
#10
RE: [DELROTH] Débuter la programmation
Tu peux prendre autre chose que XNA en C# et au pire si tu peux pas blairer Microsoft tu peux toujours faire du Caml et espérer que ça marchera sur windows.
[Image: rainbow_dash_signature_banner_by_legenda...4hz0if.png]


Aller à :


Utilisateur(s) parcourant cette discussion : 1 visiteur(s)