以下の本は熟読しよう
テスト・リファクタリング・良い設計とは何かを学ぶことができます。
組み込み分野の例を用いていますが、組み込みをしない人でも役に立つ内容です。
C/C++言語のやっかいな点は、使うべきでない機能やライブラリが多数存在していて、言語を学ぶときの標準として影響し続けていることです。昔のライブラリを使った実装ではメモリーリークを生じがちでした。その後ライブラリのバージョンが上がってC++インタフェースで使うようになるとメモリリークの問題ははるかに生じにくくなりました。C++言語は進化し続けていて、それによってより安全な、よりパフォーマンスを確保しやすいものになっています。昔のC++ではコピーコンストラクタが必要以上に呼ばれてしまう書き方をしてしまいやすいという欠点があります。しかし新しいC++の中ではそのような欠点が克服されています。
これらの本を熟読して、使いこなせていけば、C++の上級のエンジニアと言っていいでしょう。
品質を確保した、最適化されたコードにたどりつけるでしょう。
追加(2024年)Modern C++ チャレンジ C++17プログラミング力を鍛える100問
コンピュータ言語自体での強みの他に、自分がどういった対象領域に強みを持つのかを設定する。
そうして、自分は「何屋です」と言い切るようにしていく。その何屋に期待される平均的な手法を自分のものにしていきます。
強みをもつ領域が何であるのかを宣言することは、あなたに仕事を任せたい側にとって判断しやすくなることにつながります。
そしてその何屋といえる部分のレベルをあげていくことです。
そうすれば、その分野で需要があるかぎり、どこでも食っていける技術者になれます。
2022.12 追記:
- C++の弱点として過去のライブラリとの互換性の束縛があります。
- その互換性の束縛を切り捨てて、新しい言語仕様・新しいライブラリの実装がありえます。
- 実際に、そのような選択肢としてRustがあります。