J’ai quasi fini le cours de C de ce site. Le cours de ZdS étant adressé à des débutants, j’imagine qu’il n’aborde pas tout.
Des ouvrages vont-ils plus loin en français ? Gratuits ? Jusqu’où ?
Je pense à la création de bibliothèques et ce genre de manipulations générales non abordées dans le cours. D’ailleurs quelles pourraient être ces notions ? En tant que débutant-intermédiaire, j’ignore l’étendue de ce qui se peut être appris et que le cours ne mentionne pas
Après, dans le cas spécifique des bibliothèques, il est vrai que cela emmène plus loin qu’un bête cours de C, c’est plus un cours d’informatique en général qu’il faut. Mais justement, s’il existait un cours plus général qui à votre connaissance se trouverait dans une bonne continuité de ce qui est vu ici, ce serait avec plaisir.
Si vous deviez recommander un ouvrage d’informatique à un néophyte en informatique qui terminerait ce cours (en le maîtrisant bien), que lui conseilleriez vous ?
J’hésitais à me lancer tout de suite dans le C++ mais est-ce que je m’y prends dans le bon ordre ? Pensez-vous qu’il vaille mieux que j’apprenne d’abord certains concepts comme justement les bibliothèques, et l’utilisation de certaines d’entre elles (comme la SDL, souvent citée) ?
Je ne demande pas forcément une liste exhaustive de tout ce qu’il est possible de maîtriser et qui est habituellement fait avec le langage C mais si vous vous sentez d’en donner une je dirais pas non
Ma question est très générale est pourrait presque se compléter comme ça : quel est le chemin à parcourir quand on apprend l’informatique ? En somme, c’est quoi le programme de la fac ? Y a -t-il des articles qui expliquent ces choses ?
Il y a beaucoup de questions dans ma question, n’hésitez pas à ne répondre qu’à un petit bout mon post si le reste ne vous dit rien
À la fac, je ne sais pas, mais en autodidacte, c’est surtout essentiel d’apprendre en pratiquant. Maintenant que tu as les bases, tu peux te lancer dans des petits projets en faisant des recherches sur les notions qui te manquent, au fur et à mesure.
Par contre, il n’y a aucun lien à faire entre C et C++, ce sont deux langages différents. Tu peux très bien te lancer dans C++ si c’est ce que tu veux, mais si tu cherches plutôt à apprendre quelque chose qui se fait en C, alors autant rester sur ce langage.
Le plus simple serait que tu nous dises ce qu’il t’intéresse de faire
@Moté
Mes objectifs, avec la crainte de paraître trop ambitieux, c’est deux choses :
de pouvoir conduite un projet informatique complet avec programmation graphique, notion de réseau, intégrer de la sécurité, gérer des payements. Bref, il y a à peu près tout ce qu’il est possible de faire dans l’informatique ici je crois… Par exemple un jeu payant fait par moi-même exécutable sur n’importe quelle plateforme disponible sur mon propre site. Par exemple.
pouvoir conduire en totalité un projet d’informatique embarquée et connaître les grandes notions de sécurité des systèmes, des protocoles de communication, des OS temps réel, etc. Fabriquer un drone connecté en réalité virtuelle. Par exemple hein, je dis ça comme ça. Ce pourrait être n’importe quel système me permettant de mettre en pratique des notions mathématiques de commande optimale de systèmes.
Oui ça fait beaucoup… En bref je veux me consacrer à un apprentissage général et assez ambitieux. Je pratiqu déjà beaucoup quand j’apprends en effet, je n’apprends jamais une notion sans la tester des dizaines de fois de plein de faons possibles et sur plusieurs jours/semaines, et je me fixe souvent des minis projets. J’ai par exemple développé une petite calculatrice avec laquelle j’ai extrait 100.000 décimales de la racine carrée de 2 pour mettre les notions de C en pratique
Tu peux commencer par faire des petits projets qui ne regroupent pas toutes ces fonctionnalités avancées :
Un programme graphique basique
Un petit jeu
Des projets arduino (des millions de possibilité, voir le tuto arduino disponible ici)
Avant de te lancer dans des projets plus gros et plus complexes. Mais faut noter que tout cela n’est pas forcément possible pour une personne seule, nécessitant des compétences très différentes de manière avancée. Ou alors, un seul gros projet peut te prendre 10 ans ou plus.
@Moté oui il est clair qu’un projet de grande ne se planifie pas à mon niveau c’est pour cela que je ne fais que donner des exemples. Les grandes étapes que tu suggères font en effet partie de ce que j’aimerais réaliser
En français tu vas très vite être limité, la quasi totalité des ressources plus avancées que tu trouveras seront en anglais.
Alors.
Pour faire une liste non exhaustive, incluant des choses que j’aimerai intégrer au cours :
Les structures de données (liste chaînées, tables de hachage, arbres, graphes, ensembles, etc.) ;
Les usages avancés du préprocesseur et notamment la production de code ;
Différents aspects de la compilation ou sujets connexes, que ce soit les fichiers objets, l’édition des liens, le chargement des exécutables, etc. ;
La gestion de projets : organisation, usage de bibliothèque tierces, tests unitaires, chaîne de compilation, etc.
Différents aspects avancés : l'aliasing, les pointeurs restreints (il y a un tutoriel là-dessus que j’ai écrit avec @Lucas-84, mais il faudrait le dépoussiérer un peu), la notion de machine abstraite, les points de séquences et d’autres que j’oublie sûrement.
Le mieux, à mon sens et dans le même esprit que ce que t’as conseillé @Moté, c’est de choisir un domaine que tu souhaiterais creuser ou découvrir et de t’y attaquer à l’aide d’une bibliothèque connue, pour te donner quelques exemples : création de GUI (GTK+), jeux ou programmes 2D (SDL), jeux ou programmes 3D (SDL et/ou OpenGL), audio (SDL, GStreamer, voire couche système comme ALSA ou Pulseaudio sous Linux), programmation système (dépend de l’OS), calcul scientifique (GMP), programme réseau (libcurl, ou les sockets, pour les masochistes ).
Ce ne sont que des exemples, il y a pléthores de bibliothèques différentes par domaines et plus ou moins pertinentes suivant ce que tu cherches à faire, je donne ici juste des pistes et des bibliothèques connues dans leur domaine respectif.
Comme te l’a précisé @Moté, le C et le C++, bien qu’ayant une histoire commune et bien que le C++ supporte la syntaxe du C (pour partie), sont aujourd’hui deux langages distincts. Demander si tu peux te lancer de suite dans l’apprentissage du C++ revient à poser la question pour n’importe quel autre langage.
Alors, je suis le premier à adorer le C, mais là je dois te prévenir : ça va être sacrément casse gueule de faire ça en C. Pas parce que le langage ne le permet pas ou parce qu’il n’y a pas de bibliothèques adéquates, mais parce que mener un tel projet à bien en C va te demander beaucoup d’efforts, notamment en termes de gestion des ressources (mémoire, fichiers, connexion réseau, etc.) et de débogage (dépassement de capacité tant des tableaux que des entiers, fuites de mémoire, usage de pointeurs invalides, etc.).
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