/ #書籍紹介 #技術書 

書籍紹介~読んでよかった技術書たち~

はじめに

今回は書籍紹介として、読んでよかった技術書たちを簡単にご紹介したいと思います。
私自身そんなにたくさんの技術書を読んでいるわけではないのですが、その中でもこの技術書は読んでよかった!と思うものがいくつかありますので、それを共有したいと思います。

リーダブルコード

コードを書く人であれば、知らない人のほうが少ないのではないかというレベルの名著です。
ソースコードの可読性を高めるための方法論をまとめた本であり、全てのプログラマーにおすすめできる本です。

私が今の会社にプログラミング未経験で入って、研修をこなし、配属されてプログラミングに多少慣れてきた頃、プログラミングの文法やそれぞれの機能の意味はわかったけど、それをどう書くのが正しいのか疑問に思ったときがありました。プログラミングはある機能を実現しようとするとき、その書き方が一意に定まるということはほとんどなく、色々な書き方ができるものです。なにか指針となるようなものはないのかと思ったのですが、配属された現場のVB.netのソースコードはとても参考にできるものではなく(10年前のソースがコメントアウトされて残されていたり、ひとつのオブジェクトに関するWith構文が数百行続いていたり、それがネストしていたり…)、ネットで調べていたときに色々なところで薦められていたのがこの本でした。

この本を読むまで、後々他人が読むということを意識してソースコードを書いたことはなく、プログラムが動いただけで満足していました。
そうして作ったソースコードを数週後に見返すと、意味がわからず、処理をちゃんと追わないと何をしているのかわからないことがよくありました。
書いた本人がこんな感じなんだから、他人が読んだらそれこそ意味不明だったと思います。
この本を読んで一つの指針を手に入れたことで、ある程度それは改善できたと思います。
アプリケーション開発は複数人で開発することがほとんどで、可読性の高いソースコードを書くことは、開発を円滑に進める上で欠かせないものになります。ぜひ読んでみてください。
読んだその日からソースコードを書くことに対する認識が変わると思います。

Webを支える技術 -HTTP、URI、HTML、そしてREST

これはつい最近読んだ本なのですが、もっと早く読んでおけばよかったと思った書籍です。
Webを支える3大技術要素、HTTP・URI・HTMLについて、Webの始まりから解説してくれる本で、Webアプリケーションの開発に約4年携わった上でも学ぶことが多くありました。
今まで曖昧に理解していた技術要素を的確に説明してくれる本で、例えば「REST」とは何なのかだったり、HTTPメソッド(GET, POST, PUT, DELETE…)の明確な使い分けのルールや、URIの設計についてなど、個人的にはそこが知りたかったポイントをきっちり押さえて解説してくれました。
Webアプリケーションに携わる人なら読んで損はないおすすめの書籍です。

マスタリングTCP/IP入門編

この本はネットワークスペシャリスト試験に挑戦するために読んだ本です。
この本を読む前はネットワークってよくわからないし、ピンとこないし、 面白くなさそう…というのが正直な感想でした。
ネットワークスペシャリスト試験を受験しようと思ったのも、応用情報技術者試験に合格してから1年半経っており、午前1試験が免除される最後の試験だと気づいたからでした。
この本は入門編とついていることもあり、基礎の基礎からネットワークが学べる本となっています。
コンピュータの普及からなぜネットワークが生まれたのかというところから説明してくれるので、すんなりとネットワークの世界に入っていくことができました。
普段Webアプリケーションを開発していると、フロントエンドではAjaxでHTTPリクエストを発行するところを実装し、バックエンドでは受け取ったHTTPリクエストからパラメータを取り出して、DBアクセスして…といったところを実装するのですが、その間の部分についてはあまり意識することがありません。
この本を読むことで、その間で何が行われているのかが理解でき、フロントエンドとバックエンドを連続的につなげてきちんと理解することができた気がします。
この本から学んだ知識は後にLinuxでWebサーバーを構築するお仕事のときにも役に立ちました。

例えば流行りの言語やフレームワークは変わっていきますが、ネットワークという技術はインターネットがある限り、なくなることのない技術なので、ITエンジニアとして学んで損はない技術だと思います。
その入門としてこの本は本当におすすめの本です。
(なおネットワークスペシャリスト試験は寝過ごして受験できませんでした…またリベンジしようと思います笑)

コーディングを支える技術 ~成り立ちから学ぶプログラミング作法

この書籍は現在多くの言語に登場するコーディングの文法についてその成り立ちから解説してくれる書籍です。例えば、if文やfor文はなぜ必要なのかというような普段プログラミングしているとあまり意識しないような疑問に解答してくれます。
それらの解説を様々な言語を通して行ってくれるので、いつもJavaで書いてるあの処理は他の言語ではこう書くんだーというような知的好奇心も満たしてくれます。

この本を読むことで私は、プログラミングを初めて学んだときのことを思い出しました。あのときは右も左も分からない状態でしたので、何かプログラミングに関して疑問が浮かんでも、それを言語化することすらできず、もちろん自分で答えを導き出すこともできませんでした。そうやってかつて浮かんだ疑問も新しい技術をどんどん学んで、毎日色々な機能をプログラミングしていくうちに忘れていきました。
この本を読んだことで、かつての自分もこういう疑問をもっていたなーと思い出し、初心に帰ったような気がしたんです。

そしてこの本のあとがきのこの言葉にははっとさせられました。
>ついついHow(どうやって作るか)に注力しがちですが、What(何を作るのか)、Why(なぜ作るのか)も忘れてはいけない視点です

この本を読む前は、色々な技術に興味をもって学ぶことはある程度できていたのですが、その技術を使って何を作ろうかというような視点は持ち合わせていませんでした。
業務でプログラミングするときも、自分がこれを作ろうと思ってプログラミングをしているわけではなく、あくまでお客さんとの打ち合わせなどで定義される仕様についてプログラミングをしているわけで、こういう視点を意識することはほとんどなかったです。

現在、Coopetの開発や友人とゲーム開発をする上でも、今まであまりこういう視点をもったことがないことが大きく、ものを作ることはある程度できても、何を作ればいいのかわからないという状態に陥ることがままあります。
色々な技術に触れることも大事ですし、それも楽しいのですが、何を作るのかという視点を持つことで、また違ったエンジニアとしての楽しみを見いだせると思うので、試行錯誤していきたいと思います。

おわりに

今回は私が読んで良かったと思った技術書を4冊ご紹介しました。
こうして紹介してみると、技術書とは技術が説明してあるだけの無味乾燥な書籍ではなく、エンジニアとしての考え方のようなものを身につけたりやモチベーションを高めることもできる、素晴らしいジャンルだと思います。
今後も面白そうな技術書はどんどん読んでいこうと思いますし、読んで良かったと思う書籍があれば、またご紹介したいと思います。

それでは、今回のこの辺で。ここまで読んでいただき、ありがとうございました!

私のおすすめの書籍です。ぜひ読んでみてください!

Author

りんごく

2019年8月よりフリーランスとして活動するフロントエンドエンジニア。Reactが友達。