IT業界で数年働いてきて、少しではありますが関連書籍を読んできました。その中から、過去の自分に向けておすすめできると思った本をまとめてみました。
目次
なぜ本なのか?
ネットで無料で簡単に情報を検索できるのにも関わらず、本を選択する理由はあるのか?と思う人もいるでしょう。おすすめ本を紹介しようとしているのになんですが、僕も働き始めて数年間は本にお金を出すのがもったいないと思っていたひとりです。
ではなぜ本を紹介しているかというと、本は体系的に学べるからです。
ネットで分からない箇所を検索しているだけだと知識は断片的にしか増えていきません。一方で本で体系的に学んでいれば仕事で使わなかった知識も身に付けることができます。その時の勉強時間はかかりますが、長い目で考えると知っていることでプラスになると思います。
仕事をしていると知っている(聞いたこと・見たことがある)かどうかで、取り掛かる時間が全く異なってくることがあります。これ初めから知ってたらもっと早く終わったじゃん!ということが多々起こりますよね。
※ネットで調べた後に分からない箇所をネットサーフィンして知識を増やしていける人は別ですが、業務時間中は早く仕事を終わらせたい気持ちが勝ってしまい、調べたい箇所だけ調べたら終わりにしてしまう人もいるでしょう。
それでは、以下でITエンジニアにおすすめの本を紹介します。
おすすめの本
プログラムはこうして作られる
業務でプログラムを書こうと思ったときに、作りたいものは理解できるのだけど、どうやってプログラムを書いたらいいのか分からずよく悩んでいました。おそらくこうした状態になるのは、機能を分解せずに、一気に作ろうとしているからだと今では分かります。
本書ではテ◯リスのようなゲームを作ることを通して、プログラムの書き方を説明しています。経験者がどのような考え方でプログラムを書いていくのかなぞることができるので、初心者だった自分にとってとても良い本でした。
リーダブルコード
言わずと知れた名著。
プログラムを読みやすくする方法が書かれています。変数名をabcとつけていて書いている最中から何を入れているのか分からなくなったり、ネストを深くし過ぎてどのループで何をしているのか分からなくなるみたいなことがありましたが、この本を読んでからは少なくとももっと読みやすいプログラムを書こうと気をつけるようになりました。
ピープルウエア
入社して数年目の時に、人がバタバタといなくなったことがあります。そのときにマネジメントの本を何冊か読んだのですが、マネジメントにはプロジェクトと人のマネジメントの2種類があることを知りました。
この本を読むといかに人のマネジメントがされていないか気づかされ、管理者ではないにしても自分でもできることをやろうと思うきっかけになりました。社会人として働く以上、人と協力して働くことは避けられませんし、働いていれば後輩や部下ができて指示する立場になります。そのときに必ず役立つ本なので、早いうちに読んでおいて損はありません。
CAREER SKILLS
目の前の仕事に追われていて気がついたら職場でしか活躍できない人材になっていた、ではサラリーマンとして悲しいですよね。プログラマーとして働き始めたときからどのようにスキルを伸ばしていくか?さらにはキャリアの伸ばし方など、プログラマーに関連する多岐に渡った内容が盛り込まれています。全部を読む必要はなく、自分にとって必要な箇所だけでも読む価値はあります。
スッキリわかるJava入門
プログラム初心者でJavaを書くことにした(なった)人は、まずこの本を読んでおけば間違いないです。
紙の場合は、分厚くて気持ちが負けそうになりますが、その分中身は丁寧に書かれているので、薄い内容のない本を調べながら読むよりはるかに効率がいいので頑張りましょう。また、オブジェクト指向の説明も恐ろしく丁寧にそれているので、オブジェクト指向の理解がいまいち…という人にもおすすめできます。
HTML/CSSモダンコーディング
仕事でHTMLとCSSを書く機会があったのですが、人が書いたソースに追加/修正することしかなくゼロからWebページを作ってみたいと思ったときに買った本です。
サイトを作りながらHTMLとCSSを学べるので、こういうレイアウトにしたいときにどうするか?こういう修正をしたいときにどうするか?を学ぶことができ、この本のおかげでレベルアップできました。ただ、少し古くなっているので最新のことを学びたい人は注意して下さい。
問題解決力を鍛える!アルゴリズムとデータ構造
アルゴリズムを勉強しなくてもプログラミングは出来ますし、競技プログラミングとかやる人だけが必要な知識だと思っていました。また、アルゴリズムが難しくて勉強する気にならないというのも理由の一つでした。
しかし、この本は非常に分かりやすく説明がされています。分からないから勉強したくないと思っていた人間が、この書籍を読んだらアルゴリズムに興味が出てくるくらいに分かりやすかったです。また、これからはどこの会社でもIoTだのデータ活用だので、扱うデータ量が多くなっていきます。そのときに適切なアルゴリズムを実装できるかは非常に大きな影響があります。
Excel マクロ&VBA 実践ビジネス入門講座
仕事でVBAを使うことが少なかったため、実装するときに分からないことだけしか知識が身についていませんでした。
この本は、サンプルが非常に実践的で、VBAでこんなことを実装できたら便利になるなと思えることがたくさん載っています。VBAは嫌われている言語と聞いたことがありますが、実際問題としてExcelが使われている限りはニーズはあるので、できることを増やしておけば役に立つでしょう。
ゼロから作るDeepLearning
Pythonは聞いたことはあるレベル、ディープラーニングも何も分からない状態で読み始めたので、しばらくは何も分からない状態が続いたのですが、分からないところを何回か読んでいると次第に分かるところが出てきます。ディープラーニングの元となる考え方から、最後はディープラーニングを実装することができます。
今はTensorFlowなどライブラリを使ってディープラーニングを使えてしまうわけですが、何も分からず使うのを防ぐためにも一読しておきたい書籍です。
達人に学ぶSQL徹底指南書
SQLで基本的な操作ができるようになった人が、次のレベルに行くための本です。(※ 基本的な操作: SELECT、INSERT、UPDATE、DELETE、テーブル結合、グループ化など。)
基本的な操作ではどうしても実現できないことを実現する方法が紹介されていて、SQLの奥深さを教えてくれる本だと思います。業務では簡単なSQLしか書かないという人も読んでみる価値ありです。
新しいLinuxの教科書
仕事で突如としてLinuxを使わないといけなくなった時にお世話になった本です。Amazonのレビューか高いからという理由で買ったのですが、レビュー通りの良書でした。
「教科書」というタイトルの通り基本的なことから分かりやすく書かれています。また、サンプルコマンドが充実しており、分からない箇所を調べるために辞書的に使うときも重宝しました。
ソフトウェア見積もり
色々なプロジェクトを経験しましたが、スケジュールに遅れが出てしまう原因として、見積もりが甘かったのではないか?と感じることが何度もありました。本書の初めにこのような記載があります。
『見積りのゴールは正確性であって、特定の結果を追求することではない。一方、計画でゴールとなるのは、特定の結果の追求である。』
この文章を読んで、コストや納期に合わせて見積もりをしてるからうまくいかないことが多いのだと納得ができました。プログラマーとして働いていると「これ◯日でできるでしょ?」と無理を言われることが出てくると思いますが、そのときに正確に見積もりを伝えることができれば、スケジュールの調整もしやすくなるため働きやすくなるでしょう。
おすすめの本はいかがでしたでしょうか?一冊でも読みたいと思える本があれば嬉しいです!ではっ!