Se connecter

Informatique

Programmation

Sujet : Le meilleur cours pour apprendre à coder en C++ ?
2
Refeuh
Niveau 22
23 novembre 2017 à 10:25:18

EDIT : quand je parle de quelque chose de payant je parle de ces conneries de udemy ou autres daubes pas des bouquins écrits par de vrais experts, ça c'est une valeur sûre.

Oui voila ! Les "formations" en ligne payantes et autres "MOOC" n'apportent pas de reelle plus value par rapport a tout ce qui existe de gratuit. On aurait pu commencer par la pour faire cette distinction, entre "payant" (pseudo-formation) et "payant" (livre expert) qui ne sont clairement pas la meme categorie en terme de valeur d'apprentissage.

Le lien proposé ci-dessus a l'air plutot solide ! A garder sous le coude ; meme si pour ma part j'en reviens toujours a conseiller les meme bouquins qui font office de references.

Lisper
Niveau 9
23 novembre 2017 à 11:23:14

Celui la est pas mal mais il demande une connaissance préalable de la programmation.

https://www.irif.fr/~yunes/cours/cpp/index.html

Pseudo supprimé
Niveau 9
25 novembre 2017 à 09:56:04

Le 21 novembre 2017 à 15:34:46 Gaetano-GX a écrit :
Si tu veux un bon cours de C++ moderne, suit ce lien:
http://guillaume.belz.free.fr/doku.php?id=start

oui l'auteur, ne va surtout pas sur openclassrooms, le cours de C++ là bas apprend des tas de mauvaises pratiques

Gaetano-GX
Niveau 15
25 novembre 2017 à 15:12:59

Le cours de C++ d'Openclassrooms apprend un C++ ancien, le C++03.

andeunv
Niveau 21
13 décembre 2017 à 11:26:38

Si t'as besoin d'aide en C++ et python, rejoins le serveur en signa, je pourrai t'aider

Pour ma part, j'aimerais conseiller le site learncpp mais je sais pas bien si c'est adapté aux débutants, et tu as quelques erreurs dans les quiz qu'ils proposent. Tu devrais faire un peu de python avant, ça clarifie beaucoup de notions.

andeunv
Niveau 21
13 décembre 2017 à 11:45:13

Pardon du up, je me suis perdu dans les pages précédentes :hap:

tsez93
Niveau 10
13 décembre 2017 à 20:16:34

Avant de commencer un cours sur la programmation (C++ ou autre), je te conseille de lire ces quelques pages, au moins jusqu'aux types de langage : https://zestedesavoir.com/tutoriels/531/les-bases-de-la-programmation/

C'est une introduction à l'informatique. Il y a des notions évidentes mais cela évite de partir sur la programmation sans bases et de rester bloquer sur des trucs faciles.

anaiogie
Niveau 10
14 décembre 2017 à 01:11:46

Le 19 novembre 2017 à 15:44:32 MonsieurBeauf a écrit :

Le 19 novembre 2017 à 15:02:13 QueDuHawaw a écrit :

Le 19 novembre 2017 à 09:26:49 MonsieurBeauf a écrit :
Il y a des centaines de tutos gratuits sur internet, payer qqchose c'est de l'arnaque. Vas sur openclassroom pour comprendre vite fait comment ça marche et go sur developpez. Mais sache un truc, le C++ c'est l'un des language les plus chaud patate pour faire simple. Quand tu sauras coder un jeu en 2D, tu ne sauras même pas 10% du language et de ses spécificités.

Quand tu dis "c'est dur" c'est par ce que le code est dur à comprendre et les algos durs à faire ou juste le temps d'apprentissage ? https://image.noelshack.com/fichiers/2016/36/1473263957-risitas33.png
10% c'est quoi les 90% restant ? https://image.noelshack.com/fichiers/2017/14/1491484186-risitasueur.png

c++ ne se résume pas qu'à faire des algos, si ton but est de faire tourner des algos pour apprendre à coder "généralement" fais du python c'est moins merdique et plus simple.

En c++ quand je te dis que t'as 50 000 trucs c'est pas pour déconner, rien que si tu veux faire un nombre t'as le choix,

int, float, double, long, long long, long double.. et t'as tous ces types version unsigned.. Ensuite tu passes à la POO où les template sont sacrément compliqués, templates imbriqués typename ou classe, tu passes aux commandes de préprocesseurs manipulés par ton makefile et t'arrives ensuite sur toutes les options de compilation. Ensuite tu fais du parallèle, là tu découvres le mot clé volatile et quand tu vois toutes les possibilités que tu as tu te rends compte que tes connaissances en c++ c'est un iceberg et que t'es très très loin du compte.Et j'ai même pas encore parlé des librairies de base comme STL, std::vector.. qui sont utilisés TOUT LE TEMPS.

Je vais te dire comment ça se passe exactement avec c++, même au bout de 15 ans de pratique, tu peux encore apprendre des choses.

pour la petite anecdote, j'ai un jour lu un code d'un mec qui faisait tourner son programme sur une carte embarquée, il était tellement limité par la zone mémoire disponible qu'il a redéfinit quasiment tous les types pour qu'il n'y ait pas un seul bit de gâché. Vous savez comment il a fait ? des tableaux de booléens. :rire: Son truc était illisible. :rire:

Bref : si tu veux te sentir programmeur, tu peux commencer par c++ mais maintenant tu sais à quoi tu peux t'attendre. Mais tu peux aussi commencer un langage plus facile à comprendre et à lire comme python.

C'est fou à quel point on a l'impression que tu ne sais pas du tout de quoi tu parles
Tu fais de l'obscurantisme sur des points qui n'ont absolument rien de fou

Videa
Niveau 10
14 décembre 2017 à 16:37:14

Le 23 novembre 2017 à 10:25:18 Refeuh a écrit :

EDIT : quand je parle de quelque chose de payant je parle de ces conneries de udemy ou autres daubes pas des bouquins écrits par de vrais experts, ça c'est une valeur sûre.

Oui voila ! Les "formations" en ligne payantes et autres "MOOC" n'apportent pas de reelle plus value par rapport a tout ce qui existe de gratuit. On aurait pu commencer par la pour faire cette distinction, entre "payant" (pseudo-formation) et "payant" (livre expert) qui ne sont clairement pas la meme categorie en terme de valeur d'apprentissage.

Le lien proposé ci-dessus a l'air plutot solide ! A garder sous le coude ; '''meme si pour ma part j'en reviens toujours a conseiller les meme bouquins qui font office de references.

'''

Quels bouquins conseilles-tu ?

anaiogie
Niveau 10
14 décembre 2017 à 20:19:54

Dans l'ordre :

Claude Delannoy

Scott Meyers

Alexandrescu

Videa
Niveau 10
15 décembre 2017 à 12:14:57

Merci. Uniquement en C++ ou également dans d'autres langages ? (Je pense à Java par exemple, j'ai vu des livres de Claude Delannoy.)

tbol
Niveau 20
15 décembre 2017 à 16:56:35

Pour Java la référence en Français c'est ça, 3000 pages, gratuit : http://jmdoudoux.developpez.com/cours/developpons/java/ . Aucun livre ne propose autant et aussi bien et il y a aussi la FAQ : https://java.developpez.com/faq/

anaiogie
Niveau 10
15 décembre 2017 à 20:24:58

Le 15 décembre 2017 à 18:07:47 MonsieurBeauf a écrit :

Le 14 décembre 2017 à 01:11:46 anaiogie a écrit :

Le 19 novembre 2017 à 15:44:32 MonsieurBeauf a écrit :

Le 19 novembre 2017 à 15:02:13 QueDuHawaw a écrit :

Le 19 novembre 2017 à 09:26:49 MonsieurBeauf a écrit :
Il y a des centaines de tutos gratuits sur internet, payer qqchose c'est de l'arnaque. Vas sur openclassroom pour comprendre vite fait comment ça marche et go sur developpez. Mais sache un truc, le C++ c'est l'un des language les plus chaud patate pour faire simple. Quand tu sauras coder un jeu en 2D, tu ne sauras même pas 10% du language et de ses spécificités.

Quand tu dis "c'est dur" c'est par ce que le code est dur à comprendre et les algos durs à faire ou juste le temps d'apprentissage ? https://image.noelshack.com/fichiers/2016/36/1473263957-risitas33.png
10% c'est quoi les 90% restant ? https://image.noelshack.com/fichiers/2017/14/1491484186-risitasueur.png

c++ ne se résume pas qu'à faire des algos, si ton but est de faire tourner des algos pour apprendre à coder "généralement" fais du python c'est moins merdique et plus simple.

En c++ quand je te dis que t'as 50 000 trucs c'est pas pour déconner, rien que si tu veux faire un nombre t'as le choix,

int, float, double, long, long long, long double.. et t'as tous ces types version unsigned.. Ensuite tu passes à la POO où les template sont sacrément compliqués, templates imbriqués typename ou classe, tu passes aux commandes de préprocesseurs manipulés par ton makefile et t'arrives ensuite sur toutes les options de compilation. Ensuite tu fais du parallèle, là tu découvres le mot clé volatile et quand tu vois toutes les possibilités que tu as tu te rends compte que tes connaissances en c++ c'est un iceberg et que t'es très très loin du compte.Et j'ai même pas encore parlé des librairies de base comme STL, std::vector.. qui sont utilisés TOUT LE TEMPS.

Je vais te dire comment ça se passe exactement avec c++, même au bout de 15 ans de pratique, tu peux encore apprendre des choses.

pour la petite anecdote, j'ai un jour lu un code d'un mec qui faisait tourner son programme sur une carte embarquée, il était tellement limité par la zone mémoire disponible qu'il a redéfinit quasiment tous les types pour qu'il n'y ait pas un seul bit de gâché. Vous savez comment il a fait ? des tableaux de booléens. :rire: Son truc était illisible. :rire:

Bref : si tu veux te sentir programmeur, tu peux commencer par c++ mais maintenant tu sais à quoi tu peux t'attendre. Mais tu peux aussi commencer un langage plus facile à comprendre et à lire comme python.

C'est fou à quel point on a l'impression que tu ne sais pas du tout de quoi tu parles
Tu fais de l'obscurantisme sur des points qui n'ont absolument rien de fou

Pourquoi faut toujours qu'il y ait un connard qui vienne se la ramener pour des trucs aussi futiles.. Peut être qu'ils n'ont rien de fou à qq qui sait déjà programmer

en realite je commente l'esprit de ton post, dans son entierete, pas sur un detail ou sur une futilitee

vas expliquer totalement un template et toutes ses spécificités à qqun qui n'a jamais programmer..

tu n'expliques pas dans ton post, tu essayes de faire passer les choses que tu connais pour quelque chose de tres complique, ensuite pour le reste des termes que tu as vu/entendu sur c++, tu les sors de maniere aleatoire pour essayer d'en faire une soupe indigeste et donner une image de quelque chose de
tres difficile et voire meme innaccessible, un eddy malou sur le sujet du c++ en quelque sorte,

juste pour reprendre quelques exemples pour que tu vois ou je veux en venir (excuse le sarcasme dans ce qui suit, ne le prend pas pour toi, c'est juste grossir le trait pour que tu vois ce que je veux dire) :

En c++ quand je te dis que t'as 50 000 trucs c'est pas pour déconner, rien que si tu veux faire un nombre t'as le choix,

int, float, double, long, long long, long double.. et t'as tous ces types version unsigned..

Ensuite tu passes à la POO où les template sont sacrément compliqués

oulala, pleins de type ont une version unsigned, y a deja trop de truc je me sens perdu
(detail: les flottants n'ont pas de version unsigned)

templates imbriqués typename ou classe

ca veut rien dire en soit, ca fait juste etalage de jargon
si tu parles de la possibilite de mettre typename ou class en parametre template, y a pas de difficulte, c'est toujours typename maintenant sauf dans un cas precis et bien defini ou on doit mettre class https://stackoverflow.com/a/11311432 et ca pour le coup c'est vraiment un detail tres futile pour donner une 1ere image introductive de c++ a un debutant

Et j'ai même pas encore parlé des librairies de base comme STL, std::vector.. qui sont utilisés TOUT LE TEMPS.

oulala, heureusement que tu n'as pas encore parle de std::vector, de std::swap et de std::for_each, ma tete allait exploser du a la complexite
serieusement, la stl est une librarie qui donne une interface intuitive pour aider le programme en cachant toute la complexite derriere, apres oui utiliser la stl et bien utiliser la stl sont deux choses differentes.
mais dans l'absolue c'est pas une difficulte insurmontable a une 1ere utilisation

MonsieurBeauf
Niveau 10
16 décembre 2017 à 10:10:27

Oui, mon message était assez humoristique.


template <bool isList>
auto func() -> typename std::conditional<isList, 
                                         std::list<int>,
                                         std::vector<int>>::type
{
    typename std::result_of<decltype(func<isList>)&()>::type result;

    // ...

    return result;
};

Dans le fond c'est pas compliqué, mais je te rappelle qu'il n'a jamais programmé. (ps : exemple trouvé sur internet et on s'éloigne trop du sujet, les modos vont le fermer ).
Les flottants n'ont pas d'unsigned mais utiliser des flottants nécessite de connaître ieee 754 qui nécessite de connaître le binaire.

On perd du temps à débattre là dessus, si je voulais parler "technique", j'aurai sorti d'autres termes plus complexes, le casting ..., mais il n'aurait pas compris.
Effectivement c'était pour faire peur, parce que ce langage est compliqué quoi qu'on en dise et commencer à coder avec c'est l'autoroute vers l'abandon. Pour ce qui est de l'utilisation de la STL j'ai parlé de la plus connue de la librairie parce que je parlais de la quantité de choses qu'il y avait en c++ pas de la difficulté à les utiliser, ça sert à rien une librairie si elle est plus compliquée à utiliser qu'une implémentation personnelle ( sauf boost graph :rire: ).

Enfin bref, personne n'est Bisqwit, tu as l'air de connaître c++ et c'est super, je pense qu'il faut plus aiguiller l'auteur ou lui donner de bons conseils plutôt que de débattre sur les exemples que j'ai donné même s'ils ne plaisent pas à tous.

Refeuh
Niveau 22
16 décembre 2017 à 21:17:47

Quels bouquins conseilles-tu ?

Un bouquin qui couvre toutes les bases du langage (e.g. Thinking in C++ 2nd Ed.), un bouquin d'archi logicielle / uml (Design Patterns : elements of reusable architecture), un bouquin d'orga de framework (Large Scale C++ Software Design, John Lakos), des bouquins avancés sur les fonctions moins connues du langage (tous les Scott Meyers : Effective C++, More Effective C++, etc.), et un bouquin de meta-programmation (Modern C++ Design, Andrei Alexandrescu) ; le tout completé par une copie recente du derniers standards/normes C++14 et C++17

Tout ceci est destiné a des gens qui veulent devenir des programmeurs confirmés en C++ sur le long terme.

2
Sujet : Le meilleur cours pour apprendre à coder en C++ ?
News culture
La Planète des Singes : Le Nouveau Royaume - la révolution simienne est en marche !
   Retour haut de page
Consulter la version web de cette page