Bonjour a vous,
Je cherche un cours/tutoriel/ressource de C/C++ utilisable a donner a un enfant de 12 ans anglophone. Tous les documents que je connais adapte a un enfant de 12 ans sont en francais, pas en anglais. Je compte faire une traduction des exercices de NGCK en anglais, mais ca ne fournit pas de base, juste des exercices.
Avez vous des pointeurs pour moi ?
Merci beaucoup.
A l'époque le siteduzero avait une version anglophone mais elle n'a pas duré longtemps, peut-être que si tu leur demandes ils te donneront les archives.
C++ c'est plutôt destiné à plus agé, pour les enfants il y avais le KPL (Kids Programming Language), et maintenant c'est devenu le http://phrogram.com/ , je ne sais pas ce que ca vaux mais j'aimerais bien savoir, quelqu'un connais ?
Hum sur un forum ou je me tiens il i a un endroit pour apprendre le C/C++ en anglais... je te fais un copier/coller du topic.
What is C++?
C++ (pronounced "See plus plus") is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level and low-level language features. Read more...
What is C++ used for?
For big software projects that require high performances. Most major applications and games are made in C++.
Examples: Photoshop, Firefox, Winamp, Counter Strike...
Short list of C++ compilers:
For Windows:
Microsoft Visual C++ Express
Borland C++ 5.5
[size=x-small]CodeBlocks
DevCPP[/size]
For Linux:
G++(contained in GCC which comes preinstalled in most distros)
Intel C++ (free for noncommercial use only)
For Mac OS X:
Apple C++
Xcode
GCC
Learn C++ Now
C++ text tutorials
http://www.cplusplus.com/doc/tutorial/
http://www.glenmccl.com/tutor.htm
http://www.cs.wustl.edu/~schmidt/C++/
http://devcentral.iftech.h.com/articles/C++/default.php
http://cprogramming.com/
C++ Books
Teach Yourself C++ In 21 Days
http://newdata.box.sk/bx/c/
http://omploader.org/vM2pxZg (download)
Thinking in C++ vol1/vol2 (Get these only if you have some previous programming experience)
http://omploader.org/vM2pxYg
http://omploader.org/vM2pxZQ
Microsoft Visual C++ Beginners Guide
http://msdn.microsoft.comm/en-us/beginner/cc305129.aspx
Various C++ books:
http://www.itlibitum.ru/library/BOOK/ENGLISH/THEMES/CPP/index.html
C++ Video Tutorials
http://www.youtube.com/antirtfm
http://www.youtube.com/user/reconnetworks
http://www.megaupload.com/?d=NFOEPSB3
http://www.megaupload.com/?d=F282CDHP
C++ templates and platforms tutorials
STL tutorial
http://www.sgi.com/tech/stl/
Microsoft Visual C++ .NET tutorial
http://www.functionx.com/vcnet/index.htm
Maintenant moi j'ai une question lol, Si on voit bien dans ce que j'ai copier coller, le gars parle de c++...
Mais pas de C ? o.o
Pourtant sur le site du zéro Mathéo disais qu'il faut apprendre le C avant le C++.
Non, ce sont deux langages totalement différents.
Même si, comme choix de langage, tu peux très bien écrire du C avec du C++, et que ton prog' C soit totalement compatible C++ sans problème, ces 2 langages répondent à des problématiques différentes, ou plutôt "le C++ est capable de répondre à plus de problématique que le C, avec son approche objet".
Il n'est pas nécessaire de connaître le C pour faire du C++, et vice-versa. De mon coté, je conseillerai même de plutôt ne pas connaître le C avant de faire du C++, cela peut permettre d'éviter de se mélanger entre les concepts objets et procéduraux.
Oh... oh.... oh....... je ... me sent.. tous.. con
Merci Bunyan
Même si, comme choix de langage, tu peux très bien écrire du C avec du C++, et que ton prog' C soit totalement compatible C++ sans problème, ces 2 langages répondent à des problématiques différentes, ou plutôt "le C++ est capable de répondre à plus de problématique que le C, avec son approche objet".
Il n'est pas nécessaire de connaître le C pour faire du C++, et vice-versa. De mon coté, je conseillerai même de plutôt ne pas connaître le C avant de faire du C++, cela peut permettre d'éviter de se mélanger entre les concepts objets et procéduraux.
Mais la je suis quand meme avancer en C... devrais-je laisser tomber le C et me mettre au c++ ?
Car moi mon but dans la programmation est de réussir a faire :
- Cheat engine, ou de simplement reussir a tricher dans un jeux en ligne et les gens dise que le meilleur language pour sa est c++
- Et de reussir a faire un jeux de plateforme 2D o.o
- Et faire un Chat ou seulement mes amis pourront venir (pour le fun)
Donc je me demandais si cela étais possible en C..
merci pour ces liens.
En fouillant un peu, j'ai aussi trouve:
http://www.learncpp.com/
Je lirais ces liens et donnerais un avis (si j'ai le temps)
@jesus_le_criss
"le C++ est capable de répondre à plus de problématique que le C, avec son approche objet"
On parle ici de problématiques d'organisation de développement pas de problème (au sens programme informatique) que le C++ peut résoudre alors que le C en est incapable.
En C comme en C++ (et c'est aussi valable pour plein d'autre langage) la seule limite c'est celle de la machine et de celle de tes capacités.
Pour info j'ai fait les deux derniers types de programmes que tu donnes en exemple en parallèle de mes études ("pour le fun"). L'un en C l'autre en C++. (je te dis pas lequel est fait en quoi vu que ça aurai très bien pu être l'inverse)
"Pourtant sur le site du zéro Mathéo disais qu'il faut apprendre le C avant le C++. "
Matheo ne sait pas de quoi il parle.
"Non, ce sont deux langages totalement différents. "
Bunyan non plus...
En bref, il n'y a pas de bonne réponse. Pour quelqu'un qui ne sait pas du tout programmer, et à plus forte raison encore un enfant de 12 ans, le plus faible nombre de concept du C en fera un langage plus simple à comprendre (à condition de faire du C99 et d'en faire correctement, le langage est presque propre). Les gens qui professent que le C++ est un langage différent sont ceux qui croient que programmer en C est égale à réimplémenter la roue à chaque programme et que la POO est la solution à tout les problèmes. Malheureusement ce n'est pas le cas et le C++, avec tout ses défauts n'est pas un bon langage "moderne". L'utiliser comme tel n'est pas particulièrement intéressant (autant faire du Java ou du C#), et il est donc meilleur dans son rôle "d'addon" du C. Vu comme ça (des fonctionnalité en plus que l'on est libre d'utiliser ou de ne pas utiliser), le C++ est vraiment une évolution du C et pas un nouveau langage.
Bref, tu choisi la manière que tu veux pour le voir. À titre personnel je recommande d'apprendre en premier le C (s'il faut absolument choisir entre ces deux langages), ensuite je recommendarais d'apprendre le Caml ou le C# ou le Java mais a priori je recommanderai de ce passer complètement du C++ (surtout avec les tuto du SDZ qui sont très mauvais sur ce sujet...
Pour clarifier le contexte de mon premier message. Le gamin a 12 ans, mais je le vois tous les jours. J'ai commence a lui expliquer les concepts de base et a faire des tests ludique avec NGCK, mais je m'apercois qu'avoir un 'document de reference' ne serait pas une mauvaise chose.
Quand j'ai parle de C++ au debut, c'est pour s'affranchir de certains archaisme du C et avoir des notations un peu plus simple qu'en C pour certaines operations de base.
// pour les commentaires c'est bien
la declaration en milieu de bloc c'est quand meme plus simple.
Tu fera beaucoup moins d'erreur avec cout et cin qu'avec printf et scanf.
(beaucoup de gens ne sont pas d'accord avec ces points.)
Mais je ne compte pas lui balancer un enorme bouquin de C++ dans la gueule. juste des chapitres bien choisi au moment opportun.
pour les deux premiers exemples, tu peux aussi passer au C99 ![]()
pour le dernier, je trouve que (print|scan)f est plus clair que c(in|out) mais c'est sans doute une question d'habitude.
Sinon tu penses qu'un enfant de 12 ans va aller s'ennuyer avec un 'document de référence' ?
Ca dépend des gens et c'est toi qui le connait mais (nostalgie:ON) j'ai commencé avec NGCK à 17 ans parce que c'était ludique, il m'a fallu quelques années de pratique en plus pour sentir la nécessité d'un doc de référence.
A moins que j'ai compris le terme 'doc de référence' de travers. Si tu parles d'un genre de Cheat Sheet (court, concis et tjs a portée de main) ça me semble pas mal.
Je reponds au troll C Vs C++ dans un post separe.
a quelques exceptions mineures que la plupart des developpeurs ne rencontreront jamais, le C est un sous ensemble du C++.
Le C++ etant un super ensemble du C, c'est juste mieux. Ca a une plus grande expressivite, mais c'est aussi plus complique. Faire du C++ avec plein de concepts qui sont pas dans le C juste pour dire "regarder, je fais du C++", c'est cretin.
Beaucoup de gens disent que le C++ ajoute de l'objet au C. et que donc c'est mieux parceque l'objet c'est le bien (TM). (Comme disait un forum assez trollifere : "On 20eme siecle, on pensait qu'il fallait utiliser des objets pour faire de la programmation reutilisable. Heureusement, on en est plus la.") Ces gens la oublient que le C++ ajoute 3 concept au C:
-Les templates
-Les exceptions
-Les objets
Notez bien que j'ai les les objets en dernier pour deux raisons.
1/ On peut faire de la programmation oriente objet en C. Il faut manipuler des pointeurs de fonction et la composition de structure, ce qui est un peu fatiguant. Mais c'est parfaitement faisable.
2/ Personnellement, l'objet, c'est ce que j'utilise le moins en C++. Enfin, j'ai des classes, c'est a dire des donnees et des fonctions. Mais j'ai rarement plus d'un niveau d'heritage. J'utilise beaucoup plus les templates qui sont difficilement faisable en C (C'est possible avec les macros, mais bonjour la galere a debugger).
par document de reference, je veux dire un document qu'il peut regarder quand il ne sait plus comment quelquechose fonctionne et qu'il peut lire si je ne suis pas la.
+1 pour guyver2. Deux de te trois améliorations du C++ se trouvent déjà dans le C99 (qui est vraiment d'après moi le C qu'il faut apprendre).
Pour le reste, je suis à peu près d'accord avec toi, godrik, sauf que je trouve les template tellement infâme en C++ (comparé aux types génériques du C# ou même à ceux du Java) que je ne les compterais pas comme une addition. Mais ça c'est juste un troll qui passe.
Je trouve donc qu'il y a trop peu d'intérêt au C++ pour l'apprendre, par rapport à des langages modernes. Malgré la facilité qu'il y a à faire une transition depuis le C qui peut être plus progressive que vers un autre langage (mais cette simplicité se paye).
au passage, http://www.cppreference.com/wiki/start est pas mal comme référence. Au moins pour la STL. Je ne sais pas ce que ça vaut pour la bibliothèque du C, mais l'information est là aussi.
Haaa la fameuse et eternelle derive C vs C++ et C++ vs C#/Java =)
Perso, et peut etre car je suis un peu oldschool, je trouve important de comprendre un peu comment ca marche "en interne"; les personnes qui commencent avec des languages "de haut niveau" style C# me semblent un peu eloignees des concepts de gestion de memoire, ce que c'est qu'un pointeur, et disposent de tout "pre-mache". Je trouve ca un peu dommage, mais bien entendu ca depends de ce que ces personnes veulent programmer par la suite. Comprendre les rouages de la machine, de l'OS host, d'avoir des idees comment les "trucs de bases" sont fait, etc est toujours un avantage, quel que soit le language utilise a la fin.
Pour ceux qui veulent se diriger ves le JV, je recommande en general de commencer avec le C(99), et non pas par le C++/Java/C#/languages scriptes, j'estime (peut-etre a tort?) que les differents paradigmes sont plus facile a avaler une fois qu'on maitrise suffisement le C.
@dnoob: pourquoi le C++ ne serait-il pas un language moderne?
Meme sans parler du C++0x qui apporte nombre d'improvements importants, le C++ est encore par exemple largement utilise dans le dev des jeux videos et autres secteurs. Moderne ne veut pas forcement dire "facile de faire une UI" ou "supporte tel ou tel paradigme a la mode" a mon avis, mais plus si il corresponds encore aux besoin des developeurs. Chaque language et chaque paradigme a son utilitee, le fait qu'un paradigme ne soit dans un language ne le rends pas "vieux/outdated". Et pour ton exemple sur les templates, je trouve certes que c'est plus difficile a lire/ecrire en C++, mais c'est plus puissant que les types generiques du C#.
Pour en revenir a la question de depart, un lien sympa pour les debutants (meme jeunes) en c++:
http://www.parashift.com/c++-faq-lite/
@Dnob => j'étais sur que je me ferai alpaguer sur cette phrase ![]()
Je l'ai écrit sur un premier jet, malheureusement pas changé après :'( (autant sur la relecture que sur la fonction "édition" qui n'existe pas).
Mea culpa donc *retourne apprendre*
@jesus_le_criss : je dirais qu'il faut arrêter avec le C/C++. Quand on n'apprend, on apprend soit le C, soit le C++… mais, par pitié, pas un mélange des deux. Le monsieur a parfaitement raison de ne parler que de C++ à mon avis.
Après, on peut flanquer (presque) texto des bouts de C en C++, c'est valide et même assez courant en pratique. Je pense que c'est ça que signifie le « C/C++ ». Mais c'est une chose qu'on ne peut faire que quand on connaît déjà le C et le C++ (qui sont deux langages avec une syntaxe proche, mais avec des paradigmes sous-jacents différents qui font que les deux langages ont un intérêt en pratique).