本と上手く付き合うには
ソフトウェアエンジニアのyashiheiです。最近、本との付き合い方について思いを巡らせる機会が多かったので記事にしてみようと思いました。
(記事で言及してる本は技術書がメインですが、話の内容としては別に技術書に限った内容では無いかなと思います)
本の見つけ方
そもそも本ってどうやって見つければ良いの?という疑問が以前僕にはありました。今必要な本を引き抜くのって結構難しいと思うんですよね。あまりにも沢山の本が溢れてるから何を基準にして選べば良いか分からない。ランキング上位とか星評価高いやつからかなとか。
ただ上から選ぶみたいな選び方は好きではなかったです。多くの人が望んでいる情報が自分にとって最適とは限らないんですよね。それに常に新しいものが良い訳でも無い。日頃から指向性のあるアンテナを組み立てていく必要があるのかなと。これはコンテンツ全般に言えそうですね。
僕がやってる方法を書くと
- 特定の人(思想が近い人、作った作品が好きな人など)の発信を追う
- このためにRSSリーダーをまだ使っています
- 気に入った本、ノベルゲームの引用などから芋づる的に追う
- Kindleの購入画面後のおすすめされる本
などなど。何処かを起点にしてそこから伝っていくと広がってくイメージかなと思います。
起点となる本
例えば「プリンシプル オブ プログラミング」は様々なプログラミングに関する技術書(技術書以外にも)の入り口として最適なのではないかなと思います。様々な名著から良いエッセンスを抽出してまとめてる本なので、各項目で気になる本があれば深掘りしていけるかなと。
僕は「コンテキスト(※)」について気になったので「リファクタリング・ウェットウェア」も当時読んだのですが、これは非常にインパクトのある本で出会えて良かったと思ってます。僕は、日頃から問題解決の際にコンテキストを大切にしてるのですが、それはこのあたりの本から受けた影響もあると思います。
※コンテキスト…周りの状況や背景のこと。文脈とも言います。例えば、牛丼屋で店員さんがオーダー取るときに「牛丼並、牛丼大盛り」ではなく「並、大盛り」と呼ぶのは「牛丼」というコンテキストが十分に共有されてるからだと思います。変数の命名などにも通じるところがありますね。
本を読むタイミング
たとえば過去のプロジェクトで、前ページの脚注にあげたGoF本に出会ったばかりの開発者がいました。この開発者は興味津々で、GoFデザインパターンを使ってみたかったのです。それも全パターンを同時に、簡単なリポートを生成するだけの小規模なコードの中で。この開発者は誰かに注意されるまで、どうしようもないコードの中に、GoF本に紹介されている23パターンのうち、およそ17個を詰め込んだのでした。 (Andy Hunt著, 武舎 広幸・武舎 るみ訳, リファクタリング・ウェットウェア, 2009)
初学者がいきなり読んだら混乱してしまう本というのはあると思います。最初読んだときは全然分からなかったけど、経験を積んでから読むことでスッと入ってきたといった経験は多くの人にあるのでは無いでしょうか。
これ怖いなあと思うのが、やはり本に書かれてることってコンテキストに左右されるとは思ってて、初学者にはこの分別が出来ないところですね。自分よりずっと経験ある著名な人が書いてるものだから何でも信じてしまう。なので「レシピ」として扱ってしまい時には大事故を起こしてしまう。結構ありがちですよね。
輪読会の良いところ
上記のことを考えると、輪読会はとても良いですね。本をより多面的に読むことが出来ます。一人で読むと気づけなかったことや、誤解してしまったことも、よりベテランの視点だったり専門が違う人々の視点を通じて、新たな発見をすることが出来ます。
これに似たような経験として、ソーシャルゲームのストーリーを自分で読んだあと、推しの配信で見たときに推しが全然違うところに着目してることに驚いたことがあります。
シミュレーションとして
本は色んな状況をシミュレーション出来る強みがあると思います。人生で経験出来ることには限りがありますが、本を読んで色んなケースを蓄えておくことで、いざというとき判断材料を増やせます。実際の経験には敵わないですが…。
本は読んだ方が良いのか
僕は座学がかなり苦手です。ただそれでも本は好きで読書の習慣はある方なのですが、それは能動的に、現実逃避か興味本位で読むことが多いからなのだと思います。
だから宿題っぽく本を押し付けるのはあまりやりたくないな~って思ってしまいます。良い本だと分かってても、その本を読む準備が自分に出来てただけで、相手にも出来てるとは限らないからです(なので、ケースバイケースですが、新卒に本をいっぱい押し付けるのもどうかなと)
学校の勉強とかが身につかなかったのも(高専のクラス内成績順で48人中46位とかになった記憶があります)やはり知識に対して能動的じゃなかったところが大きいのかなと振り返ってみて思います。今ではゲーム制作を通じて、他のことにも興味持てるようにはなったのですが、当時は好きなプログラミング以外が壊滅的でした。
難しいですね。如何に素晴らしい本があったところで、受け取る準備が出来てないと知識は身につかないのです。
身近な興味があるところから踏み込んで行くのが良いと思います。例えば、僕はアウトゲームに関わることも多いのでGUIをよく研究してるのですが、あるゲームに使われてるフォントが気になって調べたところ、ロダンNTLGであることが分かりました。そこからニタラゴの秘密を知る→そういえばこのフォント、ゲームや街中で結構見かけるなと気付く→フォントの歴史が気になってDTP以前の写植時代の書体についても知る(ゴナ、ナールなど)→欧文フォントのことが気になって「となりのヘルベチカ」を読む→日本語組版に関する連載を読む…、といった感じで繋がっていった経験があります。
本と上手く付き合いたい
とりとめなく書いたので特にまとめることは無いのですが、本と上手く付き合いたいですね。という内容でした。雑談だったりtimesで喋ったことをこうやってアウトプット出来たので良かったです。
-
前の記事
新卒クソゲーコンテスト ~エンジニア・運営編~ 2023.12.13
-
次の記事
[Unity][C#] 非同期コールバック関数パターン 2024.01.05