IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Quelques conseils avant de me lancer.


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    agent de production
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : agent de production
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Par défaut Quelques conseils avant de me lancer.
    Bonjour à tous.

    Je souhaite me lancer dans la programmation en autodidacte et acquérir de bonnes bases. J'ai 27 ans et cela fait longtemps que je suis sorti du système scolaire : je n'ai plus l'habitude d'étudier.
    J'aimerai, à terme, pouvoir faire un jeu-video de A à Z.
    C'est pourquoi je suis à la recherche d'un tutoriel de qualité qui me permette d'apprendre la programmation de zéro sans me décourager par la difficulté de la chose. Mais bon, je peux rechercher sur le net un tuto qui correspond à mes attentes, mais n'ayant aucune connaissance dans le domaine, je ne peux pas juger le contenu de celui-ci.
    Et c'est là que je vous demande conseil.

    Donc de mes recherches sur internet se sont dégagés deux tutos :

    Le premier est un livre intitulé "C++ Through Game Programming" (http://freecomputerbooks.com/Beginni...ogramming.html) qui m'a l'air de correspondre à mon objectif actuel qu'est le jeu-video.

    Le second se trouve sur ce site, c'est "Programmation Java pour les enfants, les parents et les grands parents." (http://java.developpez.com/livres-co...s/javaenfants/) qui me paraît avoir une approche plus pédagogique, un plus pour moi qui n'ai plus étudié depuis longtemps.

    Voilà comme vous l'avez remarqué je ne suis pas fixé sur un langage en particulier tant qu'il me permet d'atteindre mon objectif. J'aimerai savoir si vous connaissez ces tutos et ce que vous en pensez vous qui avez la connaissance nécessaire
    pour juger le contenu de ces livres.

    Pour être plus précis voici deux questions.
    Ces livres me donneront-ils des bases solides pour continuer ensuite vers des notions plus avancées ?
    Pourquoi en choisiriez-vous un plutôt que l'autre ?

    Merci d'avance pour vos avis.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 142
    Par défaut
    Je n'ai pas commencé à programmer depuis longtemps, mais à mon avis, tu devrais tout de même régler le flou qui existe sur le langage que tu cherches à apprendre. Si tu en apprends un 'au pif', tu risques d'avoir passé quelques semaines (mois ?) à apprendre quelque chose qui ne servira pas ton objectif.
    Donc à mon avis, tu t'aideras et aideras les personnes plus expérimentées que moi à t'orienter en décrivant un peu plus les jeux que tu veux faire...
    Quels types de jeux ? Sur quelle plate forme ?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    agent de production
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : agent de production
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Par défaut
    Mon objectif à long terme est en effet de créer un jeu-vidéo de type hack'n'slash.
    Mais pour cela il faut connaître les bases de la programmation et bien plus encore. Donc je ne vais pas me focaliser de suite sur un tel projet mais commencer par le début.
    A plus court terme j'aimerai pour commencer faire un morpion, puis un pong et augmenter la difficulté au fil du temps.

    En ce qui concerne le langage, je ne suis pas encore fixé en effet. Mais est-ce vraiment important quand on débute ? Ce qui m'intéresse pour le moment c'est de bien commencer en programmation de bien comprendre les concepts de base. Le langage, si j'ai bien compris l'idée, n'est qu'un outils dans tous ça et si on sait bien programmer le langage n'est qu'une syntaxe à apprendre. Bien sur je suppose que c'est un peu plus subtil que ça mais bon ça on verra plus tard.
    Ce que je veux savoir si c'est les tutos sont valables, s'ils donnent des bases solides pour attaquer ensuite des notions plus avancées.

  4. #4
    Expert confirmé

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 907
    Par défaut
    Salut,

    Tu peu commencer sans hésiter par http://java.developpez.com/livres-co...s/javaenfants/ , ceux qui ont fait ce choix ont généralement très bien réussi. Tu peu aussi avant ça lire un peu les cours Algo : http://algo.developpez.com/cours/

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    agent de production
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : agent de production
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Par défaut
    Merci pour cet avis.

    J'étais justement en train de me renseigner sur l'algorithmique.
    J'avoue que ça me fait un peu peur par le coté très théorique mais bon ça à l'air d'être trop important pour passer à coté.
    Donc le faire à coté d'un cours plus axé sur la pratique me permettra de rester bien motivé.

    J'ai encore quelques liens à aller voir mais ton conseil me plait bien. Je posterai mon choix final dans la journée je pense, si vous avez d'autres avis encore je suis ouvert à toute suggestion.

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Pour savoir développer, il faut selon moi manier 4 compétences :
    - Maîtriser un langage de programmation,
    - Maîtriser l'algorithmie,
    - Maîtriser l'architecture du code,
    - Maîtriser le domaine d'application auquel le programme se destine.
    Toutes ne sont pas tout le temps nécessaires tout le temps (un simple programme d'interface graphique par dessus une base de données n'a pas besoin d'algorithmie, un programme de 100 lignes n'a pas besoin d'architecture, d'autres personnes peuvent épauler pour la connaissance du domaine d'application...), mais si tu travailles seul sur un projet ambitieux comme celui-là, il te les faudra toutes...

    Pour ce qui est des matériaux d'étude proposés, j'ai juste jeté un coup d’œil rapide à celui sur java (et je suis d'accord que le choix du langage importe peu pour démarrer, même s'il vaut mieux se fixer sur un seul pour démarrer, puis en étudier plusieurs), et j'ai quelques réserves à son sujet : Il a effectivement l'air didactique, mais j'ai l'impression qu'il pêche un peu sur le plan architecture de code (non respect du LSP, par exemple). Ce qui n'empêche pas qu'il puisse être très bien pour commencer, il faut juste en être conscient pour renforcer ce point ailleurs avant de prendre trop de mauvaises habitudes.

    Quand tu dis que tes études sont du passé, tu étais allé jusqu'où ? Ça peut aider à proposer des ressources.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    agent de production
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : agent de production
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Par défaut
    Niveau études, j'ai eu un bac littéraire et fait une première année d'anglais à la fac.
    Après ça, le néant. Je suis rentré dans la vie active.

  8. #8
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    ça dépend de toi aussi quel voie tu veux choisir ? Tu peux faire un jeu en C mais ce n'est pas la route la plus simple.

    Pour le jeu vidéo c'est beaucoup expérience donc programmer , programmer et encore programmer , c'est bien que tu veuille faire un tetris + augmenté le niveau jusqu’à ton Hack'n Slash.
    Donc le langage déterminera aussi la complexité de créer le jeu (la plupart des lib C reste bas level) ,alors que le C# te permettra de programmer avec le moteur Unity3D.

  9. #9
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Apprendre le C et passer au C++ est une des meilleures façons de ne jamais écrire du C++ "correct".

    Tu peux commencer avec à peu près n'importe quel langage et t'orienter vers un autre langage plus tard quand tu auras les bases.
    Mais le C n'est pas un bon langage pour commencer et partir sur un langage objet par la suite, car énormément de bonnes pratiques en C sont de mauvaises pratiques en C++.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    agent de production
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : agent de production
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Par défaut
    Je comprend ce que tu veux me dire.
    Mais bon comme je l'ai dit je commence de zéro et mon projet de hack'n'slash même si ce sera mon fil conducteur, j'ai beaucoup à apprendre avant de me lancer dedans.
    Pour l'instant je désire acquérir de bonnes bases. Pour les différents langages et leur contraintes j'y ferais vraiment attention quand j'aurais les connaissances nécessaires pour me lancer dans un tel projet.
    Pour le moment faut bien commencer par quelque chose est que ce soit le C, C++, Java ou je ne sais quel autre langage ça m'est égal.

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    agent de production
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : agent de production
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Par défaut
    Donc au final je vais me lancer avec http://java.developpez.com/livres-co...s/javaenfants/ et de l'algorithmie en parallèle.
    Je vais faire des recherches sur l'architecture voir si je trouve les bases puisque apparemment c'est le point faible de ce tuto.
    Je m'y plonge de suite.

    Merci à tous pour vos réponses qui m'ont bien aidé.

  12. #12
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    J'aime bien les livres pour apprendre quelque-chose (et internet pour chercher des références). Il y a un livre d'introduction à la programmation (en C++) fait pour des gens pas scientifiques, et assez pédagogique : You Can Do It!: A Beginner's Introduction to Computer Programming. Même s'il ne constitue qu'une introduction et ne va clairement pas assez loin, je pense qu'il pourrait constituer un bon choix pour toi. Après, je n'aime pas forcément les choix d'outils qu'il a effectué, mais je ne pense pas que ce soit rédhibitoire, il sera toujours temps d'en changer par la suite. Comme l'anglais a l'air ne ne pas te poser de problèmes, je te conseille la VO, la VF étant truffée de petites erreurs.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  13. #13
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Quoi qu'il en soit, le problème dont on ne parle pas souvent, c'est la démotivation.
    Il faut toujours apprendre avec des objectifs limités, pour pouvoir les atteindre avant de se sentir dépassé et d'abandonner.

    Choisis judicieusement tes étapes, un jeu est long et complexe.
    Commence par des programmes qui font une seule chose, mais la feront bien.

    Puis lance-toi dans le graphisme, avec un tetris, par exemple. J'ai personnellement apprécié ce tuto-ci, écrit en C.

    Passe ensuite à des jeux présentant une IA légère (un robot suivant le personnage, par exemple)

    Enfin, tu auras goûté à suffisamment de problèmes pour savoir comment diviser ton programme en étapes.

    PS: il y a eu une discussion similaire, que je t'invite à lire.
    Bon courage, et amuse-toi bien!

  14. #14
    Membre très actif
    Homme Profil pro
    Développeur Junior
    Inscrit en
    Septembre 2011
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Junior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 170
    Par défaut
    Bonjour,

    Je conseillerais personnellement comme langage le C++ avec SDL ou SFML comme librairie.

    Je pense que le mieux est, comme le suggérai un membre, de commencer par des applications simples pour te familiariser au langage et à la POO.
    Des jeux simples (pendu, essayer de trouver un nombre aléatoire) te permettront de mieux structurer ton code.

    Créer un jeu est long et complexe mais le résultat est génial.
    En tout cas une chose est sure, tout le monde te dira de programmer en tel ou tel langage. Le mieux est de commencer sur un langage, et de ne pas le quitter sinon tu risques de t'arracher les cheveux ^^
    Bon courage en tout cas !

  15. #15
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Je ne suis pas d'accord.
    Ce n'est pas une question d'apprendre une syntaxe, vu que c'est quasiment la même partout.
    Ce qu'il faut apprendre, c'est à penser un programme: comment choisir une représentation des données du problème, et comment le résoudre.

    Un programme fait quelque chose, pour pouvoir l'écrire, il suffit de transposer en code la solution que l'on connaît.
    Le vrai apprentissage est bien de comprendre comment trouver les solutions des problèmes qu'on rencontre.

    Les langages se ressemblent énormément quand ils traitent le bon sujet.
    Un langage est un outil. Et le bon outil n'est pas celui que tu utilises, mais celui qui a été conçu pour résoudre ton problème.

    Tu peux t'amuser à découvrir la programmation par la paire html & javascript (auquel tu peux ajouter le css pour le beau)
    Ainsi, il te suffit d'une trentaine de ligne pour dessiner l'interface graphique d'une calculatrice, uniquement en html (table de boutons), et la rendre fonctionnelle en javascript.
    C'est d'ailleurs un excellent exercice, qui permet d'expérimenter la manipulation des chaînes et nombres.

    Personnellement, j'ai appris à utiliser le C, le C++, Java, html&javascript, php, bash, fortran, basic, plus d'autres truc très exotiques (whitespace, piet, path, par exemple)
    Et j'utilise régulièrement chacun, selon le besoin. (bon d'accord, je ne fais que lire du fortran, et je ne veux plus toucher au basic, sauf pour aider)

  16. #16
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Citation Envoyé par leternel Voir le message
    Tu peux t'amuser à découvrir la programmation par la paire html & javascript (auquel tu peux ajouter le css pour le beau)
    Ainsi, il te suffit d'une trentaine de ligne pour dessiner l'interface graphique d'une calculatrice, uniquement en html (table de boutons), et la rendre fonctionnelle en javascript.
    C'est d'ailleurs un excellent exercice, qui permet d'expérimenter la manipulation des chaînes et nombres.
    Bof, à part échapper correctement des ' ou " il n'y à rien à faire, eval fait tout tout seul
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!DOCTYPE  html>
    <html>
    <head><title>Calc</title></head>
    <body>
    	<input type="text" id="in" /><br />
    	<input type="button" value="=" onclick="eval('document.getElementById(\'result\').value = eval(document.getElementById(\'in\').value)')" /><br />
    	<input type="text" readonly="true" id="result" />
    </body>
    </html>
    (Mais apprendre le html / javascript ne peut pas être une mauvaise chose, c'est toujours utile.)

    Un langage au typage dynamique, généralement interprété, (javascript, php, python, ruby, ...) est utile pour apprendre l'algorithmie (bien que le js soit assez particulier : pas de réelle classe).
    Mais un langage compilé au typage statique (C++, D, Java, C#, ...) est imo préférable pour commencer, c'est tellement plus pratique d'avoir des erreurs de compilation plutôt que des erreurs d'exécution, et c'est aussi un gain de temps énorme.
    Ils imposent aussi une certaine rigueur et une vision plus bas niveau (en particulier le C++ avec la gestion manuelle de la mémoire). C'est essentiel de savoir ce qu'il se passe exactement (ou au moins à peu près) derrière les lignes de code qu'on écrit.

    Et pour ça, apprendre l'assembleur après avoir appris les bases de la programmation est une bonne chose.

    Le D n'a pas été proposé comme premier langage. Même s'il existe peu de ressources encore, ça peut être un bon compromis entre C++ et Java ou C#.

    Citation Envoyé par leternel Voir le message
    Ce qu'il faut apprendre, c'est à penser un programme: comment choisir une représentation des données du problème, et comment le résoudre.
    La dessus on est d'accord, mais la représentation du problème est aussi liée au langage : un code sera structuré à peu près de la même façon en C++ ou en Java (ou n'importe quel autre langage objet) mais le sera peut être différemment en C.
    Il y à aussi de grosses différences liées au langage et de bonnes habitudes en C++ peuvent être de mauvaises habitudes en Java, ou inversement.
    (Qui à parlé d'interface pour tout et n'importe quoi ?)

    TL;DR On ne passe pas si simplement d'un langage à un autre, comme tu le dis "Ce n'est pas une question d'apprendre une syntaxe, vu que c'est quasiment la même partout.", mais ce n'est pas non plus qu'une question d'algorithmie.

  17. #17
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Tu triches avec eval(), car tu n'es pas résistant aux saisies pourries. eval('2 + rien'), sera au plus amusant.

    Essaie d'en faire une sans saisie autre que les détections de touches, tu verras que l'exercice est déjà intéressant.

  18. #18
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Citation Envoyé par leternel Voir le message
    Tu triches avec eval(), car tu n'es pas résistant aux saisies pourries. eval('2 + rien'), sera au plus amusant.
    Triche ou utilisation des capacités du langage ? (Mais c'est vrai que ça rend l'exo trop simple).
    Pour éviter les saisies pourries, une simple vérification avec une regex avant d'eval (ou sur l'évènement keypress) et c'est réglé.

Discussions similaires

  1. [Conseil] Avant de se lancer
    Par Je_Debute dans le forum C#
    Réponses: 2
    Dernier message: 14/11/2012, 16h46
  2. Réponses: 8
    Dernier message: 06/07/2012, 00h01
  3. Vos conseils avant de me lancer
    Par rlejeune dans le forum Access
    Réponses: 1
    Dernier message: 11/12/2010, 17h09
  4. Quelques dernières question avant de se lancer
    Par xxkirastarothxx dans le forum Général Python
    Réponses: 8
    Dernier message: 24/03/2009, 17h46
  5. Quelques conseils pour me lancer
    Par smux dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 22/11/2008, 18h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo