皆さん、こんにちは!
エル・フィールドでエンジニアとして働いている、H.Tと申します。
今回はエンジニアにオススメの本を、少ない読書経験の中から紹介しようと思います!
昔は、「表紙が動物画の有名出版社の本をとりあえず買っとけばOK」と思ってたのですが、
特に翻訳本では情報が遅れがちになり、重い本をめくるよりネットで検索する方が楽になってしまいました。
しかしながら、付け焼刃のテクニックや、モダンなテクノロジーを追いかけるのでなく、じっくりと歴史や哲学、変わらない基本技術などを学ぶのには、やはり本を読むのがお勧めです📚
では、厳選した6冊をご紹介します!!
1. 『改訂新版 コンピュータの名著・古典 100冊』
突然ですが、個別の本ではなく『コンピュータの名著・古典100冊』というカタログの紹介です。
私が持ってるのは、改訂新版(2006年)ではなく古い方(2003年)で、いずれにしろ20年近く前の内容ですので、最近のテクノロジーや思想は含まれていません。
内容はジャンル毎に分けられているので、興味がある分野から何冊か読んでみると良いと思います。
この中で一番のおすすめは、「いかにして問題をとくか(ジョージ・ポリア)」なのですが、自分で持ってるはずなのに本棚で見つけられませんでした。
有名な本なので検索すれば推薦のレビューは色々見つかると思います。
引用:石田 晴久 著(2003)『コンピュータの名著・古典100冊』インプレス出版
次に、この本を読んで初めて知って買った本を2冊紹介します!
2. 『誰のためのデザイン?』
1冊目は、『誰のデザイン?』という本です。
こちらも現在は増補・改訂版が出ているようです。
上で紹介した名著・古典カタログなどがないと、出会うきっかけが無い本です。
家やオフィスの照明のスイッチで、どれを押せばどこが光るのか(消えるのか)迷ったことはないですか?
また、車のキーでロック、アンロックが一つのボタンになっているものだと、開閉どちらの状態になってるか分からなくなってしまうことは無いですか?
これは、我々の物覚えが悪いのではなくデザインの問題である、というのが本の主張です。
「使いやすいデザインとは何か」ということですが、本格的なデザイナーだけでなく、インターフェースを持つプログラムでも、あるいは人に見せる資料作成などにも応用できるのではないでしょうか。
特に関係なくても、日常のイライラが減少するかもしれません。
日常の道具で使いにくい原因を、設計者の意図や、利用者が期待するイメージ・モノのデザインの立場から科学的に検証がされていたり、なるほどと頷かされます。
引用:ドナルド・A. ノーマン 著,野島久雄 訳(1990)『誰のためのデザイン?』新曜社出版
3.『珠玉のプログラミング』
2冊目は、『珠玉のプログラミング』という本です。
こちらも名著・古典カタログを見て買った本です。
プログラミングの手法や考え方を、実例や多くの問題で紹介しています。
副題には「本質を見抜いたアルゴリズムとデータ構造」とありますが、問題をそのまま正面から捉えるだけでなく、別のアルゴリズムやデータ構造を考えることで、プログラムが短くなり効率的になる例が多く紹介されています。
また、練習問題も多くあり自分で考える訓練になるのですが…正直そこまで真面目には取り組んでいませんでした。
最近は少し時間も出来たので、改めてじっくり読み直してみようかと思っています。
引用:ジョン・ベントリー 著,小林健一郎 訳(2000)『珠玉のプログラミング』桐原書店出版
4. 『詳説 正規表現』
続いて、『詳説 正規表現』という本を紹介します。
こちらも名著・古典カタログに載ってますが、それとは別に買った本です。
正規表現とは、簡単に言えば検索・置換を複雑にしたものです。
例えば、行の頭に「(」をつける、行の最後に「),」を付けるとか、
1,2,・・・,9,10,・・・ という数字を 001, 002,・・・,010に変換したいとか、
中黒が2個だけで3個ではない部分「・・」を3個「・・・」に変換したいとか。
複雑な条件の検索・置換を行う、まあプログラムの中の小さいプログラム文法みたいなものです。
この「正規表現」について、文字通り詳しく解説した本です。
ここまで細かい知識が必要になる場面は、実際にはほとんどないと思いますが、小さい道具・記号の積み重ねで「こんなことも出来るのか!」と驚くテクニックが書いてあり、実用のためというよりは、ゲームとか攻略の冒険ストーリーを読んでる感覚です。
本書のような、特定のジャンルを深く掘り下げた本を、一冊じっくりと読んでみるのもおすすめです!
引用:Jeffrey E.F. Fried l著,田和勝 訳(2003)『詳説 正規表現』オライリー・ジャパン出版
5. 『SQLハンドブック』
次に、『SQLハンドブック』という本を紹介します。
これはオススメというか、リアルにこれまでの仕事で一番お世話になった本ですね。
要はSQLの文法辞典で、似たような本は他にもあると思います。
Oracle, SQL Server, DB2, MySQL, PostgreSQL, Access のデータベース毎にすべて載っていて、本のサイズも大きくないのでデスクの上にはいつもありました。
もちろん、ネットで調べれば済むとも言えますが、単純な項目であればこういう本を見た方が早いです。
日付データの書式とか、結構データベース毎に違ってたりするので、ネットで一発で検索するのが面倒だったりします。
また、「ここは、ほらあれだよ CORLASCE とかいう関数を使うんだよ」と、間違ったあやふやな記憶でも目次を見ればすぐに見つかります。
ネット検索も便利ですが、用途によってはこういう辞書やテクニック集が一冊あると仕事が速いです。
引用:宮坂雅輝 著(2005)『SQLハンドブック』ソフトバンククリエイティブ出版
6. 『脳の右側で描け』
最後に、『脳の右側で描け』という本を紹介します。
ITやエンジニアとは余り関係ないのですがオススメの本です!
大学生の時に、なんでこの本を買ったのか思い出せませんが、内容は衝撃的です。
特に絵の練習をしていない人は、格段に上手くなります。
要は、「見えたままに描け」ということです。
絵を描く場合に悪い方法は、例えば顔を描くときに、目、鼻、口とパーツ毎に認識して、目はこういう形、目玉があってまつ毛があって・・・ と、記憶とか言葉で描いてしまうことです。
そうではなくて、形をあるがままに捉えて描けということです。
予断をなくして見たままに捉えることは、絵でなくても文章や話を聞くことにも大事になるでしょう。
リアルでもネットでも、思い込みでコミュニケーションがずれる、炎上するということが多々あります。
プログラミングでも、「プログラムは思った通りではなく、書いた通りに動く」といった言葉があります(表現はいろいろありますが)。
思った通りに書いたつもりでも、実際はミスがあって期待したのと違う結果が出るという戒めです。
このように、人生での中で一度は思い込みを捨てて、客観的に事実をありのまま受け入れる体験を積むのも必要だと思います。
引用:B.エドワーズ 著,北村孝一 訳(1981)『脳の右側で描け』,マール社出版
ここまでお読みいただき、ありがとうございました!
「おすすめ本」ということで、数少ない読書経験から選ばせていただきました。
すぐ役立ちそうな「秒で分かる生成AI」みたいなのを期待されてた方にはごめんなさい。
もっと有名な本の紹介ならば、最初に挙げた本がお勧めです!
ブログですので、公正中立なレビューよりは個人的な読書体験に基づく方がいいのではないかと思います。特に、知識を増やす内容よりは、思考に刺激的な方を選びました。
これからもそのような本に出会いたいと思いますので、
皆様もおすすめの本がありましたら、ぜひご紹介ください✨
 
 
