Cours à choisir pour C, C++ et Linux

a marqué ce sujet comme résolu.

Salut à tous,

J’ai l’intention d’apprendre le C, suivi du C++, ainsi que l’OS Linux en parallèle. Le problème est que je ne sais pas quel formation suivre : les cours d’OpenClassrooms sont considérés comme obsolètes et enseignant de mauvaises pratiques PAR LEUR PROPRE COMMUNAUTE !!! J’aimerais donc savoir vers lesquels m’orienterez-vous. J’ai vu que ce site dispose de cours sur C et C++, qui m’ont l’air ma foi plutôt bien remplis. Toutefois, il ne semble pas faire l’état d’une présence d’un cours sur Linux.

Bref, je remercie toute personne se prêtant volontaire pour m’aiguiller là-dessus. Cdt.

Question. Pourquoi le C, puis le C++? Aussi dans quel but (savoir si tel ou telle ressource est pas mal) et en Francais forcément ?

Le cours cpp du site est quand meme bien incomplet.

Pour le cpp, C++ Primer est bon, meme si je pense qu’il commence à dater. Beaucoup de blogs existent, comme le blog d’Herb Sutter (Guru of the Week)

Salut,

Les cours C et C++ de Zeste de Savoir sont bien, au moins pour débuter.

Es-tu débutant en programmation ? Si oui, je te conseille de choisir C ou C++ ; il y a assez peu d’intérêt a priori à apprendre les deux quand on débute.

Pourquoi tu veux apprendre le C ou le C++ ? Savoir ça peut aider à faire un choix entre les deux.

Le tutoriel C est très bien et très complet.

Le tutoriel C++ est très bien mais pas complet. Il faut le compléter encore avec des cours suplémentaires.

Le tutoriel Linux n’existe pas encore.

+0 -0

Pour le cours C++, la partie POO est déjà écrite et dispo en beta. Ca n’est pas trop un probleme de commencer le cours et au pire aller sur la beta quand tu arrives a la partie POO. Voire elle sera validee d’ici la.

+0 -0

Salut,

Si tu veux en apprendre plus sur Linux tu peux t’intéresser à certaines distributions.
Si tu es débutant avec Linux, je te conseille de te diriger vers Ubuntu qui te permettera de te familiariser avec un système très accessible aux néophytes. En suite tu peux te diriger vers Manjaro (basé sur Arch Linux mais reste plus simple) ou encore Debian.
Pour continuer, tu peux t’intéresser à Arch Linux qui te demande de presque tout faire à la main avec de très bon wiki. Pour aller encore plus loin tu peux aller voir Gentoo ou bien encore plus loin avec Linux From Scratch (ce dernier n’est pas un distribution Linux mais un livre pour apprendre à faire son propre système Linux).

+0 -0

Salut,
Je vais dire plus ou moins la même chose que mes VDDs, les cours C et C++ de zds sont de très bonnes ressources francophone actuellement. Et tu n’as pas besoin d’apprendre C avant de te lancer dans le C++. D’ailleurs pourquoi considères-tu ces langages en particulier plutôt que d’autres (plus modernes ou plus accessibles aux débutants) ?
Je sais pas si on peut parler encore de communauté d'OpenClassroom, il l’a tellement délaissé…

Ce qui m’intrigue en revanche, c’est qu’est-ce que tu attends d’un cours sur Linux ? Quel aspect tu cherches à comprendre ?

+1 -0

Merci de vos réponses super rapides !

Question. Pourquoi le C, puis le C++? Aussi dans quel but (savoir si tel ou telle ressource est pas mal) et en Francais forcément ?

Le cours cpp du site est quand meme bien incomplet.

Pour le cpp, C++ Primer est bon, meme si je pense qu’il commence à dater. Beaucoup de blogs existent, comme le blog d’Herb Sutter (Guru of the Week)

AmarOk

J’aimerais apprendre ces deux langages dans le but d’apprendre à développer des programmes, jeux et applications, sur PC en premier lieu, mais j’aimerais aussi apprendre à en créer sur d’autres plateformes (téléphone, ou sur console si des failles existent). Le fonctionnement du système m’intéresse également, et les failles, la sécurité, le reverse-engineering, etc. aussi. Pas besoin forcément d’un cours en français, je me débrouille plutôt bien en anglais.

Salut,

Les cours C et C++ de Zeste de Savoir sont bien, au moins pour débuter.

Es-tu débutant en programmation ? Si oui, je te conseille de choisir C ou C++ ; il y a assez peu d’intérêt a priori à apprendre les deux quand on débute.

Pourquoi tu veux apprendre le C ou le C++ ? Savoir ça peut aider à faire un choix entre les deux.

Aabu

Non, je ne suis pas débutant en programmation, je suis plutôt à l’aise en Python. Voir la réponse plus haut.

Le tutoriel C est très bien et très complet.

Le tutoriel C++ est très bien mais pas complet. Il faut le compléter encore avec des cours suplémentaires.

Le tutoriel Linux n’existe pas encore.

ache

D’autres ressources pour Linux ?

Pour le cours C++, la partie POO est déjà écrite et dispo en beta. Ca n’est pas trop un probleme de commencer le cours et au pire aller sur la beta quand tu arrives a la partie POO. Voire elle sera validee d’ici la.

gbdivers

Je prends en note.

Salut,

Si tu veux en apprendre plus sur Linux tu peux t’intéresser à certaines distributions.
Si tu es débutant avec Linux, je te conseille de te diriger vers Ubuntu qui te permettera de te familiariser avec un système très accessible aux néophytes. En suite tu peux te diriger vers Manjaro (basé sur Arch Linux mais reste plus simple) ou encore Debian.
Pour continuer, tu peux t’intéresser à Arch Linux qui te demande de presque tout faire à la main avec de très bon wiki. Pour aller encore plus loin tu peux aller voir Gentoo ou bien encore plus loin avec Linux From Scratch (ce dernier n’est pas un distribution Linux mais un livre pour apprendre à faire son propre système Linux).

pyoroalb

Merci :)

Salut,
Je vais dire plus ou moins la même chose que mes VDDs, les cours C et C++ de zds sont de très bonnes ressources francophone actuellement. Et tu n’as pas besoin d’apprendre C avant de te lancer dans le C++. D’ailleurs pourquoi considères-tu ces langages en particulier plutôt que d’autres (plus modernes ou plus accessibles aux débutants) ?
Je sais pas si on peut parler encore de communauté d'OpenClassroom, il l’a tellement délaissé…

Ce qui m’intrigue en revanche, c’est qu’est-ce que tu attends d’un cours sur Linux ? Quel aspect tu cherches à comprendre ?

romantik

Je les considère en premiers en raison du fait justement de leur accessibilité moindre aux débutants, j’aimerais me plonger davantage dans les entrailles du système (n’étant moi même pas débutant en programmation). Quant à Linux, j’aimerais un cours équivalent à celui "Reprenez le contrôle à l’aide de Linux !" d’OpenClassrooms, mais plus à jour ;)

Merci à tous.

+1 -0

Je ne suis pas convaincu par l’utilité d’un cours sur linux. Ou alors c’est plutôt un cours sur bash et la ligne de commande. Mais le mieux, ça reste de l’utiliser. Ou bien de chercher à déployer quelque chose dessus et d’apprendre au fur et à mesure comment ça se passe.

D’autant que, chaque distribution Linux a des spécificités.

Après, si tu veux connaître le système Linux, il y a les options que proposait pyoroalb, mais ce n’est pas forcément nécessaire selon ce que tu veux développer.

C’est quel genre d’applications que tu souhaites développer ? Parce que ce n’est pas forcément C / C++ le plus indiqué. Si je ne m’abuse, C est quasiment dédié à la programmation système, maintenant. C++ tape un peu plus large, mais c’est plutôt sur des applications qui nécessitent de la haute performance. Il y a d’autres très bonnes options aussi, comme Java/Kotlin ou C#. Ou encore, Go.

+2 -0

Je ne suis pas convaincu par l’utilité d’un cours sur linux. Ou alors c’est plutôt un cours sur bash et la ligne de commande. Mais le mieux, ça reste de l’utiliser. Ou bien de chercher à déployer quelque chose dessus et d’apprendre au fur et à mesure comment ça se passe.

D’autant que, chaque distribution Linux a des spécificités.

Après, si tu veux connaître le système Linux, il y a les options que proposait pyoroalb, mais ce n’est pas forcément nécessaire selon ce que tu veux développer.

C’est quel genre d’applications que tu souhaites développer ? Parce que ce n’est pas forcément C / C++ le plus indiqué. Si je ne m’abuse, C est quasiment dédié à la programmation système, maintenant. C++ tape un peu plus large, mais c’est plutôt sur des applications qui nécessitent de la haute performance. Il y a d’autres très bonnes options aussi, comme Java/Kotlin ou C#. Ou encore, Go.

Moté

La question n’est pas là : les langages style Java, Go, C# ne m’intéressent pas. J’aimerais me focaliser sur les deux langages pré-cités.

Quant à Linux, lorsque je demandais des cours à son sujet, c’est bien entendu à propos de son bash, ainsi que de son fonctionnement interne (le kernel, etc.), cela va de soi ;)

Mais pourquoi ne t’intéressent-ils pas ? Quel est ton objectif réel derrière tout ça ?

Sans compter qu’une techno n’est pas forcément appliquable à tout. Tu parlais de mobile, par exemple, on ne développe pas d’appli mobile en C/C++ actuellement.

+0 -0

Mais pourquoi ne t’intéressent-ils pas ? Quel est ton objectif réel derrière tout ça ?

Sans compter qu’une techno n’est pas forcément appliquable à tout. Tu parlais de mobile, par exemple, on ne développe pas d’appli mobile en C/C++ actuellement.

Moté

Enormément de jeux mobiles sont développés en C++ (UE4 ou Cocos2d) Et pour de simples applications, QT permet de faire du cross platform mobile.

Certes, développer une application mobile en C++ n’est peut être pas le chemin le plus court.. mais j’ai du mal à comprendre cette insistance sur plusieurs messages à l’en dissuader.. surtout qu’il précise ne pas être débutant et connaître Python..

Mais pourquoi ne t’intéressent-ils pas ? Quel est ton objectif réel derrière tout ça ?

Sans compter qu’une techno n’est pas forcément appliquable à tout. Tu parlais de mobile, par exemple, on ne développe pas d’appli mobile en C/C++ actuellement.

Moté

Ils ne m’intéressent pas car je connais déjà un langage de haut niveau, avec lequel je me sens à l’aise : Python. Par ailleurs, si : il est possible de programmer des applications sur Android avec C++, et non pas uniquement en Java. De même pour iOS, où la programmation avec ce langage est possible, et pas forcément en Swift ou Objective-C - à ma connaissance. Si besoin est, je pourrais me tourner vers un de ces deux langages si besoin est.

Mais pourquoi ne t’intéressent-ils pas ? Quel est ton objectif réel derrière tout ça ?

Sans compter qu’une techno n’est pas forcément appliquable à tout. Tu parlais de mobile, par exemple, on ne développe pas d’appli mobile en C/C++ actuellement.

Moté

Enormément de jeux mobiles sont développés en C++ (UE4 ou Cocos2d) Et pour de simples applications, QT permet de faire du cross platform mobile.

Certes, développer une application mobile en C++ n’est peut être pas le chemin le plus court.. mais j’ai du mal à comprendre cette insistance sur plusieurs messages à l’en dissuader.. surtout qu’il précise ne pas être débutant et connaître Python..

Tonio

Mais oui >_< j’avais oublié de préciser que je voulais aussi utiliser l’Unreal Engine pour développer des jeux, sur mobile comme sur PC, avec bien entendu, le C++.

Merci.

Quant à Linux, lorsque je demandais des cours à son sujet, c’est bien entendu à propos de son bash, ainsi que de son fonctionnement interne (le kernel, etc.), cela va de soi ;)

Bash n’est qu’un shell parmi d’autres (il est cela dit omniprésent). Ce message a des liens utiles. Tu as aussi bien sûr la norme POSIX.

Pour le fonctionnement du kernel, tu as cet effort qui pointe vers beaucoup de choses.

mais j’ai du mal à comprendre cette insistance sur plusieurs messages à l’en dissuader..

C et C++ sont tout de même pas mal niche. Les apprendre par curiosité ou si on est pile dans les niches concernées, pourquoi pas. S’assurer qu’OP les apprend en sachant où il va plutôt que parce qu’il a vaguement lu quelque part que ce sont les meilleurs langages™ ou autre sottise éculée me parait raisonnable sur un site qui vise un public débutant (d’ailleurs, le coup du débutant qui pense ne pas en être un ou maîtriser un langage est un classique). Ici OP a l’air de savoir où il va, très bien. Ça reste une ligne de questionnement légitime.

+2 -0

C’est comme dit adri1. Mon but n’est pas de l’en dissuader, mais d’être sûr que ça colle à son besoin.

Par exemple, je sais bien qu’on peut utiliser UE4 pour le dev mobile, cependant ce n’est pas ce qui me vient à l’esprit quand on me parle "de développer des applications mobiles". Je me doute aussi qu’il y a moyen de développer des applications mobiles classiques en C++. Je pense que ce n’est pas à recommander, et qu’il vaut mieux utiliser les technos adaptées.

Mais bien sûr, si l’OP souhaite juste apprendre vraiment C++ parce qu’il souhaite faire du bas niveau, cela s’entend tout à fait :) Et qu’après il veuille faire une appli mobile par goût avec, c’est pareil. Mais cela n’a pas été dit clairement dans ses messages, alors j’essaye de m’en assurer.

Je pense qu’il vaut mieux choisir entre C et C++ et te concentrer sur l’un des deux pour le moment. Par ailleurs, si jamais, Java est pas aussi haut niveau que Python, et tu as moyen de descendre assez profondément dans les entrailles de la JVM. Enfin, c’est pas forcément le cœur d’usage non plus ^^

Edit : pour Linux, les conseils de pyoroalb sont les meilleurs à appliquer je pense :)

+0 -0

J’aimerais apprendre ces deux langages dans le but d’apprendre à développer des programmes, jeux et applications, sur PC en premier lieu, mais j’aimerais aussi apprendre à en créer sur d’autres plateformes (téléphone, ou sur console si des failles existent).

le.executeur

Les développeurs de jeux consoles ne sont pas tous des hackers ou des employés sony/microsoft/nintendo :P Pour cibler une console, pas besoin de faille, ça intéresse aussi la marque que d’autres puisse développer pour eux, il faut avoir le kit de développement. Après c’est sûr que c’est destiné à des studios professionnels et donc ça peut être un peu cher. Gratuitement, y’a peut-être moyen de trouver des kits visant de vieilles consoles populaires (gameboy peut-être ?).
Disgression faite, je comprenais pas pourquoi tu changeais de langage dans ce cas. Tu peux aussi developper des programmes, application et jeux en Python ! Mais donc ton objectif, c’est de pouvoir prendre en main Unreal Engine, ça me parait plus clair dit comme ça.

Le fonctionnement du système m’intéresse également, et les failles, la sécurité, le reverse-engineering, etc. aussi.

le.executeur

On commence à voir le point qui me bother un peu, tu me sembles t’éparpiller. La cybersécurité, ou le hacking, et le développement n’ont qu’une partie de l’apprentissage en commun. Tu peux arriver à avoir des compétences solides dans les deux à la fois, mais il te faudra du temps et il faudra que tu suives plusieurs voies, ce n’est pas la même

j’aimerais me plonger davantage dans les entrailles du système (n’étant moi même pas débutant en programmation). Quant à Linux, j’aimerais un cours équivalent à celui "Reprenez le contrôle à l’aide de Linux !" d’OpenClassrooms, mais plus à jour ;)

le.executeur

Quant à Linux, lorsque je demandais des cours à son sujet, c’est bien entendu à propos de son bash, ainsi que de son fonctionnement interne (le kernel, etc.), cela va de soi ;)

le.executeur

Je ne trouve pas que ça va de soi, on peut s’y intéresser d’un point de vue simple utilisateur, on peut s’y intéresser du point de vue developpeur d’OS, on peut s’y intéresser du point de vue concepteur de système …
Tu m’as l’air de t’y intéresser du point de vue sysadmin, et ça t’amène encore dans un troisième axe de l’informatique.
Tu vas avoir énormément de connaissance à absorber et assimiler, je te conseille de te fixer des objectifs précis, un à la fois, sinon tu risques de décrocher ou ne pas bien apprendre

PS : Le wiki d’ArchLinux dont parlait pyoroalb contient vraiment beaucoup d’information très intéressantes même si on est pas sous archlinux, tu peux y jeter un coup d’oeil. Et à sa liste, de manière un peu similaire à LFS, j’ajoute Buildroot et Yocto project, qui te permettent aussi de créer un linux de zéro entièrement personnalisé, sauf que ce sont des outils qui t’aident dans ce but là, utilisés surtout pour faire des OS pour systèmes embarqués

+0 -0

Je te conseil d’apprendre le C en premier puis le C++. En gardant en tête que ce sont deux langages très différent et que ce que tu apprends en C te déserviras en C++.

Quand tu fais du C++ tu devras oublié ce que tu as apris en C. Si tu es capables de faire ça alors oui, commence par le C puis le C++. Sinon, fait le contraire.

Non, désolé, je n’ai pas de bon tutoriel pour apprendre Linux. Cependant, ce livre LINUX Préparation à la certification LPIC-1 est un très bon livre que j’ai apprécié lire et relire.
Plus que te faire découvrir Linux, c’est une approche de la culture Linux. Je recommande chaudement. Je l’ai découvert dans la bibliothèque de la BU de mon université (quand j’étais étudiant).

+1 -0

J’aimerais apprendre ces deux langages dans le but d’apprendre à développer des programmes, jeux et applications, sur PC en premier lieu, mais j’aimerais aussi apprendre à en créer sur d’autres plateformes (téléphone, ou sur console si des failles existent).

le.executeur

Les développeurs de jeux consoles ne sont pas tous des hackers ou des employés sony/microsoft/nintendo :P Pour cibler une console, pas besoin de faille, ça intéresse aussi la marque que d’autres puisse développer pour eux, il faut avoir le kit de développement. Après c’est sûr que c’est destiné à des studios professionnels et donc ça peut être un peu cher. Gratuitement, y’a peut-être moyen de trouver des kits visant de vieilles consoles populaires (gameboy peut-être ?).
Disgression faite, je comprenais pas pourquoi tu changeais de langage dans ce cas. Tu peux aussi developper des programmes, application et jeux en Python ! Mais donc ton objectif, c’est de pouvoir prendre en main Unreal Engine, ça me parait plus clair dit comme ça.

Le fonctionnement du système m’intéresse également, et les failles, la sécurité, le reverse-engineering, etc. aussi.

le.executeur

On commence à voir le point qui me bother un peu, tu me sembles t’éparpiller. La cybersécurité, ou le hacking, et le développement n’ont qu’une partie de l’apprentissage en commun. Tu peux arriver à avoir des compétences solides dans les deux à la fois, mais il te faudra du temps et il faudra que tu suives plusieurs voies, ce n’est pas la même

j’aimerais me plonger davantage dans les entrailles du système (n’étant moi même pas débutant en programmation). Quant à Linux, j’aimerais un cours équivalent à celui "Reprenez le contrôle à l’aide de Linux !" d’OpenClassrooms, mais plus à jour ;)

le.executeur

Quant à Linux, lorsque je demandais des cours à son sujet, c’est bien entendu à propos de son bash, ainsi que de son fonctionnement interne (le kernel, etc.), cela va de soi ;)

le.executeur

Je ne trouve pas que ça va de soi, on peut s’y intéresser d’un point de vue simple utilisateur, on peut s’y intéresser du point de vue developpeur d’OS, on peut s’y intéresser du point de vue concepteur de système …
Tu m’as l’air de t’y intéresser du point de vue sysadmin, et ça t’amène encore dans un troisième axe de l’informatique.
Tu vas avoir énormément de connaissance à absorber et assimiler, je te conseille de te fixer des objectifs précis, un à la fois, sinon tu risques de décrocher ou ne pas bien apprendre

PS : Le wiki d’ArchLinux dont parlait pyoroalb contient vraiment beaucoup d’information très intéressantes même si on est pas sous archlinux, tu peux y jeter un coup d’oeil. Et à sa liste, de manière un peu similaire à LFS, j’ajoute Buildroot et Yocto project, qui te permettent aussi de créer un linux de zéro entièrement personnalisé, sauf que ce sont des outils qui t’aident dans ce but là, utilisés surtout pour faire des OS pour systèmes embarqués

romantik

Quand je disais que je voulais connaître les failles console, c’est pour développer des homebrews (le nom des programmes que l’on lance grâce à des exploits) sur ces dernières :p Quant au développement de jeux vidéos, oui, j’aimerais faire avec C++/UE (avec Python, il semblerait que c’est lent, très lent) Quant à la sécurité, oui je le sais bien, il va falloir que j’apprenne plus de choses qui ont peu en rapport avec le développement… Pour Linux, j’aimerais apprendre la partie sys. admin pour que cela rejoigne la partie sécurité que j’aimerais approfondir, ainsi que pour le déploiement de sites internet que j’aurai développé (je suis OK en HTML/CSS). Toutefois, j’aimerais des ressources plus accessibles aux débutants en la matière (les liens que j’ai eus semblent être des docs) et faire une nouvelle distro ne m’intéresse pas vraiment.

Je te conseil d’apprendre le C en premier puis le C++. En gardant en tête que ce sont deux langages très différent et que ce que tu apprends en C te déserviras en C++.

Quand tu fais du C++ tu devras oublié ce que tu as apris en C. Si tu es capables de faire ça alors oui, commence par le C puis le C++. Sinon, fait le contraire.

Non, désolé, je n’ai pas de bon tutoriel pour apprendre Linux. Cependant, ce livre LINUX Préparation à la certification LPIC-1 est un très bon livre que j’ai apprécié lire et relire.
Plus que te faire découvrir Linux, c’est une approche de la culture Linux. Je recommande chaudement. Je l’ai découvert dans la bibliothèque de la BU de mon université (quand j’étais étudiant).

ache

Je prends en note. Toutefois, étant donné que l’apprentissage de l’OS en lui-même ne m’intéresse pas vraiment (seul le bash, ainsi que la partie déploiement et sécurité - deux choses qui n’ont rien à voir :p) je pense que j’apprendrais sur le tas la partie user de l’OS.

Le bash, une fois que tu as les connaissances de base (que tu peux voir dans le tuto d’OC, d’ailleurs), le reste c’est un peu sur le tas.

Quand on te parle ed Linux from scratch et autres, c’est pas pour que tu apprennes à créeer une distribution, mais pour que tu découvres la pile technique d’un système Linux. Une installation archlinux, aussi, permet de découvrir plein de pages sur la doc utiles pour un admin sys.

+2 -0

Ils ne m’intéressent pas car je connais déjà un langage de haut niveau, avec lequel je me sens à l’aise : Python.

Les langages sont tous différents et ont des buts différent avec certains avantages et inconvénient. Je te conseille de ne pas resté "enfermé" dans les langages systèmes mais de toujours avoir un pied dans d’autres technologies qui pourraient t’être utile un jour. De plus toujours avoir un œil sur d’autres technologies radicalement différents te permet de confronté les philosophies différentes et de choisir celle que tu préfère.

Si tu veux développé des applications mobile pour Android en C, C++, regarde du coté du NDK Android.

Cependant j’ai l’impression que tu reste très accroché au langage.
Je ne pense pas que le langage soit important. Pour moi ce n’est qu’un outils (parmi tant d’autre) que j’utilise pour arrivé à mon but. C’est pourquoi je choisis les technologies que j’utilise en fonction du projet que je vais réaliser.

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte