ひげぽん氏オススメ! エンジニアが絶対に読むべき名著2冊

西村:ということで、色々お話を伺ってきました。趣味でOSを作って言語処理も作ってIPAで採択され、今や世界的な企業であるTwitterに入られてアメリカに行って、シリコンバレーでエンジニアとして、サンフランシスコで活躍されるという、ある種すごい憧れの存在だと思うんですけど。

そういうひげぽんさんから、今まさにこれからエンジニアとしてキャリアを積んでいこう、スキルアップしていこうと考えてらっしゃる画面の前のエンジニアの皆さんに、アドバイスがあればぜひお願いしたいんですが。

蓑輪:わかりました。まずはですね、エンジニアの皆さんも技術書を読むと思うんですけど、その時に1つだけ僕が気をつけていることがあって。それは何かって言うと、技術書を買ってきて読むわけなんですけど、読んだ時に「わかったわかった」っていう感じで自分がわかったつもりになって、そのまま読み進めてしまうっていうのが一番危険で。

なんでかっていうと、本当はわかって無いんだけどこの本は読んだって言うマークがココロの中でついて、読み終わったこの技術は習得したみたいな変な自信もついちゃう。

でも実際は、読み返して見ると全然わかってなかったみたいなことがあるので、本当に自分がわかってるのかっていうことを、例えば本を読みながら自分でまとめのノートを書いていって、まぁ要点がわかっているかまとめのノートじゃなくてもマインドマップを書いて、この本のメインテーマはなにで、この部分はこういう説明があったみたいなこと書いて理解を確かめるとか。

あとは、実際に本に書かれているコードを打ち込んでみて、自分がちゃんとそれを理解出来ているかみたいなことをやって、本当に理解できて読み終わった、っていう印を本につけてあげると、スキルアップの速度が上がるんじゃないかなと思います。

あとその技術書に関連して結構ボクが好きなのは、最新の技術を追うのもとても大事なんですけど、古典的名著って言われるような本を読むのも大事だな思っていて、

それはなんでかっていうと、最新のテクノロジー×××の入門書みたいの読んで、でもそれを実際10年後に振り返ってみてその本は本棚に並んでいるかって言うと、かなりの確率でもう並んでなくて、もう陳腐化していてその技術は役に立たないみたいなことがあるので。

それよりは例えば、10年間20年間先輩たちが読んできてまだ本棚の棚に並んでいるような古典的名著を読むと、本当に大事なギュッと詰まったエッセンスが自分で学べるので、古典的名著を読むって機会も作るといいのではないかなぁと思います。

西村:古典的名著で1冊か2冊、名前があれば、これはすごかったとかあるいはおすすめの本があれば。

蓑輪:そうですね、今これをご覧になってる皆さんにピッタリだと思うのが、『CODE COMPLETE(コードコンプリート)』っていう本で。

それはどういう本かっていうとソフトウェア開発とはどういうものか、なぜテストを書かなきゃいけないか、みたいなことをMicrosoftの人が確か書いた本なんですけども、その本のすごく良い所は個人の体験から書いているのではなくて、Microsoft内とかIBM内の統計データからこうこうこういうことをしたらこういう風になりました、っていう根拠がある。

そういう本なんで、「これを読まないプログラマーはプログラマーじゃない」って僕の友人が言ってたぐらいの本なので、読むと大変勉強になる本だと思うんです。

西村:まぁ、ソフトウェアって言うビジネスをやる、あるいはプラクティスするっていう意味でのはなしですよね。一方なんかコンピュータサイエンスとか知識とかっていう意味で言うとどういう本がオススメ。

蓑輪:例えば『Programming Pearls』、プログラミング言語のPerlじゃなくて、真珠の方のpearl。

西村『珠玉のプログラミング』

蓑輪:そう、それです。

西村:日本語のタイトルも出ている。

蓑輪:その本はすごい良くて、ちょっとコンピュータサイエンス寄りなんだけども現実に関係有るような題材を使って、プログラミングに必要な技術要素を学んでいくみたいな話が載っています。

西村:少し古いですけど、普遍的な技術的なテーマを扱っていてしかも学術的というのは、ちょっとおもしろいパズルっぽいとこもありますよね。

蓑輪:そうですね。

時間を"天引き"することでスキルアップを

西村:そうやって技術書読みましょとかじっくり読みましょうってアドバイスはあると思うんですけど、なかなか皆さん技術者の方って忙しくて時間もなかったりすると思うんで、なんかこう、時間管理みたいなこととか……。

蓑輪:僕が以前使っていたものですごくオススメなもので、天引きメソッドってのがあって。給料の天引きとかで、いろいろ保険料とか家賃とか引かれますよね。それと一緒で、自分の時間も天引きしてしまおうって考え方があって。

例えば、昼休みは自分は技術の時間に使いますと周りに宣言してしまって、自分でも毎日その時間は勉強すると。すると周りに宣言しているので、その時間帯にはランチにも誘われないし会議にも入れられない。

そうすることで勝手に時間が天引きされて、毎日例えば30分とか40分って時間が確保されるので、それを30分×1週間で7日、1ヶ月30日ってどんどんためていくと、1日30分ですけど確実に毎日30分やるのでそれが積み重なって、大きな時間になって最終的には自分のスキルにつながっていく方法があります。

西村:すばらしいですね。説得されそうですけど、それができたら苦労しないって感じもちょっとしますけど。ちょっともうひとつ、ついでにお伺いしたいんですけど、Twitter社ということで英語、今エンジニアにとって大きな課題だと思うんですけど、英語の勉強も同じような感じでやられてらっしゃるんですか?

蓑輪:英語は大変苦手なので(笑)。僕は会社入る前も入ったあともすごい勉強していて……ご質問何でしたっけ。

西村:英語の勉強も一日30分取るとか、天引きメソッドでやっぱりやってらっしゃるのかなと。

蓑輪:英語の勉強で今やっているのは、覚えなきゃいけないフレーズがiPhoneのアプリに入っていて、それを通勤の帰りのバスの中でモゴモゴ言ってるとか。そのバスの通勤を勉強の時間に使うとすごい良くて、決まった時間集中した時間が取れるので、今はそれでやってますね。

西村:ハッカーとして尊敬されてると思うんですけども、Twitter社で勤めて海外とやりとりしながらもプロダクトを作っていると。でもまだまだ勉強も続いていると言うことでよろしいですかね。

蓑輪:はい。

【電子合本版】Code Complete 第2版 完全なプログラミングを目指して

制作協力:VoXT