こんにちは、エンジニアの仁木です。
今回は、私がWeb制作に携わる中で、エンジニアとして、読んでいてよかったなと思う技術書を紹介をしたいと思います。
最近~10年くらいの間で呼んだ本をピックアップしたので、古い書籍もありますが、どれも今の自分の仕事に役立っていると感じています。
「デザイン/インタラクティブな表現」なので、デザイナーやアーティストの使用が想定され、プログラムに精通していない人でも取っ掛かりやすくコーディングできるのが特徴です。
最初は簡単な図形の描画などをプログラムしていきながら、変数や配列、クラスといった概念を学ぶことができます。
いきなりデザイン/アートの文字が出てきて、「ん?Web制作のための本の紹介じゃないの?」となるかもしれませんが、エンジニアじゃない人のためのツールなので、システムの勉強を初めた初心者の人にも良い書籍なのではないかなと思ったので紹介しました。
自分の書いたコードで図形が動いたり、音に反応するような動きを少ないコードですぐに確認できるので、楽しいです。私が初めてプログラムと関わった本なのですが、初めてがこの本で良かったなと今は思います。
中島能和さん著作の、Linux技術者認定試験LPICの試験本です。
(現在はLPICは廃止されLinuCのみとなっているようでした‥。)
内容的には、コマンドラインでのファイルの操作/パーミッション変更、シェルスクリプト、ネットワーク知識など、インフラに関する知識を学べます。
試験本なので、セクション毎に問題を回答しておき、最後に解答と解説を読むといった感じです。
AWSやレンタルサーバーなどで、サーバーにSSHでログインして作業をする時などに、読んだ知識が役立っているなと思います。
DUstin BoswellとTrevir Foucher著作の本です。
エンジニアにとってのド定番中の本なので、ここで紹介するまでもなかったかも知れません。
本のタイトルにあるように「読みやすいコード」を書くための考え方、コードの書き方が紹介されています。
ソースコードは書く時間よりも読まれる時間の方が圧倒的に長いです。ソースコードを書いた人がいなくなってもシステムは動き続きますし、改修され続けます。
誰が読んでも理解しやすく、変更を加えやすいコードを書くことはエンジニアにとって永遠の課題なので、ソースコードを書く人は読んでおくべき必読書だと思います。
Gang of Four(GoF)と呼ばれる、Erich Gamma、Richard Helm、Ralph Johnson、John Vlissidesの4人の著作の本です。
オブジェクト指向のプログラムにおけるクラスの設計パターン(デザインパターン)を解説しています。
10年以上前に執筆された本で、現代のマシンスペックや言語にそぐわない内容もあり、批判的な意見もネットでは見られますが、オブジェクト指向の理解を深めるのには良い本だと思います。
実装パターンのカタログみたいなものなので、一回だけ読むというよりかは、システム設計を考えるときにパラパラ読んで参考にするといった感じでしょうか。
Sandi Mets著作のオブジェクト指向のシステム設計を学ぶ本です。
システムを設計するために、オブジェクト指向でどのようにプログラミングすればよいかを学べます。
SOLID原則や依存関係の解決、継承/インターフェースなど、オブジェクト指向のプログラミングを行う上で重要な知識が書かれているので、仕事で設計段階から携わる人や、システムの基礎部分を実装するような人にオススメです。
久保田光則さん著作の本です。
Webサイトの表示を最適化するための手法を紹介しています。
CSSやJavaScript、キャッシュなど、色々な観点からWebページの表示を最適化する方法を知ることができます。
また、チューニング方法だけでなく、Webページのパフォーマンスの計測方法や、Webページがサーバーにリクエストされてから、ブラウザに表示されるまでの仕組みを細かく解説されており、理解を深めることができます。
フロントエンドに携わるエンジニアにオススメです。
Robert C.Martin著作の本です。
ネットではボブおじさんという愛称で呼ばれているみたいです。
変更に強いソフトウェアの設計方法を解説しています。
システムの設計に関する内容なので、上記で紹介した「オブジェクト指向設計実践ガイド」とあわせて読むと良いかも知れません。
と言いつつも私自身も理解できていない部分が多いので、また読み直そうかなと思います。
いかがでしょうか、気になる本はありましたか?
今はネット上でたくさんの技術ブログがあるので、それらの情報でかなりの知識を得られると思いますが、本はある程度の知識量を体系的に学べるのが良いところだと思います。
これからも良書と呼ばれる本はたくさん読んで仕事に活かしていきたいと思います!