プログラミングを学習する人の多くが、本を使うと思いますが、どんな本を買ったらいいのか分からないという声をよく聞きます。
私もそうでした。
私は、2014年から独学でプログラミングを学習して、7年で150冊以上の技術書を読んで、めちゃくちゃ成長できました。
身についたスキルの例
- Webサービス開発(html/CSS/JS/jQuery/PHP)
- iOSアプリ開発(Swift)
- Androidアプリ開発(Java/Kotlin)
- Unityゲーム開発(C#)
- 機械学習(Python)
2018年には、IT企業に新卒エンジニアとして就職して、ありがたいことに年収600万円を超えるようになりました。
今回は、知識ゼロだった2014年の自分に向けて書くつもりで、完全初心者向けに分野別でオススメの技術書を紹介します。
他のサイトだと、読んだこともない人が紹介している場合が多いですが、ここで紹介する本は、全て私が読んだ上で、本当に役立つものだけをオススメします。
(証拠という意味も込めて、手元にある本か電子書籍の写真を載せます。)
これは読んだ本の一部です。
最近は電子書籍で買うことも多くなってきました。
- オススメのプログラミング本
- 1. Webを支える技術 – Webの基礎からしっかり理解
- 2. リーダブルコード・TeamGeek – チーム開発するなら必読
- 3. HTML/CSS/JavaScript – Webサービス開発
- 4 . SwiftUI iPhoneアプリ開発ノート・詳解SwiftUI – iOSアプリ開発
- 5. はじめてのAndroidプログラミング – Androidアプリ開発
- 6. Unityの教科書 – Unityゲーム開発
- 7. PythonとKerasによるディープラーニング – Python機械学習
- 8. スッキリわかるJava入門 – Java
- 9. デザインパターン入門 – プログラムの設計手法
- 10. デザイン教室入門 – デザインについて
- 11. 情報検索の基礎 – 検索アルゴリズム
- オススメのプログラミング技術書 まとめ
オススメのプログラミング本
今回は、この11テーマに絞って、それぞれオススメの本を紹介します!
- webの基礎
- チーム開発
- webサービス開発
- iOSアプリ開発
- Androidアプリ開発
- Unityゲーム開発
- Python 機械学習
- Java
- プログラムの設計手法
- デザインについて
- (おまけ)検索アルゴリズム
1. Webを支える技術 – Webの基礎からしっかり理解
HTTP/URLなどのWeb技術の基礎知識
何気なく使っている「HTTP」や「URL」といったWebには欠かせない基礎知識を得ることができます。
意外とURLのちゃんとした定義って知らない人も多いんじゃないでしょうか?
実際にプログラムを書いて何か作るわけではないですが、Webサービスを開発したりエンジニアを目指すなら基礎中の基礎なので、絶対に知っておいた方がいいです。
プログラミング言語は、廃れるのが早いですが、web基礎技術は長く使える知識なので、一度覚えておけば一生使えるんじゃないでしょうか。
2. リーダブルコード・TeamGeek – チーム開発するなら必読
良いコードの書き方、良いチームの作り方
チームで開発するなら、絶対に読んでおきたい2冊を紹介します。
リーダブルコードは、良いコードの書き方を学べます。
良いコードとは、他人(未来の自分)が読んで簡単に正しく理解できるコードのことです。
分かりにくいコードのことをスパゲティコード(絡まって読みづらい)と言いますが、一人で書くならそれでもいいです。(後で見返した時に全然分からなくなりますが)
しかし、チームで開発するなら、チームのルールに合わせた書き方が求められます。
いくら自分で完璧なコードだと思っていても、他人が理解できなければゴミです。
具体的にどんなことに注意すればいいのか、少し書いておきます。
- 明確な単語を選ぶ
- 美しさにこだわる
- コメントは簡潔に
もちろん他にもたくさんありますが、普通にプログラミングを学習しているだけだと習得できない良いコードの書き方が学べます。
TeamGeekは、Googleがどのようにチームを作るのかがまとめられています。
一流のチームワークを学ぶには、一流のチームから学ぶべきです。
正直、プログラミングだけでなく、他にも応用が効く内容なので、チームで何かするなら読んでおきたい1冊です。
書かれている内容
- マネージャーの役割とは
- コミュニケーションの取り方
- チームを作る時に絶対にやってはいけない事
などがまとめられています。
どちらも非常に分かりやすく、企業でエンジニアとして働いたり、チームで何かやるなら絶対に読んでおきたい本です。
3. HTML/CSS/JavaScript – Webサービス開発
HTML/CSS/JavaScriptを使ったWebサービス開発
プログラミング!と聞いて最初に思い浮かべるのは、Web開発だと思います。
Web開発に必要な知識は、HTML/CSS/JavaScriptです。
それぞれこんな感じの役割です。
- HTML:ページ全体のパーツを作る
- CSS:ページのデザインを作る
- JavaScript:ページに動きを持たせる
HTML/CSSを学べるオススメの本は、初心者からちゃんとしたプロになるHTML+CSS標準入門です。
フルカラーで図も多く、初心者が最初の1冊として始めるのに丁度良い内容になっています。
そして、基礎的に内容だけでなく、今の時代に絶対必要な「レスポンシブ対応(スマホ対応)」にも触れられており、「ちゃんとしたプロになる」という言葉どおり、実際に必要な知識が詰め込まれています。
(それでいて分かりやすいので、凄い。)
JavaScriptを学べるオススメの本は、JavaScript「超」入門です。
こちらもフルカラーで非常に読みやすいです。
“「超」入門”と書いてあるくらいなので、超初心者にもオススメです。
知識ゼロからやるなら、これでいいですが、既に少し知識があるなら、JavaScript本格入門もオススメです。
こちらも入門書としては十分読みやすいですが、”「超」入門”の方より、少し難易度が高いです。
その分、深い内容までしっかりと書かれているので、深く理解したい人にはオススメです。
超入門をやってから本格入門もやるといいかなと思います。
1点注意ですが、HTML/CSS/JavaScriptが全て1冊にまとまっているような本はあまりオススメしません。
JavaScriptだけは、個別に1冊買ってください。
というのも、HTMLとCSSは直感的で分かりやすいですが、JavaScriptは書き方が複雑で慣れないと分かりづらいです。
全てが1冊になっていると、どうしてもJavaScriptの内容が薄くなりがちで挫折するという人も多いです。
4 . SwiftUI iPhoneアプリ開発ノート・詳解SwiftUI – iOSアプリ開発
iOSアプリ開発、SwiftUI
※注意書き
iOSアプリ開発は、非常に技術進歩が早いです。
Appleが毎年のように新しいフレームワークを出すので、どんどん開発手法が変わっていきます。
1~2年もすると技術が古くなっている可能性があります。
ここに記載の情報は、2021年9月の内容です。
現在、最新のiOS開発フレームワークは、SwiftUIです。
iOS開発自体は、Swiftという言語で行います。
SwiftUIというのは、iOSアプリ開発向けにSwiftを使いやすくしたものだと考えてください。
今からiOSアプリ開発を始めるなら、このSwiftUIをマスターしておくのが良いでしょう。
iOSアプリ開発をゼロから始めるなら、SwiftUI iPhoneアプリ開発入門ノートがオススメです。
iOSアプリ開発に必要なツール XCodeのインストールからしっかりと解説されているので、Macさえ持っていれば開発することができます。
(iOSアプリはMacでしか開発できないので、Windowsしかない人は、Macを買ってください。)
基本的な開発の流れは、上の本で十分ですが、SwiftUIをより深く学びたい人には、詳解SwiftUIをオススメします。
こちらは、iOSアプリ開発の流れについては書かれていませんが、SwiftUIの仕様や使い方について細かくまとめられています。
1冊目でアプリ開発全体の流れを追いつつ、2冊目で言語について深く知るという使い方が良いです。
5. はじめてのAndroidプログラミング – Androidアプリ開発
Androidアプリ開発、Kotlin
Androidアプリ開発は、iOSほど技術進歩は早くないので、情報が古すぎるということはないです。
(2014年に私がAndroid開発をしていた時と開発の大枠は変わっていません。)
現在、Androidアプリ開発は、Kotlinという言語が主流になっているので、Kotlinをマスターしておけば大丈夫です。
少し前までは、Javaが主流だったので、Javaで作る的な本も多数ありますが、今からやるならKotlin一択です。
言語について少し触れておくと、KotlinはJavaの上位互換です。
KotlinとJavaはほぼ同じ書き方ができますので、Kotlinをマスターしておけば、Javaも簡単に書けるようになります。
(逆にJavaをマスターすればKotlinは余裕で書けます。)
前置きが長くなりましたが、Androidアプリ開発でオススメの本は、はじめてのAndroidプログラミングです。
(Androidアプリは、Windowsでも開発可能なので、無理にMacを買う必要はありません。)
章ごとに実際に動くアプリを作りながら、学べるのでやっていて楽しいです。
この1冊を終える頃には、合計で8個のアプリが完成しています。
読んでただ学ぶより、実戦形式で作りながら学べるというはモチベーションアップにもなり、挫折しづらいです。
6. Unityの教科書 – Unityゲーム開発
Unityゲーム開発、C#
ゲームを作りたい!という人は、Unityを使えるようになるといいです。
Unityは、ゲームエンジンというゲームを簡単に作れるツールのことです。
Unity上でパーツを配置していくだけでゲームが作れます。
もちろんプログラムを書く必要がありますが、Unityで使う言語は、C#を使います。
C#の書き方は、Javaに似ているので、Javaを知っているとC#も理解しやすいです。
Unityの一番すごいところは、マルチプラットフォームであるということです。
マルチプラットフォームとは、Unityで作ったゲームが、PCでもスマホでもWeb上でも動かせるということです。
任天堂Switchでも動かせます。
通常のアプリ開発では、iOS・Android両方作りたければ、別々に作らなければいけませんが、Unityなら一度作ってしまえば、iOSでもAndroidでもPCでもどこでも動かせちゃいます。
ゲームエンジンという名前ですが、ゲーム以外も作ろうと思えば作れます。
前置きが長くなりましたが、Unityでゲーム開発をしたい人にオススメの本は、Unityの教科書です。
Unityとは何かという説明から、C#の書き方を実際に動くゲームを作りながら学べます。
こちらも動くものが複数作れるので、やっていて非常に楽しいです。
サンプルアプリは、全てスマホ向けアプリです。
しかもゲームの作り方だけでなく、レベルデザインやゲーム開発の流れも知ることができるので、ちゃんとゲーム開発を学びたい人にもオススメです。
内容も分かりやすいので、ゲーム作ったことないという人でも安心して進められます。
7. PythonとKerasによるディープラーニング – Python機械学習
Pythonを使った機械学習
機械学習や人工知能、ディープラーニングといった分野に興味がある人にオススメの1冊は、PythonとKerasによるディープラーニングです。
機械学習自体は、Pythonである必要はないのですが、機械学習を行うには、ライブラリを使います。
そのライブラリが一番豊富なのがPythonのため事実上、機械学習の主流はPythonになっています。
私の会社でもデータサイエンスチームはPythonでやっています。
実際に機械学習をするとなると、Kerasというライブラリを使うことが多いのですが、そのライブラリの使い方も含めて解説されている本なので、これ1冊で機械学習の基礎を理解することができます。
また、Pythonをマスターしておけば、機械学習以外にも様々なことができます。
特にデータ加工や集計、統計分析と相性が良いです。
Python + Jinja2でwebサイトを作ったりもできます。
機械学習や人工知能は、まだま伸びる分野です。
企業もデータサイエンティスト人材を必死に集めようとしている状況なので、身につけておいて損のないスキルです。
(年収も他のエンジニア職より高いです。)
8. スッキリわかるJava入門 – Java
Javaの基礎から実践レベル
Javaの知識が全くない人でも、実践で使えるレベルまで一気に学べる本があります。
スッキリわかるJava入門と実践編です。
2冊あり、それぞれ600ページほどで量が多く見えますが、図も多く登場人物の会話形式で進んでいくので、非常に読みやすいです。
一般的な300ページ前後の書籍と比べても全く読みづらいということはなくスラスラ読めます。
Javaは、大規模開発のプロジェクトならほぼ必須で使われています。
バックエンド側の開発をやってみたい人は、マスターしておいた方がいいです。
私も「メイン言語を一つあげるなら何?」と聞かれたら、Javaと答えます。
実務で4年以上Java開発をしていますが、この2冊を読んでから飛躍的に理解が進みました。
よくある入門書では、本当に基礎の基礎しか触れられておらず、実際の現場ではちょっと物足りないなという感じでしたが、この本の実践編は凄いです。
入門編は、知識が全くない人でも理解できるように基礎の基礎から解説されており、実践編は、実際に現場で使える知識を教えてくれます。
例えば、JVMの制御方法、デザインパターン、チーム開発を効率化する方法、アジャイル開発などが解説されています。
(何言っているか分からないかもしれませんが、実践で使えるスキルということです。)
Javaスキルを身につけて、実践で即戦力を目指したいなら本当にオススメの本です。
実践編が本当に役立つので、やる人は必ず実践編までやってください。
9. デザインパターン入門 – プログラムの設計手法
デザインパターンを身につけて効率よく良いプログラムを書けるようになる
プログラムの書き方には、いくつか決まった型があります。
その型に沿って実装すると、バグが少なかったり、効率よくプログラムを動かせたりします。
その決まった型のことを、デザインパターンといい、有名なデザインパターンは23種類あります。
- シングルトン
- ファクトリーメソッド
- アダプター
などが有名です。
この本では、デザインパターン23種類、全てが解説されています。
知らなくてもプログラムは書けますが、ある程度プログラムを書き慣れてもっと効率よくプログラムを書きたい!となってきたら知っておいた方がいいです。
チーム開発をする人は、このデザインパターンに沿って開発していく場合が多いので、知らないとそもそもプログラム全体の意図がよく分からないということも…
大学の情報系学部の授業で教科書として使われるくらいしっかりとした内容なので、内容は間違いないです。
ただ、完全初心者向けではないのと、Javaを例にして解説されているので、ある程度Javaを理解できないと難しい内容となっています。
オススメの学習法としては、先ほど紹介したJava入門書とこちらを組み合わせて学習すると効率よく理解できます。
もっと良いプログラム書きたい人やチームで開発する人(特にJavaを使うなら)絶対に読んでおきたい1冊です。
10. デザイン教室入門 – デザインについて
デザイン全般の基礎知識
先ほどのデザインパターンは、プログラムの型という意味のデザインでしたが、こちらは一般的に使われる見た目という意味のデザイン入門書です。
Webサービス開発をしたい人は、HTM/CSS/JavaScriptを学習していくことになりますが、やっていて結構悩むのがデザイン部分です。
Webサイトの80%はデザインで決まります。
あなたもサイトを見て、ちょっとでも見辛かったら内容を確認せず、ブラウザバックした経験ありませんか?
逆にデザインが優れていれば多少中身のないサイトでも人は見てくれます。
それくらいデザインが与える影響は大きいです。
プログラミングとはちょっと趣旨の違った1冊ですが、Webサービス開発をしていくなら、読んでおいて損はないです。
本の内容としては、色使い、フォントの選び方、写真や図形の配置など、Webに限らず、プレゼン資料、企画書、ポスター作りなどの応用の効く内容となっています。
11. 情報検索の基礎 – 検索アルゴリズム
検索アルゴリズムの知識
検索の仕組み、アルゴリズムについて学びたい人(いるか分かりませんが)、検索について学べる本を載せておきます。
最初に言っておきますが、これはガチガチの数学や確率の知識が求められます。
知識がない人がちょっと読んで検索について理解できるような内容ではないのでご注意ください。
(私が、検索エンジンの開発を行っている人間なので、個人的に紹介したくて載せました。)
もし、検索アルゴリズムについて数学的に理解したい!という変態的な人がいればオススメします。
検索ってこういう仕組みなんだということが理解できます。
検索エンジニアなら必ずと言っていいほどみんな読んでいる名著です。
そして、1万円もするので結構お高いですが、本棚に置いておくと満足感が凄いです。(重要)
あとは、寝る前に読むとよく眠れるので、睡眠薬としてどうぞ。
オススメのプログラミング技術書 まとめ
今回は、分野別にオススメのプログラミング技術書を紹介しました。
まだまだ紹介できる本はあるので、今後も追加していこうと思います。
もし、迷っている人がいれば自分の教えられる範囲で相談に乗りますので、コメントかTwitterでよろしくお願いします!
エンジニア向けオススメの記事
> 独学で最速で稼げるエンジニアになる方法
> エンジニアになって不労所得を目指す方法
> 絶対にやってはいけない副業
コメント