Programme d'entrainement à la "POO" et explication

Résolu
F0rEign Messages postés 57 Date d'inscription vendredi 22 mars 2013 Statut Membre Dernière intervention 6 septembre 2016 - 11 oct. 2015 à 20:57
F0rEign Messages postés 57 Date d'inscription vendredi 22 mars 2013 Statut Membre Dernière intervention 6 septembre 2016 - 14 oct. 2015 à 18:51
Bonjour.
Aujourd'hui je me suis remis à la programmation (je précise, au C++) et il y a beaucoup de chose qui m'échappe. Tout d'abord j'aimerais que chacun propose des idées de programme POO (programmation orientée objet) pour que je m'entraine car c'est vraiment dur... (je suis les cours de OpenClassroom : https://openclassrooms.com/courses/programmez-avec-le-langage-c/les-classes-partie-1-2)
Après même avec des bonnes explications faites par le site, je n'arrive toujours pas à comprendre vraiment comment coder tout ça pour que ça ressemble à quelque chose un peu près... après je connais les bases de la POO donc je comprend vraiment bien à quoi ça sert et tout...
Merci d'avance de votre compréhension et de votre réponse.
Cordialement. Nicolas Buchot

8 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
Modifié par cptpingu le 12/10/2015 à 19:50
Bonjour.

Tout d'abord, attention le C++ n'est pas un langage objet "pur", mais un langage multi-paradigme (tu peux faire de l'impératif, du fonctionnel, de la POO, de la méta-prog, etc...). Le C++ est souvent présenté comme un langage POO alors que ce n'est pas vraiment sa "force", ni sa particularité. Si je devais parler du C++, je mettrais plutôt en avant les perfs, et le "RAII".

Si tu te sens à l'aise avec les notions de cours, mais que tu as besoin d'exercices, alors je te recommande chaudement: https://www.codingame.com, qui est gratuit et très bien fait. J'y suis inscrit, et tous les niveaux sont représentés. Tu y trouveras plein d'exercices ludiques sur différents thèmes, classés par difficulté.

Je te conseille de te plonger sur les niveaux de types "solo".


Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
0
F0rEign Messages postés 57 Date d'inscription vendredi 22 mars 2013 Statut Membre Dernière intervention 6 septembre 2016
Modifié par NicolasBuchot le 14/10/2015 à 17:24
Re-Bonjour xD

Le C++ je l'utilise surtout pour sa puissance. Car on peut pratiquement faire tout avec. Puisque le métier de programmeur sera mon futur métier, c'est pour ça que je me suis mis direct au C++ comme ça c'est fait. Mais je sais pas trop quoi faire donc je m'entraîne à faire des logiciel et je pense que ton site me sera très utile. Merci vraiment car je cherchais mais je trouvais pas ^^'. Je vais m'inscrire de suite ! :p
Bye !
PS : C'est quoi le "RAII" et le méta-prog ? Après les "perfs" je peux comprendre.
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
14 oct. 2015 à 17:45
Le "RAII", c'est "Resource Acquisition Is Initialization"(cf: https://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization). En gros, tout ce que tu encapsules à la garantie d'être détruit proprement quoi qu'il arrive au sortir d'un scope.
La méta-prog, c'est l'utilisation des template pour faire de la généricité, voir de la logique. C'est un langage qui écrit du code C++, via du C++ (notion très avancée, je te déconseille de t'y pencher avant d'avoir de très solides acquis).

Si le métier de programmeur t'attire, ne te dis pas: "Cool, je vais prendre tel langage, car c'est le plus fort". Ce n'est pas comme ça qu'il faut raisonner. Tu as plusieurs langages, et chacun va t'apporter quelque chose. On code rarement dans un seul et unique langage, et on reste rarement toute sa carrière sur le même (de nouveaux apparaissent).
Le meilleur conseil que je puisse te donner, c'est d'apprendre différents langages ayant des idiomes très différents:
- Un langage de script (du bash par exemple)
- Un langage interprété (python, ruby, ...)
- Un langage converti en bytecode (Java, C#, scala, ...)
- Un langage bas-niveau (C, C++, Rust, ...)
- Un langage spécialisé multi-threading (Go, erlang, ...)
- Un langage à saveur fonctionnelle (Camel, Haskell, ...)
- Un langage "web" (Php, J2EE, Asp, ...)
- Un langage assembleur (x86, 68, nasm, ...) <= Pas obligatoire mais très intéressant

C'est la vision globale de tous les aspects que peut prendre un langage qui te rendra bon.
0
F0rEign Messages postés 57 Date d'inscription vendredi 22 mars 2013 Statut Membre Dernière intervention 6 septembre 2016
Modifié par NicolasBuchot le 14/10/2015 à 17:59
Ah d'accord. Donc si je comprend bien je doit apprendre plusieurs langages selon les différentes fonctions qu'ils peuvent apporter ?
Parce-que si je prend autant de temps (Pas tout les jours) à programmer en C++ sans avoir de résultats satisfaisant même si je dois limite manipuler les bases c'est soit par ce que c'est dur ou juste car j'ai pas assez le temps. Parce que je comprend ton raisonnement mais le C++ est selon moi le meilleurs langage pour faire des logiciels, jeux...
Ils faut juste que j'apprenne autres choses en même temps ce qui ne va pas être très facile. Mais dans la vie faut savoir faire des trucs "Hardcore" ^^'
Je pense apprendre le RUBY/PYTHON, JAVA et surement le PHP car je devrais aussi être dans le secteur du web. Merci de ta réponse.
PS : Je suis sur https://www.codingame.com/ide/2316578de92e6db1c769f50b72a5b37ac7a4c45 mais je comprend pas grand chose à ce qu'il faut faire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
Modifié par cptpingu le 14/10/2015 à 19:24
Il faut bien différencier plusieurs choses:
- La culture générale et la "vision". Apprendre plein de paradigmes différents te rendra bon, et t'offrira des capacités d'adaptation au-dessus de la moyenne. Ça te donnera aussi des idées d'architecture de code (des agencements intelligents).
- Ton langage principal: C'est le langage que tu utiliseras le plus, selon ton domaine (dans le jeu vidéo: C++ et C#, voire Lua pour le scripting).
- Le langage de prototypage (facultatif): C'est le langage dans lequel tu coderas tes idées rapidement, avec de mauvaises perfs, mais un temps de dev très très rapide. Pour ne serait-ce que présenter ton concept ou vérifier que celui-ci est viable. Ça ne se fait pas dans tous les domaines.
- Le langage de scripting: Celui qui va te dépanner, t'aider à faire des choses autour de ton code. Par exemple, dans mon métier, je fais souvent du bash pour automatiser en quelques lignes des trucs "chiants" (comme déployer mon code C++ sur tous les serveurs, créer, ou modifier des dossiers, copier des data entre deux serveurs, etc...).

Pour codingame, suis le tutoriel de départ (OnBoarding) :p.


Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
0
F0rEign Messages postés 57 Date d'inscription vendredi 22 mars 2013 Statut Membre Dernière intervention 6 septembre 2016
Modifié par NicolasBuchot le 14/10/2015 à 18:33
Okay, j'ai un peu près des idées maintenant que tu m'éclaire ^^'.
Le problème c'est je sais pas du coup c'est quel langage à utiliser pour les logiciels de type "CMD" ou "Calculatrice" à partir de la console de windows à moins que ça ne soit pas spécifique à un type de langage. Après pour le tutoriel de CodinGame je comprend très bien l'anglais mais j'ai pas compris le but de l'exercice ni comment il faut faire.
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
Modifié par cptpingu le 14/10/2015 à 19:26
Une application de type "console" n'est pas liée à un langage. Tu peux faire de la console dans n'importe quel langage (pratiquement). Je te conseille l'installation d'un Linux dans un VM, si tu pars sur de la console (La console Linux est à des années lumières de la console Windows).

Codingame est disponible en français (change la langue :p). La lecture du tutoriel est généralement suffisante.


Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
0
F0rEign Messages postés 57 Date d'inscription vendredi 22 mars 2013 Statut Membre Dernière intervention 6 septembre 2016
14 oct. 2015 à 18:51
Ah d'accord bien ça tombe bien du coup... Je vais changer la langue puis m'entrainer sur le site, puis continuer sur le site OpenClassroom https://openclassrooms.com/courses/programmez-avec-le-langage-c/les-classes-partie-1-2 Autrement si j'apprends pas vite la POO je vais être mal barré pour la suite des "mini-codes" sur CodinGame ^^' Et surtout merci à toi pour ton Aide ! :p
0
Rejoignez-nous