FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

プログラミングを鍛える本を買った

世界で闘うプロダクトマネジャーになるための本 ~トップIT企業のPMとして就職する方法~

世界で闘うプロダクトマネジャーになるための本 ~トップIT企業のPMとして就職する方法~

この本を買ってみた。最初のいくつかの問題を問いてみた。単純な問題もあるし、目からうろこの回答もある。 プログラムで回答するにあたり、本書ではノートに書いたり、ホワイトボードに書くことを推奨している。これは面接対策の側面もあるだろうが、コンピュータですぐに確認しないという特性上、正しく動作するか自分の脳内でちゃんとチェックするという機能も兼ね備えていると思う。これは何だかプログラミングを勉強し始めたころに、最初にフローチャートを書くように言われたのに似ている気がする。 プログラムを書くだけなら、たぶん誰にだって出来るんだよな。でもそこから、より高速なプログラムだったり、よりエレガントなプログラムを書くというのはとても難しい。 内部で利用するライブラリの特性だったり、大規模なアプリケーション、大規模分散システムを扱うことなんてあまりないので、その意味ではそもそも高速化が必要とされる機会が少ないのかもしれない(少なくともハード屋である僕の場合は)。 しかし、ハードウェアの開発ってここらへんについて本当に敏感だ。ハードウェア開発って、Cモデルレベル、RTLレベル、ゲートレベル、ポストレイアウトレベルでシミュレーション速度が文字通り桁違いに異なる。 なので、RTLレベルで検証を流すのはもちろん、Cモデルでの検証や性能見積りってとても大事になると思う。 Cモデルでも、より高速なCモデルシミュレータを用意することでRTLを利用せずともベンチマークの性能を解析することができ、その結果をRTL設計に反映させることができる。

この本を読んだからって僕のプログラミング力が急激に向上する訳でもないし、RTLをバカスカ書けるようになる訳じゃないけど、こういう刺激をたまに入れることによって、普段の何気無い業務にちょっとでも改善のメスを入れられると良いなと思ったのであった。