Voila, je poste ce topic pour une raison bien particulière: j'aimerais me lancer dans la proggramation (en tant que passe-temps, pour l'instant du moins ^^) seulement, je ne sais par quoi commencer!
Dois-je commencer par apprendre le language Java? C++? Python? Bref je ne sais pas du tout par quoi commencer, sachant que j'aimerais creer par la suite des heux videos (pas d'enorme projet bien sur, juste des petits sans grandes envergures ^^)
Y a t'il quelqu'un qui peut me renseigner sur quel language(s?) commencer?
Merci d'avance!
Ps: Désolé si il y a de nombreuses fautes d'orthographes
Selon tes critères, le C++ sera un très bon choix sachant qu'il est ( selon moi et plein d'autre personnes) un langage très facile à prendre en main. Le soucis pour apprendre la programmation ce n'est pas le langage mais la programmation en elle même. En gros, une personne ayant déjà fait du C ou du C++ aura de très grandes facilités à apprendre java ou Python etc du moment qu'elle ait les bases de la programmation.
Rebelote, étant donné que le C++ est un langage plutôt simple à comprendre une fois de bonnes bases acquises je te conseille de commencer par celui-ci ( en plus avec le C++ ou C# (qui est très proche du C++) tu pourra faire de très très bon jeux vidéo, il te faudra juste un moteur de jeu sur lequel programmer).
À mon avis, si tu n'as aucune base en algorithmie, tu devrais commencer par un langage dit de "haut niveau". C'est à dire un langage qui s'approche plus du langage humain que du langage machine. Je pense par exemple au Python qui ne peut être qu'un bon choix pour débuter. (Même pour les développeurs confirmés, c'est un langage qui a une multitude d’applications ;) )
PS: Sujet déplacé dans "Discussions développement"
EDIT:
Eyrollz a écrit:
Selon tes critères, le C++ sera un très bon choix sachant qu'il est ( selon moi et plein d'autre personnes) un langage très facile à prendre en main.
Je suis désolé mais c'est faux. Le C++ n'a jamais eu la réputation d'être facile à prendre en main pour un débutant. Il a une syntaxe exigeante et des notions qui n'existent pas en Python comme les pointeurs...
Merci de vos réponses, seulement qu'est ce qu'un language dit de "haut niveau? Qu'est ce qui différencie dans son apprentissage un language de haut niveau (Python) d'un autre language "banal" (C++)
Et non je n'ai aucune connaissance en algorithmie, cela peut il etre genant pour certains languages?
Ps: Desole d'avoir mis ce topic au mauvais endroit, je suis nouveau sur le forum
Qu'est ce qui différencie dans son apprentissage un language de haut niveau (Python) d'un autre language "banal" (C++)
Ce que tu voulais dire par "banal" c'est bas niveau. Mais il n'y a pas une séparation claire et nette, c'est un peu comme une échelle de difficulté Par exemple en Python le typage est dynamique. (Le typage c'est le fait de donner du sens aux caractères, dire si tel caractère est un entier, un nombre flottant etc...) Cela signifie que tu devra "moins t'en occuper " que dans des langages comme le C++.
CaliMetar1 a écrit:
Et non je n'ai aucune connaissance en algorithmie, cela peut il etre genant pour certains languages?
Du coup tu me conseilles plutot de commencer en python?
Est-ce que Python est un language adapte a la creation de projet sur Android ou sur la conception de jeux videos sur ordinateurs (tres tres simplistes^^)?
Quitte a apprendre un langage pour la création de projet sur Android, je te conseillerai plutôt le Java qui est a mon avis ce qui se fait de mieux pour ca, et qui a l'avantage d'être un bon langage pour apprendre la programmation orienté objet, ce qui t'aidera d'ailleurs quand tu voudras apprendre le C++ ou autre ;-)
De plus le Java peut être sympa pour créer des petits jeux ou des logiciels avec interface graphique
Merci encore pour vos reponses, malheureusement vous me perdez la!
Chacun me donne une reponse differente (ce que je comprend d'ailleurs ) mais quelqu'un (de tres aimable ^^) pourrait il me donner les plus et les moins de ces 3 languages svp? C++, Java et Python
C++ => Langage de POO qui est surement un des meilleurs pour apprendre les bases de l'algorithmie et de la POO, et un des plus performants (je fais de la recherche, et c'est ce que j'utilise tous les jours pour optimiser mes programmes de calculs au maximum)
Java => Un autre langage de POO, mais qui est le plus simple a utiliser pour des appli Android
Python => Langage de haut niveau, donc plus facile a utiliser pour un débutant, mais ce n'est pas un langage compilé, donc pas le plus optimisé pour le développement de jeu. C'est beaucoup utilisé pour des applications de calcul mathématiques car beaucoup de fonctions de bases sont disponibles.
A toi de choisir maintenant suivant ce que tu veux faire ;-)
python (3 essentiellement j'ai pas touché au 2.x ):
lent mais aucunes limites (exemple : c# a un type de donnée appelé long qui est censé contenir beacoup de décimal et de chiffres pour composer un nombre. donc ici on 'joue' avec la mémoire, en python tu peut mettre 6 milliards de décimals si cela te chantes ! dans les autres langages, tu es limités !)
langage de script, donc on ne compile : pas besoin d'attendre 1 minute à 1 heure en fonction de la taille du projet ! (compilation : on met en langage semi machine, c'est un peu compliqué )
multi plateformes : tu peux donner ton script .py / .pyw (en .pyw pour ceux qui ne connaissent pas, on n'affiche pas la console, tres pratique quand on fait des interfaces graphiques !) et d'autres personnes pourront l'utiliser sous windows, linux, mac os . . . et beacoup d'autres os peu connu mais ou python est supporté ET installé ! (faut juste le téléchargé, facile )
tu veux faire des jeux videos, ok. mais tu veux mettre le mains, ou juste faire un jeu (exemple : unity (je prend un exemple, ne vous offusquez pas !), avec unity si tu t'y connais un peu pas besoin de beacoup de code, voir meme pas du tout, je pense a des langages que j'appel de brics comme scratch : tu déplaces des bricks et tu as un code ! pas besoin d'ecrire 400000000 lignes, unity le fait pour toi, mais juste les bases, il peut pas pondre une ia digne de lol !)
Language semi-machine ? Ça n'existe pas. Pas besoin de "400000000 " lignes de code pour faire un bon jeu
Ensuite quelles differences entre un langage de haut niveau et bas niveau ?
Un language de haut niveau est un langage qui se rapproche du language humain (if, else).
Donc un language de bas niveau est un language qui se rapproche du binaire, ils sont très dure à apprendre et parfois demande une connaissance sur l'ordinateur.
Merci de vos reponses (encore une fois, je me repète je sais :P)
Je pense donc commencer par apprendre le language Java (grace au tuto present sur Openclassrooms!)
Et pourquoi pas apprendre a utiliser unity? Quels styles de jeux peuvent etre créés grace a Unity?
Sur le cours sur Unity on ne traite le cas que de jeux de plateforme, mais une fois le logiciel maitrise est il possible de faire d autres styles de jeux?
Je pourrais te conseiller une chose simple. Tu tapes "Apprendre le langage C" (à la place de C, tu mets soit, C++, python, java) sur un moteur de recherche. Tu classes en fonction du nombre de résultats cohérents. Si tu as 4 topics sur le C + 2 sites pour l'apprendre, mais 12 topics sur Java + 3 sites pour l'apprendre avec le même nombre de liens total de chaque côté, pars sur Java.
Avec la puissance actuelle des ordinateurs, certes un programme bien écrit en C ou C++ sera plus performant que ce même programme bien écrit en Java, mais, pour ton niveau (contrairement à younes22 qui fait de la recherche), tu devrais choisir le langage le plus disponible, c'est-à-dire beaucoup de bons cours (choisis en un seul, et tu t'appuies sur les autres), et beaucoup de discussions entre utilisateurs.
Enfin, comme je l'ai vu sur le topic de Java épinglé sur le forum d'Hardware.fr, le premier langage de programmation à apprendre c'est l'anglais.
Bien, sûr, tu peux te démerder très bien en ne prenant que des cours francophones, mais, un exemple vaut mieux qu'une argumentation chiante :
en C, stdio signifie STanDard Input Output = à peu près toutes les fonctions de bases d'intéraction clavier/écran (je simplifie). Comme ces bibliothèques (ça porte bien leur nom, il te manque un livre, tu vas à la biblio tu l'as, en prog, c'est "pareil", il te manque une fonction, tu vas appeler la biblio qui a cette fonction, tu peux utiliser la fonction), en connaissant l'anglais, si tu développes un prog hors réseau uniquement, et qu'on te propose de télécharger (j'invente complètement le nom) nwlib, alors que nw = network (réseau), bien, elle te servira à rien.
J'avais conclu mais je dois ajouter d'autres choses : quand tu auras choisi ton premier langage, tu iras sur le site officiel, à la page documentation et tutoriels (ce sera en anglais à 95 % des cas), ce sera une excellente base, MAIS, c'est pas ludique du tout, pire, ça peut être soporifique. Donc, lis les 2 premières pages (intro + premier point) de chaque cours, si le prof est chiant (pas de blagues, pas de petits trolls gentils contre d'autres langage, etc.) passe à un autre cours, car la prog implique de la logique et de la rigueur (+ pleins d'autres qualités) mais, parfois, faut pouvoir lâcher prise. N'hésite pas à regarder de bonnes vidéos sur youtube également.
---
Ca sort un peu du sujet, mais, Blender, le logiciel de création 3D libre, est écrit en C je crois, et les plugins sont en python. Je trouve que le mariage est très bien : un langage assez bas niveau : C pour le logiciel et un langage de script pour optimiser ces temps de rendus par exemple. De plus, Blender contient un moteur de jeu.
Par contre, je ne connais Unity que de nom, donc, peut-être qu'Unity te propose déjà la partie graphique (personnages, maps, etc.), mais, à mon humble avis, si on veut créer des jeux vidéo, ce serait bien de dessiner ou de faire dessiner par une autre personne.
---
PS : sans troll aucun, commence par le langage ADA. Ultra rigoureux, tu peux absolument tout définir (création d'un type spécial de variables qui ne comportent que les mois de l'année par exemple), très verbeux (normal vu ses possibilités), c'est un langage que je classerais dans les bas niveaux malgré sa syntaxe très proche du langage humain, avec toutes ses qualités citées et en les utilisant efficacement on pond un programme plus optimisé et plus performant que d'autres langages (à part l'assembleur bien entendu). Son défaut ? Ultra chiant à apprendre à cause de toutes ses qualités. Aussi, il est impopulaire car il est chiant (déjà dit) mais aussi il a été crée par le Department of Defense des USA, il fait un peu "peur" (du genre : "maintenant qu'on connait les méthodes de la NSA, je suis sûr que tous logiciels ADA contient un spyware indétectable ")
- Edité par tomsawyer1311 1 novembre 2014 à 10:46:12
Etant donné qu'il souhaiterais plus tard créer un jeux sous Unity 3D ( donc en C# je suppose) je te conseille vivement ( pour ne pas employer le verbe "obliger" ) d'apprendre le C++ car c'est celui que tous les ordinateurs comprennent de nos jours sans avoir besoin d'installer quoi que ce soit pour Java et autres. Je te recommande aussi d'apprendre le C++ car quand tu apprend le C++, tu n'as pas à apprendre le C et le C# ( personnellement sous Unity 3D, je n'ai jamais regardé un ligne d'un cours de C# et pourtant mon jeu avançait plutôt bien et je n'avais pas de problèmes au niveau de la programmation, j'avais même souvent oublié que je programmais en c#).
De plus, si tu souhaites apprendre Java dis toi que le C++ se rapproche énormément de C# et que C# se rapproche lui même énormément du Java.
Quand je vois certains te recommander un langage car il y a plus de résultats sur Google sachant que ce dernier plébiscite Java : C'est pas très convainquant. Personnellement, j'ai commencé par le Java, j'ai compris 2/3 petits trucs mais ensuite ça m'a bloqué je me suis donc tourné vers le C++ et (dans le Livre du SdZ) je vois comme par magie une image de Warcraft 3 dans le Livre ! Je me suis donc dit qu'en apprenant ce langage, je pourrais faire un jeu comme celui-ci et il s'est avéré que l'on peut même faire beaucoup mieux ! Les personnes ici ont tendances à te proposer un langage selon leurs critères à eux mais moi je pense qu'avec tes critères :
- Veut faire un jeu vidéo avec Unity 3D
- Aucune notion de programmation.
Il serait plus efficace de commencer par le C++ ( de plus avec Qt et d'autres moteurs de jeux tel que UE4 tu pourras faire non seulement des jeux vidéos mais aussi des fenêtres et des applications beaucoup plus complexes !)
Quand tu dis "Quand je vois certains te recommander un langage car il y a plus de résultats sur Google sachant que ce dernier plébiscite Java : C'est pas très convainquant"
Tu n'as pas tort, mais, l'avantage d'un langage populaire, c'est qu'il ne bloquera pas trop longtemps et avancera à son niveau. Le C++ est un langage "noble", tu as plus de chance d'être pris pour un arriviste si tu dis que tu galères en C++. Et il galèrera en C++, également en Java tu me diras
Enfin, quand tu dis que nous pensons qu'avec nos critères, je ne lui ai pas directement conseillé Java (enfin, peut-être, la flemme de me relire). Je lui ai conseillé ADA pour apprendre, et je me suis retenu de lui conseiller C++ qui, selon moi et ses critères, est LE langage non pas du moment, mais qui a une excellente réputation.
Après, certains apprennent le langage le plus rigoureux (ADA, C, C++, etc.) et s'adaptent en quelques heures de lectures de la doc et des intro des autres langages. Alors que d'autres vont privilégier le langage le plus adapté à leur besoin et en tomber "amoureux" puis aller presque dénigrer les autres langages et donc rester sectaires.
Etant donné qu'il souhaiterais plus tard créer un jeux sous Unity 3D ( donc en C# je suppose) je te conseille vivement ( pour ne pas employer le verbe "obliger" ) d'apprendre le C++ car c'est celui que tous les ordinateurs comprennent de nos jours sans avoir besoin d'installer quoi que ce soit pour Java et autres.
Tu a totalement faux sur un point, c++ n'est pas compatible pour tous les ordinateurs. Je m'explique : quand tu fais un programme en C++ sur Linux et que tu veux l'executer sur un Mac ou Windows. Tu ne peux pas, tu dois compiler (action de passer du code aux language machine) ton code avec un compilateur spécialement sur Mac ou Windows. Contrairement aux Java ou Python, si Java/Python est installé sur n'importe quel Windows, Mac, etc... Tu peux l'executer en toute tranquillité.
Après tu a language adapté pour chaque Système d'exploitation, sur Windows c'est C#, sur Mac et Iphone c'est le Swift/Objective-c, pour Linux je pencherais pour le C++, le python ou le Java.
Et c'est faux dire que le C++ est le meilleure language pour faire des jeux ou des choses poussé avec les interfaces Graphique. Les jeux pour Android sont fait en Java et ils sont très bien fait. De plus sur iPhone il y a des bibliothèques excellentes pour faire des jeux 2d et 3d, je pense à InfinityBlade III. Et il y a la bibliothèque Cocoa qui est bien plus poussée que Qt sur Mac. C'est un contre-exemple que je te donne
Le Java est très bien répertorié sur Google car c'est le language que les entreprises utilisent le plus souvent.
Etant donné qu'il souhaiterais plus tard créer un jeux sous Unity 3D ( donc en C# je suppose) je te conseille vivement ( pour ne pas employer le verbe "obliger" ) d'apprendre le C++ car c'est celui que tous les ordinateurs comprennent de nos jours sans avoir besoin d'installer quoi que ce soit pour Java et autres.
Tu a totalement faux sur un point, c++ n'est pas compatible pour tous les ordinateurs. Je m'explique : quand tu fais un programme en C++ sur Linux et que tu veux l'executer sur un Mac ou Windows. Tu ne peux pas, tu dois compiler (action de passer du code aux language machine) ton code avec un compilateur spécialement sur Mac ou Windows. Contrairement aux Java ou Python, si Java/Python est installé sur n'importe quel Windows, Mac, etc... Tu peux l'executer en toute tranquillité.
Edité par Cirdo il y a 23 minutes
Quand je disais que tous les ordinateurs comprenaient le C++, tu viens de le prouver toi même, il suffit juste de compiler ton code source sous l'OS de ton choix sans te soucier d'avoir telle ou telle application installée ( outre le compilateur, bien sûr) donc il est bien compris de TOUS les Os !
EDIT : D'ailleurs les OS eux mêmes sont programmés avec une base d'ASM puis de C.
Je n'ai jamais dis que le c++ était le meilleur langage et faire une généralité telle que celle-ci pour tout autre langage serait de la pur bêtise : Selon ce que l'on veut faire, il vaut mieux privilégier un langage plutôt qu'un autre. Ici le problème n'est pas "Quelle est le meilleur langage de programmation ?" Mais " Quelle est le langage à étudier lorsque l'on débute la programmation ?". Et dans ce cas, il vaut mieux privilégier le C / C++ car il sont plus simples à prendre en main tandis que pour Java, il faut installer ceci cela et c'est moins rapide que les deux précédents langages.
Sur ce, je pense avoir donné les critères de bases pour choisir un langage et ils ne sont nullement pas obligatoires mon but étais d'aider et de clarifier les choses pour le lecteur. Maintenant, libre à lui de commencer par le Java, Ruby voire même le HTML ou PHP.
Cordialement,
Eyrollz.
- Edité par Plus Tony que Sosa 2 novembre 2014 à 13:37:27
Pourquoi ? Parce que selon toi, et plein d'autres personnes, C++ est facile à prendre en main. Parce que les ordinateurs ne comprennent pas plus le C++ qu'autre chose. Parce que C, C++ et C# sont trois choses bien distinctes (et que le C/C++ n'existe pas).
Mais je ne parle que selon mes ressenti car oui, le C++ a été pour moi le langage le plus simple à comprendre même si n'est peut-être pas l'avis de tout le monde!
Ensuite je n'ai jamais dis que le langage C/C++ existait mais j'ai dis qu'il vaut mieux privilégier le C OU le C++ pour débuter ( moins de choses à installer de base).
Ah oui et merci aussi de m'apprendre que le C / C++ / C# étaient 3 langages bien distincts Waouh !
Après il faut comprendre les choses dans le sens que je leur ai donné et ne pas modifier celui-ci pour démontrer des bêtises ( comme un sois-disant langage qui serait le C/C++). Apparemment sur OcR les seuls topics comme celui-ci n'invitent que des gens à polémiquer ( pour ne pas dire troller) en s'appuyant sur des arguments tellement illogiques et pas en rapport avec la question / sujet / thème du post original pourvu qu'ils réussissent à "pousser" leur langage préféré à l'auteur du topic.
Si je dis n'importe quoi et que je me trompe, pas de soucis, je suis ouvert à tout débat qui soit bien encadré et qui ne dérape pas à autre chose car quand on voit par exemple wowi_ qui essaye de jouer la personne qui parle peut et en anglais pour faire le gars stylé: il faut arrêter.
Si je me trompe, dites moi sur quel point et ainsi ce genre de débat intelligent bénéficiera pour tout le monde y compris l'auteur du Topic.
Mais je ne parle que selon mes ressenti car oui, le C++ a été pour moi le langage le plus simple à comprendre même si n'est peut-être pas l'avis de tout le monde!
Ce point précis, première phrase, première bêtise (pour ce post précis).
Non, le C++ n'est pas un langage simple à appréhender dire le contraire serait mentir.
Ou alors, on ne pratique pas le même C++.
PS: Merci, mais je sais que je suis stylé pas besoin de me le dire.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
entwanne — @entwanne.bsky.social — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne.bsky.social — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique