人生の転機と共にあった本
鈴木 脩司
株式会社Preferred Networks
本を読むことが好きなため、ジャンルを問わず興味がわいた分野や人に勧められた本をよく読んでいます。そんな私ですが、自分の研究やキャリアと本との関係を振り返ってみると、重要なタイミングで良い本に出合っていたというのを実感しました。そんな自分の転機ともいえるタイミングで読んでいた本について紹介していきたいと思います。
本の紹介の前に私自身について少し紹介します。私は2006年に東京工業大学の5類に入学し、大学時代は情報工学科で勉強をしていました。その後、修士では同大学の情報理工学研究科へと進み、そのまま博士になりました。博士課程修了後は民間の研究所に就職し、その後、2017年に今の職場であるPreferred Networks (PFN)という会社でバイオインフォマティクスとハイパフォーマンスコンピューティング (HPC) 関係の技術開発を行っています。
プログラムの高速化に興味を持ったきっかけ
自分の軸となるものとしてプログラムの高速化があります。そんなプログラムの高速化に最初に興味を持ったきっかけは、友人に勧められてたまたま読んだ『プログラミング作法』という本でした。
私がプログラミングを本格的に勉強し始めたのは大学2年になってからでした。そのころに『プログラミング作法』を読みました。この本はプログラミングに関する幅広い内容が書かれた本だったため、プログラミング素人の私にとってはどの章も参考になりました。ただ、当時この本で特に印象的
だったのが、プログラムの最適化について書かれた「性能」の章でした。この章はプログラムの最適化について書かれているのにも関わらず、一番重要なこととして「まずは最適化するな」ということが書かれています。一見矛盾のように見えるこれが非常に重要な考えで、高速化をよく仕事で行う今
でもいつも心がけていることです。また、この他にも高速化を行っていくうえで重要な測定方法や、どのような順番で改良を行っていくか?の指針など、今でも常に意識していることが多く書かれています。また、この本をきっかけにしてプログラムの最適化について勉強するようになり、プログラムの高速化を自分の軸ととらえるようになるになりました。このため、この本は私にとっては非常に重要な本であったと思っています。
CUDAとの出会い
私の中で高速化との出会いと同じかそれ以上に重要な出会いだと感じているものはNVIDIAのGPUで科学計算を行うためのCUDAという言語です。そして、このCUDAを勉強する際、非常に重要だったと感じる本が『はじめてのCUDAプログラミング』です。
学部4年生で研究室所属した際、指導教員から研究テーマをどうするか?という話をされました。そしてその話の中で出てきた案の中にGPUを使った研究がありました。当時、『プログラミング作法』を読んで高速化に興味を持ち始めたタイミングということもあり、「GPUを使った研究をやってみたいです」といったのを覚えています。
ただ、GPUは今でこそ深層学習など様々な分野で使われていますが、当時はまだ一部のHPCの研究で使われ始めたばかりという時代でした。このため、勉強するとしても必要な知識が長い公式ドキュメントくらいしかなく、非常に勉強するのが大変でした。そのようなタイミングで出会ったのが『はじめてのCUDAプログラミング』です。この本ではCUDAを使ったプログラミングの基本的な部分からGPUを使って効率的に計算させるときの注意点、具体的なGPUの応用事例などCUDAの基本的な部分を十分にカバーしています。この本があったおかげでスムーズに研究を行うことができました。また、この本は2009年に出たものですが、効率良くGPUで計算させる注意点という観点では現在のGPUでも多くの部分が共通しており、今の仕事でもこの本で勉強したことが活きています。
自分のキャリアをどうしていくか?
私は博士課程の修了後、企業に就職しました。就職した企業が大きな企業だったこともあり、先輩たちの様子からどれくらいの年でどうなっているのか?がイメージしやすい環境でした。
一方、そんな企業から転職するとき、今後自分はどうなるのか?というのが漠然と不安になったときがありました。そのときにちょうど『SOFT SKILLS ソフトウェア開発者の人生マニュアル』という本に出会いました。この本はソフトウェア開発者のキャリアに関することや、勉強、仕事の効率化などソフトウェア開発者にとって重要なプログラミング以外のことについて幅広く説明しています。この本の中でキャリアについて書かれた部分は、まさに当時悩んでいた悩みについてどうすればよいかの参考になりました。また、この本はエンジニア視点で就職するときやその後働いてから参考になる考えがいろいろ詰め込まれています。このため、読んだ当時、就活前にこの本に出会いたかったと思ったのをよく覚えています。就活をしている方は一度手を取ってみるのもいいかもしれません。
最後に
こうして振り返ってみると、自分の人生で重要なところに本があった印象です。そして、その本で得た知識などをきっかけにさらにいろいろな出会いがあったように感じます。キャリア的にはまだまだ自分が今後どうなっていくのかわからないですが、これからも多くのきっかけとなるような本に
出会えればと思っています。
紹介書籍
Brian W. Kernighan (著),Rob Pike (著),福崎俊博(訳)『プログラミング作法』アスキー 2000
青木尊之,額田彰『はじめてのCUDAプログラミング』工学社 2009
John Z. Sonmez (著),まつもとゆきひろ(解説),長尾高弘(訳)『SOFT SKILLS ソフトウェア開発者の人生マニュアル』日経BP 2016
この記事が気に入ったらサポートをしてみませんか?