Forum Custom Protocol Hack in progress

Le lieu de discussion francophone par excellence sur le hack et la scène underground

Une question ou un problème qui vous empêche de continuer la programmation de votre jeu ? Posez-la/le ici !

Modérateur : Administration

#379
Salut tout le monde je profite de ce nouveau forum pour vous posez mes questions :oops:

J'aimerais me lancer dans l'apprentissage de la programmation avant de faire un BTS dessus :mrgreen: et j'aimerais savoir si c'est possible de l'apprendre en auto-ditacte et est-ce dur ? car j'ai, on va dire, la phobie des maths peut-on devenir "programmateur" en ayant des "difficultés" en maths ? Difficultés pas trop je sais compter jusqu'à 10 et les trucs de base aussi 4+4 sa fais bien 72 non ? :geek:

Merci d'avance
#391
1) Programmeur. Un programmeur qui entend programmateur va, au mieux te cracher dessus, au pire de dévisser la tête :p
2) OUI lance-toi en autodidacte, fonce, c'est parfaitement abordable ! Je vois des gars de 15 ans qui codent des trucs incroyables ! Le site OpenClassrooms regroupe des centaines de cours sur plein de langages variés, choisis ce que tu préfères.

Il existe des langages de "haut" ou "bas" niveau. Je préfère dire "de plus haut niveau que" et "de moins haut niveau que", parce que ça se voit surtout par comparaisons...
Un langage bas niveau comporte moins d'instructions, mais est proche de la machine. En gros, tu as pas beaucoup de "briques" de base, mais ton code sera exécuté plus rapidement. Vu la puissance des machines d'aujourd'hui, ça ne sera pas visible, mais bon. Je trouve que c'est une bonne idée de commencer par un langage bas niveau pour avoir des bases sur un cadre "rigide", sans une masse de fonctions qui te font tout automatiquement, ça fait travailler l'imagination et l'algorithmie.
On considère que le Java est un langage plutôt haut niveau, dans la mesure où tu as beaucoup, beaucoup plus de fonctions qui peuvent accomplir des tas de trucs. D'un côté, ça évite de recoder des tas de trucs qui existent déjà, de l'autre, bah ça fait un paquet de fonctions qu'on doit garder en tête.

Une description ultra-schématique :
Le C est un vieux langage, un peu rigide par endroits, notamment il n'est pas "orienté objets". C'est un grand classique, ça ne fait que du bien de le connaitre.
Le C++ est une variante du C agrémentée de nombreux ajouts, notamment l'aspect "orienté objets", et plein d'autres trucs. Que des bonnes choses, un grand classique aussi.
Le Java était réputé lourd, mais vu la puissance des machines aujourd'hui, ça n'est plus vraiment important. C'est un langage très "orienté objets", de plus haut niveau que le C / C++. C'est un très bon langage qui permet de faire énormément de choses, jolies, et plutôt rapidement, donc c'est assez gratifiant dès le début !

Autrement, il existe des langages de scripts, je te laisse chercher ce que c'est. Python et Ruby sont extrêmement utilisés partout (surtout Python dans l'éducation d'ailleurs, et dans les sciences notamment).

Mais oui, fonce, fonce, aucun problème avec une carence en maths, c'est de la rigueur et de la logique. BEAUCOUP de logique.
#455
Les conseils juste en haut. :mrgreen: Perso je ne suis pas assez fort dans ce domaine pour te donner de bons conseils, j'attends donc qu'Alex ou Yattoz te réponde. :3 Ça dépend aussi le type de truc que tu veux programmer (site ? jeu ?).
#462
Je parlerai ici de langage compilé, pas de langage de script, pour la simple raison que des langages de scripts, j'en connais qu'un seul, c'est Matlab (et ça sert dans un logiciel payant, Matlab, pour faire des simulations mathématiques, physiques, etc... donc ça compte pas vraiment ^^)

Si j'étais un prof' de piano un peu strict, je dirai qu'il faut faire des gammes avant de jouer des morceaux. En gardant cette logique, je privilégierai le C. C'est vraiment le langage "pour faire ses gammes", il est très formateur dans la mesure où il est plutôt rigide et il "force" un peu à avoir des bons réflexes, des bons automatismes, en programmation. Tu peux aller relativement loin avec, avec les bonnes bibliothèques (une bibliothèque, c'est un ensemble de fonctions pré-codées qui permettent de faire des trucs pas trop difficilement, par exemple gérer une interface graphique, du son, ou simplement rajouter des formules mathématiques comme le cosinus et le sinus si tu en as besoin). Je te redirige vers cette [présentation du C] si tu veux en savoir plus. D'un autre côté, il est moins utilisé pour les "vrais" projets aujourd'hui, parce qu'il lui manque un outil très apprécié : la programmation "orienté objet".

Pour schématiser, c'est une manière de penser la programmation où, quand tu crées quelque chose (une fenêtre, un bouton à cliquer, un curseur de souris, un compteur de vies, une hitbox...), tu définis une sorte de "moule" (on dit une "classe")commun, qui possèdes certaines caractéristiques, et tes objets sont des morceaux sortants de ton moule, qui possède toutes ses caractéristiques. Un truc pratique, c'est la parenté, je vais tenter de l'expliquer par un exemple :
J'ai un ouvrier, c'est un humain, et un être vivant. Tu pourrais avoir une classe "être vivant", possédant une sous-classe "humain", possédant elle-même une sous-classe "ouvrier". Ainsi, un "ouvrier" possède aussi les caractéristiques d'un humain, et un humain celles d'un être vivant (logique !).

Revenons à nos boutons, sur les langages de programmation. Tu peux commencer par le C, et ensuite tu peux te lancer dans le C++, qui est une variante du C qui possède cet aspect "orienté objet" (ainsi que plein de trucs cools). Y'a plein de trucs faits en C++, c'est un langage courant avec lequel on peut mener plein de projets sympas. Y'a notamment des tas de bibliothèques qui existent pour gérer la 3D, le son, les manettes... un peu mieux qu'en C. Peut-être que tu utilises QCMA, eh bien il est fait en C++ avec une bibliothèque pour gérer tout ce qui est graphique, qui s'appelle Qt (enfin, c'est une méga-giga-énorme bibliothèque qui fait pas que du graphique xD).[présentation du C++]
Un autre choix, ça peut être le Java, c'est un langage très très "orienté objet". Je l'ai un peu présenté plus haut. Comme le Java est un peu plus haut niveau, on peut avoir l'impression de faire beaucoup de choses compliquées dès le début, donc ça peut être très gratifiant. A toi de voir. (moi j'aime pas le Java :p )[présentation du Java]

Y'a aussi un langage dont j'ai peu entendu parler globalement, mais TOUS les étudiants de l'école où je suis en font et le trouvent super cool, c'est l'OCaml. Visiblement, c'est un super langage pour l'apprentissage, et on peut faire plein de choses gratifiantes avec, mais j'en sais pas vraiment plus. Ensuite, c'est possiblement parce que l'Inria (l'organisme qui est plus ou moins associé au département informatique à l'école, et qui fait partie du CNRS côté informatique) est l'organisme qui maintient l'OCaml aujourd'hui.

Si c'est pour du jeu vidéo (sous Windows principalement, mais pas que, je crois que le portage Linux est faisable pas trop difficilement), XNA est un bon candidat. C'est avec lui (enfin, le XNA Framework) que BEAUCOUP de jeux Windows et Xbox sont faits, par exemple Dust : An Elysian Tail, Bastion, They Bleed Pixels, ... [présentation de XNA]
J'en profite pour évoquer un point particulier : tu pourrais avoir envie de programmer des petits trucs sympas sur, disons, ta PSP, ou sur ta PS Vita (que ça soit avec Rejuvenate ou avec l'ému PSP dedans) ! Le C et le C++ sont des langages de choix pour la PSP et la PS Vita, parce qu'ils sont très utilisés par les créateurs de homebrews (donc bien documentés), tu pourras en plus trouver de l'aide et t'auras le luxe de faire des trucs que tu pourras transporter avec toi ;) Tu peux aussi te lancer dans du Lua (là encore, pour l'ePSP ou Rejuvenate, y'a un Lua Player qui est sorti récemment). Alors, du Lua, j'en ai fait dans le Nspire Lua, et c'est de la programmation évènementielle, donc c'est absolument différent de tout ce que j'ai pu voir (en gros, au lieu que ton programme s'exécute de haut en bas, t'as des bouts de programme qui sont appelés par des évènements : un clic, une pression de touche, le besoin de raffraichir l'écran parce que des trucs graphiques ont changé, etc...). Si le Lua est aussi de la programmation évènementielle sur PSP / PS Vita, je ne te conseille pas de te lancer dedans en premier, c'est super perturbant.

Un petit mot sur la programmation pour smartphones :
Pour iOS, je m'y connais mal, mais je crois que c'est de l'Objective-C (langage inspiré de son auguste grand-père le C). Y'a moyen de faire des trucs sympas, mais je sais pas comment on fait pour tester sur ces environnements fermés que sont les iPhones. J'y connais pas grand-chose.
Pour Android, tu peux mettre les mains dans le cambouis, il te faudra savoir BIEN manipuler Java principalement, et aussi le MySQL (un langage de programmation fait pour gérer les bases de données du même nom).
Pour Windows Phone, je ne sais pas trop, mais je pense qu'on peut faire pas mal de choses avec du .Net (se lit "dot net") et du C# (se lit C-Sharp). Ce sont des langages plutôt haut niveau, et qui sont aussi utilisables dans Windows. Note qu'une application Windows Phone pourra éventuellement exister sous Windows 10 en tant qu'app ;)
Et si tu es un grand malade utilisant un BlackBerry OS 10, les apps sont codées principalement en C++, mais t'as d'autres choix... y compris celui de faire une app Android que tu lances sur ton BlackBerry !
Et sinon, sur smartphones généralement, tu peux programmer des trucs en HTML/CSS/JavaScript, y'avait un truc qui permettait de déployer super facilement une application en HTML/CSS/JavaScript vers Android, iOS et Windows Phone en un clic... je me souviens plus du nom :p
En revanche, d'après ce que j'ai pu voir du JavaScript, je ne te conseille pas de te lancer dedans pour débuter, c'est un peu le bordel et niveau formation, je préfère t'orienter vers un truc un peu plus encadré comme les langages cités plus haut.


Voilà, évidemment y'a des centaines d'autres langages, j'ai essayé de t'en nommer quelques uns. Tu peux aussi regarder simplement si la syntaxe te plait, si les possibilités te plaisent aussi, pour faire ton choix. Au début, t'as pas vraiment de mauvais choix si tu prends un langage populaire (et bien sûr tout dépend de ce que tu veux faire, va pas programmer un lecteur de musiques avec XNA c'est pas adapté xD). Je suis pas un grand manitou là dedans, loin de là, donc j'espère que d'autres pourront apporter leur avis aussi ! Par contre, tout le monde sera d'accord pour dire que, en français, OpenClassroom reste la référence en matière d'apprentissage de programmation ! Mais on n'y trouve pas tout, notamment pas de Lua et d'OCaml, ça, il va falloit chercher par toi même.
Danzaiver, HomoSapiens a aimé cela
#464
Franchement Yattoz tu es super merci beaucoup tu m'a régaler :) je vais donc me lancer dans le C et faire comme tu as dis, évoluer, et apprendre le C++ je te remercie grandement grâce à toi j'ai plus de doute ;) bon ben je vais aller commencer les cours ! Merci beaucoup Yattoz !
#10284
Alors je drop-post ici 2 ans après juste pour dire que j'ai vachement évolué dans ma manière de penser la programmation, que j'ai reçu une vraie formation à l'informatique, et que j'ai passé l'agrégation de sciences de l'ingénieur en option ingénierie informatique. Donc si y'a encore des gens qui veulent des précisions sur comment se lancer en programmation, j'ai des idées bien plus détaillées... Puisque je dois par exemple être capable, à n'importe quelle rentrée scolaire, de me pointer dans un lycée / BTS / classe prépa et d'enseigner à la fois la mécanique du solide, la résistance des matériaux, l'automatique, les concepts d'électronique et d'électronique de puissance, et Python (qui est LE langage retenu en classe prépa par l'Education Nationale), et le C et C++ (qui sont les langages incontournables en BTS SN typiquement).
Donc j'ai les idées plus claires, si y'a des questions, n'hésitez pas à les poser !

(Oui je me repointe 2 ans plus tard parce que j'ai reçu un "j'aime". Comme quoi ça sert.)
Tuxbot123, Wirus a aimé cela

@tklx Bonjour, content que tout ait bien fonctio[…]

de rien à toi les joie de jouer avec ta ps […]

[QUESTION] firmware 3.68

salut voilà pour utiliser les deux bulles[…]

N'oubliez pas de visiter le site !