C++言語の習熟度について考える †
- C++言語は、非常に奥が深く複雑だが、初心者でも簡単にプログラムが書ける寛容さも兼ね備えている。
- 古いエンジニアは、C言語を習得した後にC++を学習した。そのため、C言語で得たノウハウを駆使し、C++の機能を充分に使わずとも仕事としてC++を使うことができた。
- C++は1990年初頭から比べると進化しており、特にテンプレートの使い方に至っては現在でも日々進化している。
- 新しいテクノロジを学ぶ事は楽しいが、職業としてプログラミングしている者にとって、学習の時間は有限である。しかも、落とし穴があるかもしれない新しいテクノロジを仕事で採用するのはリスクが伴う。
- 冒険好きなエンジニアは、リスクを恐れず新しいテクノロジにチャレンジするだろう。堅実なエンジニアは、枯れた技術を駆使し、手堅い仕事をするだろう。
- どちらが良いという議論ではない。いずれも度が過ぎれば悪い方向に働くことは確かだ。要は、バランスだと私は考える。
- では、C++でのプログラミングを職業とするエンジニアにとって、どの程度のC++言語についての習熟が必須だろうか? また、行き過ぎたリスクの高いテクノロジは、どのあたりを指すのだろうか。
- 状況は日進月歩で変わっていくが、とりあえず2010年初頭に置いての習熟度の分類を考えてみる。
C++習熟度 (h.godaiの独断です。^^; ) †
C++習熟度一覧表
Level | 度合い | 該当事項 |
Level-0 | C++を知ってるとは言えない | virtualの意味がよくわからない |
Level-1 | C++初心者 | 継承を使って抽象化を行っている |
Level-2 | C++初級者 | const や pure virturlを使っている |
Level-3 | C++中級者 | 継承の乱用は避けるべきだ |
Level-4 | C++上級者 | STLは便利だ。boostも部分的に使っている。 |
Level-5 | C++マスター | 自前のtemplateライブラリを作っている。boost無しでは生きていけない。 |
Level-6 | C++変人レベル | STLのソースコードを読むのが楽しい。テンプレートメタプログラミング(mpl)が好きだ。 |
Level-7 | C++廃人レベル | boostのソースコードを読んで理解できる |
※ C++の経験年数と習熟度の統計と取ったら面白いかも。
※ ちなみに、私は「変人レベル」です。
※ おそらく、仕事で必要なスキルは、Level-4~Level-5だと思います。
アンケート †
C++習熟度の統計を取ってみたいと思います。あなたが該当するレベルのボタンを
押してみてください。
つづく。。。
FrontPage