C++エンジニアになるにはどれくらいかかりますか?
ほとんどの言語より長くかかります。1日1時間ほどのペースで、ゼロからジュニア職のC++面接に臨めるところまで、9〜18か月が現実的な目安です。C++コースそのものは、そのペースで約2か月。メモリ管理、テンプレート、ムーブセマンティクスを扱うオブジェクト指向のセクションは、じっくり取り組むべき部分です。コマンドライン、Git、SQLでさらに約1か月、データ構造とソートでさらに2〜3か月。専門職ではその後に、それぞれの分野が加わります:ゲームエンジン、トレーディングの技術スタック、マイコンなどです。
C++はソフトウェアエンジニアの最初の言語として適していますか?
ハードルの高い選択です。メモリ、型、コンパイルが実際にどう動くのかを学べるので、そのあとのどの言語も楽になりますが、その代わりに、最初は進みが遅く、エラーも手厳しくなります。ゲーム、システム、組み込みの仕事がしたいとすでに決まっているなら、C++から始めるのは妥当です。迷っているなら、多くの人はまずPythonを学んでから2番目にC++へ進みます。ソフトウェアエンジニアのパスのページが、このロードマップのPython版です。
C++エンジニアはC++以外に何を知っておく必要がありますか?
このロードマップで扱うコマンドライン、Git、SQL、そしてその先の、言語を取り巻くツールチェーンです:ビルドシステム(たいていはCMake)、GDBやLLDBのようなデバッガ、実行時にメモリエラーを検出するサニタイザ、vcpkgやConanのようなパッケージマネージャ。その後に、目指す分野が来ます。ゲームエンジン、OSの内部、ネットワーク、組み込みハードウェアのいずれであってもです。
システムプログラミングのキャリアには、C++とRustのどちらがよいですか?
今ある求人市場の大きさならC++、増えつつある新規プロジェクトならRustです。ゲームエンジン、トレーディングシステム、ブラウザ、コンパイラの多くは長く使われてきたC++のコードベースである一方、Rustは新しいインフラやセキュリティが重要なコードで存在感を増しています。そのコンパイラが、メモリのバグを種類ごとまとめて排除してくれるからです。先にC++を学べばRustのルールになじみやすく、このロードマップはRustでも用意されています。
このロードマップで、C++で教えていないコースはどれですか?
1つです。クリーンコードは今のところPythonでしか教えていないため、ステップ7の中ではなく、ステップのあとに載せています。扱うテーマ、つまり命名、小さな関数、明確な責務は言語に依存せず、コースを終えたら、C++ Core Guidelinesが同じ考え方をC++に当てはめてくれます。オブジェクト指向のプロジェクトとコーディング問題を含め、すべてのステップがC++です。
このC++ロードマップは無料ですか?
はい。このロードマップのコースはすべて無料です:レッスン、ブラウザで使えるC++コンパイラとLinuxターミナル、テストで採点されるチャレンジ、Bugsyのヒント、そして修了証まで。Proは1日のエネルギー上限をなくし、AIの利用を無制限にしますが、このロードマップに、Proがなければ進めないものはありません。