40 points par GN⁺ 2023-11-29 | 1 commentaires | Partager sur WhatsApp
  • Ce cours s’adresse à des personnes déjà familières avec le C et la programmation orientée objet, et vise à renforcer leur maîtrise de la programmation C++
  • Il couvre les bases de la programmation C++ jusqu’à la sémantique et aux concepts avancés du C++
  • Il est gratuit, fréquemment mis à jour, inclut les concepts et fonctionnalités des standards récents du langage, et adopte une approche pédagogique pratique

Principaux contenus de chaque chapitre

  • Concepts de base : explication des types de base du C++, des opérateurs, des règles de conversion, de la gestion de la mémoire, des fonctions et du préprocesseur.
  • Programmation orientée objet : compréhension du concept de classe, de l’héritage, du polymorphisme et de la surcharge d’opérateurs.
  • Templates et métaprogrammation : exploration approfondie des templates de fonctions et de classes, des utilitaires au moment de la compilation et de SFINAE.
  • Unités de traduction : explication du linkage, de la One Definition Rule et des méthodes de gestion de plusieurs unités de traduction.
  • Conventions de code : guide sur l’organisation de projet et les principales conventions de code.
  • Écosystème : informations sur le débogage, les tests, Cmake, la documentation et d’autres outils.
  • Utilitaires : aperçu des principales bibliothèques std, des conteneurs, des itérateurs et des algorithmes.
  • Sujets avancés : apprentissage approfondi de la sémantique de déplacement, de la déduction de types, des smart pointers et de la concurrence.
  • Optimisation : stratégies sur les concepts de base, l’optimisation du code, l’optimisation hors code et le benchmarking.

L’avis de GN⁺

Ce cours couvre tous les aspects de la programmation C++, y compris les standards les plus récents, et constitue une ressource essentielle pour aider un ingénieur logiciel débutant à progresser jusqu’à un niveau expert. Son approche centrée sur l’expérience et fondée sur des cas concrets fournit aux apprenants des connaissances pratiques, très utiles pour améliorer leurs compétences en programmation.

1 commentaires

 
GN⁺ 2023-11-29
Avis Hacker News
  • Le créateur de ce cours est chef d’équipe chez NVIDIA et ingénieur logiciel principal de CUDA cuSPARSE

    • Compte tenu du lien du créateur du cours avec NVIDIA et CUDA, cette expérience peut être utile aux personnes déjà à l’aise en C++.
  • Grand succès avec ChatGPTv4 pour écrire du code C++ moderne compatible avec CUDA

    • ChatGPTv4 peut aider à convertir du code Rust en C++ moderne compatible avec le compilateur CUDA nvcc récent.
    • Pendant la conversion, il peut expliquer les différences entre les langages et recommander l’usage de std::* pour écrire un code plus flexible.
  • Retour en C++ après une longue pause, et les versions récentes comme C++17 sont suffisamment bonnes, mais la prise en charge de l’Unicode est décevante

    • Les versions récentes de C++ sont tout à fait utilisables, mais la prise en charge de l’Unicode reste peu pratique et mériterait d’être améliorée.
  • En tant que développeur embarqué, cherche de bonnes ressources pour commencer à apprendre le C++

    • Une personne ayant de l’expérience en développement embarqué cherche des ressources d’apprentissage du C++ pour passer à des tâches de niveau plus élevé.
    • Il existe des cours dans différentes gammes de prix, mais il est difficile de choisir celui qui convient à une situation complexe.
  • Se demande si quelqu’un peut comparer ce cours à learncpp.com

    • Demande des avis sur l’utilité de ce cours par rapport au site learncpp.com.
  • Adapté pour réapprendre des notions de C oubliées depuis l’université, mais il faudrait davantage de pratique réelle du code

    • Exprime une préférence pour un apprentissage par la pratique du code plutôt que par l’étude théorique.
  • Pense qu’il est difficile d’apprendre uniquement avec des slides

    • Critique l’apprentissage via des slides comme étant peu efficace et montre une préférence pour d’autres méthodes d’apprentissage.
  • Les smart pointers ne devraient pas être considérés comme un « sujet avancé » en C++

    • Souligne que les smart pointers sont la meilleure approche pour la gestion mémoire et que même les débutants devraient les apprendre.
    • Mentionne qu’il est aussi important de comprendre new et delete, mais qu’en pratique il est préférable d’utiliser unique_ptr ou shared_ptr.
  • Se demande s’il faut utiliser new/delete en C++ moderne

    • Un débutant en C++ s’interroge sur la nécessité des mots-clés new/delete en C++ moderne.
  • Demande qu’on lui explique comment lire la section sur les règles de conversion

    • N’étant pas familier avec la notation utilisée dans la section sur les règles de conversion, il demande de l’aide et cherche des explications supplémentaires sur cette partie.