読者です 読者をやめる 読者になる 読者になる

社会人4年目のエンジニアの自分にとって印象深い技術書10選

これまで読んだ技術書の中で印象深いものについてまとめてみる。
この記事を書こうとしたきっかけは、自分のこれまでの学習のまとめのためと、他のエンジニアの方の学習に少しでも参考になればと思ったため。
それでは1年目から振り返っていく。

1年目

プログラミング言語Java

プログラミング言語 Java 第4版

プログラミング言語 Java 第4版

Java研修の課題で読み、演習問題も全て解いた本。
この本の学習にはかなりの時間をかけたが、1つのプログラミング言語をしっかりと学ぶという意味で良い経験となった。
ここで学んだ知識が、他の言語を学ぶ上でのベースとなっているように感じる。

2年目

Effective Java

EFFECTIVE JAVA 第2版 (The Java Series)

EFFECTIVE JAVA 第2版 (The Java Series)

これもJava研修の課題で読んだ本。
Javaのベストプラクティスだけでなく、API設計についても多くのことを学ぶことができた。

Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

オブジェクト指向や設計について学ぶために読んだ本。
今でもクラス設計をする際に読み返すことが多い。

Code Complete

Code Complete 第2版 上 完全なプログラミングを目指して

Code Complete 第2版 上 完全なプログラミングを目指して

Code Complete 第2版 下 完全なプログラミングを目指して

Code Complete 第2版 下 完全なプログラミングを目指して

各所でバイブルと呼ばれていたので興味を持った本。
良いコードの書き方だけでなく、ソフトウェア開発全体について多くの知見を得ることができた。

アプレンティスシップ・パターン

アプレンティスシップ・パターン ―徒弟制度に学ぶ熟練技術者の技と心得 (THEORY/IN/PRACTICE)

アプレンティスシップ・パターン ―徒弟制度に学ぶ熟練技術者の技と心得 (THEORY/IN/PRACTICE)

Java研修の講師の方の関連で読んだ本。
ソフトウェアエンジニアとしてどのように成長していくかについて大きく刺激を受けた。

3年目

Ruby On Railsチュートリアル

railstutorial.jp

Railsの生産性の高さや、Web業界での使用率の高さに惹かれて勉強してみようと思った本。
RailsでのWebアプリの作り方に加えて、Webアプリ開発で必要な多くの技術についても学ぶことができた。

珠玉のプログラミング

珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造

珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造

大学時代の友人と輪講を行った本。
アルゴリズムとデータ構造について学べたことに加え、広く知られたアルゴリズムだけにとらわれない、柔軟な手法についても学ぶことができた。

Linuxカーネル2.6解読室

Linuxカーネル2.6解読室

Linuxカーネル2.6解読室

Linuxの仕組みを知ることで、日々の開発やトラブルシューティングに役立てることができると思って読んだ本。
OSの仕組みについて細かく書かれており、かなり理解が深まった。

Team Geek

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

HRT(謙虚、尊敬、信頼)の大切さを学んだ。
当時の自分は少し傲慢なところがあったが、改心するきっかけとなった。

4年目

Scala関数型デザイン&プログラミング

Scalaへの興味や関数型プログラミングの流行に乗って読んだ本。
難しい部分もあり全ては理解できなかったが、関数型プログラミングの主要な概念について学ぶことができた。
また、他のプログラミング言語を書くときにこの考え方を取り入れられるようになった。

まとめ

この3年半で50冊以上の技術書を読んできたが、本当に多くのことを学ぶ事ができ、仕事での開発や趣味の開発に役立てる事ができた。
今後も継続して学習を続けていくが、これからはアウトプットを出すことにももっと意識を向けていきたい。