Modern C++ プログラミング講座
(github.com/federico-busato)- このコースは、すでにC言語とオブジェクト指向プログラミングに慣れている人を対象としており、C++プログラミングの習熟度を高めることを目的としている
- C++プログラミングの基本から高度なC++のセマンティクスおよび概念に至るまで扱う
- 無料で頻繁に更新されており、最新の言語標準の概念と機能を含み、実践的な教育アプローチを採用している
各章の主な内容
- 基本概念 : C++の基本型、演算子、変換規則、メモリ管理、関数およびプリプロセッサについて説明。
- オブジェクト指向プログラミング : クラスの概念、継承、多態性、演算子オーバーロードへの理解。
- テンプレートとメタプログラミング : 関数およびクラステンプレート、コンパイル時ユーティリティ、SFINAEの詳細な探究。
- 翻訳単位 : リンケージ、One Definition Rule、複数翻訳単位の処理方法について説明。
- コード規約 : プロジェクト構成、主要なコード規約の案内。
- エコシステム : デバッグ、テスト、Cmake、ドキュメント化およびその他のツールに関する情報。
- ユーティリティ : 主要な
stdライブラリ、コンテナ、イテレータ、アルゴリズムの概要。 - 高度なトピック : ムーブセマンティクス、型推論、スマートポインタ、並行性の深化学習。
- 最適化 : 基本概念、コード最適化、コーディング以外の最適化、およびベンチマーキングに関する戦略。
GN⁺の見解
このコースは、最新の標準を含むC++プログラミングのあらゆる側面を扱っており、初級ソフトウェアエンジニアが専門家レベルへ成長するうえで不可欠な資料である。実例に基づいた経験重視のアプローチは、学習者に実践的な知識を提供し、プログラミング能力の向上に非常に有益である。
1件のコメント
Hacker Newsの意見
このコースの創設者はNVIDIAのチームリーダーであり、CUDA cuSPARSEの主要ソフトウェアエンジニアでもある
ChatGPTv4を使ってCUDA互換のモダンC++コードを書くことに大きな成功を収めた
std::*を使ってより柔軟なコードを書くことを勧めている。長い休止の後にC++へ戻ってきたが、C++17のような最近のバージョンは十分に良い一方で、Unicodeサポートは物足りない
組み込み開発者として、C++学習を始めるための良い資料を探している
このコースをlearncpp.comと比較できる人がいるか気になっている
大学時代に忘れてしまったCの技術を学び直すのには適しているが、実際のコーディング練習がもっと必要だ
スライドだけでは学習が難しいと思う
スマートポインタはC++で「高度なトピック」と見なされるべきではない
newとdeleteの理解も重要だが、実際にはunique_ptrやshared_ptrを使うほうが望ましいと述べている。モダンC++ではnew/deleteを使うべきなのか疑問だ
変換規則セクションをどう読めばよいのか説明してほしいと求めている