Laravel・PHP入門

未経験Ruby->PHPer初心者

【まとめ】2017年プログラミング初心者による初心者のためのおすすめ本9冊

読む順番も含めて、未経験や初心者の方に勧めたい本のまとめ。

自分が課題図書として提示された本や、周りのエンジニアの方と話していて
話に上がる本と記事をまとめました。

環境構築〜MVCフレームワーク
簡単なWebアプリケーションを作るくらいまでは
一旦本を読まずにネットで情報収集をして
(時間を短縮したい場合は
Udemyやドットインストール、paizaなどで
2000円くらいで講座購入がおすすめ)
面白ければより実践・体系的に学ぶために本などに手を出すことをオススメします。
適性や意志の強さなどにより持続するかしないかを、
時間・金銭的にもコストをかけず確認できるためです。

その後はおそらく本を読んだ方がスピードが上がる。
①〜⑨は読み返しではなく、速読だとしても初めて読む順に合わせて記載します。

おすすめの本9冊

①リーダブルコード

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

個人で勉強しているときには考え足らずだった箇所ばかりで
ソースコードは今の自分が読むものではなく、
他人もしくは数ヶ月後の自分が読むものであることを強く認識し、
その上でどのように書けば良いのかのプラクティスまで
提供してくれる本です。

オブジェクト指向でなぜ作るのか

オブジェクト指向でなぜつくるのか 第2版

オブジェクト指向でなぜつくるのか 第2版

これは最近読みましたが、もっと早く読みたかった!!と思う良書です。感動しました。
クラス、継承、ポリモーフィズムインスタンス化などあまり理解せずに
なんとなく実施していたことをなぜ、どの場所で、どのように実装すべきか、
がわかりやすく解説されています。
オブジェクト指向難しいと挫折した人、
クラスとかインスタンス化とかよくわからないけどとりあえず書いてる
という方に特におすすめです。

③入門Git

入門Git

入門Git

今のIT業界では欠かせないGit。
必要最低限も、初心者も、実際に実践しながら読めます。
初心者や未経験の人で課題が出された場合、
Gitを利用して提出することも多々あります。
時間がなければ一度速読して、
自分に必要な箇所だけ手を動かして実践すれば良いのではないでしょうか。

④チーム開発実践入門

チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)

チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)

飛び抜けて驚く内容が書いている、というよりは
当たり前のごとくチーム開発で必要な内容を、今の自分は全然できないんだなと思いながら
反省するチェックリストのような形で読んでました。
読みやすいので、これも速読して、実際に実装して、
もう一度読み直して納得すると身につきそう。

⑤パーフェクトPHP

パーフェクトPHP (PERFECT SERIES 3)

パーフェクトPHP (PERFECT SERIES 3)

自分の身の周りのPHPerの方ほとんどに勧められたように思います。
ただ、全部熟読するのは正直重かった。。。
一度速読して、どこに何が記載されているのか認識した上で
実践時にもう一度読むなどのやり方で私は読んでいました。

JavaScript本格入門

パーフェクトPHPと同様で、
JavaScriptの経験者には必ず勧められました。正直初心者には難しい部分も多かった。
一度ドットインストールでJavaScriptで3つくらい動くものを作りながら、
なぜそう書くのか、どういうことをしているのかを理解するために読むなどをすると
背景や理由がしっかり記載されているので、すごく腑に落ちます。
ES2015の書き方もあるのでおすすめ!

⑦基礎からのMySQL

基礎からのMySQL 第3版 (基礎からシリーズ)

基礎からのMySQL 第3版 (基礎からシリーズ)

こちらも全部を一気に読むのは少しヘビーなので
速読してそのあとは章ごとに辞書がわりに用いてました。
MySQLについては正直ネットでの検索より、
本の方が早くて分かりやすかった気がする。不思議。

⑧プロになるためのWeb技術入門

「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか

「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか

なぜ私たちは今自分のPCのブラウザでこれらの画面が表示、動作しているのか
全部は理解できなくても、なんとなくまず体系を知るのにすごく良書だと思いました。
今読み直したい。

⑨Webを支える技術

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

実は未経験の時に勧められて、自分の知識不足で一度挫折していました。笑
なぜ記載したかというと、ベテランの方から勧められる率がものすごく高いから。
歴史を追って背景や理由を説明してくれているので、しっかり読めればとても納得しやすい本。


いろんな本がありましたが、どれも本当に勉強になりました。。。
課題図書とおすすめ教えてくださった諸先輩がたありがとうございました。
このあとはとりあえずプリンシプルオブプログラミングと、
読み直したい本の読み直しをする予定です。

qiita.com

この記事にもあるように、学習領域を狭めることも大事ですよね、、、悩ましい、、、!


ついでに

(個人的に)買わなくてもなんとかなった本

フレームワーク(Laravel)の本

ほとんど読んでいたのは公式リファレンス、Laracastなどでした。
体系的に学ぶには良いかもしれませんが、記載されているソースコード
実践的というよりは初心者が動かすためのものなので、(例えばControllerが分厚いなど)
ドットインストールで十分だった気がします。

環境が違う本

これは実務の場合に限りますが、エンジニアになる前に買っていたPHPの本は、
自分の環境と異なっており(MAMP使用など)、全く読みませんでした。
自分の環境をちゃんと把握せず購入した自分がよくなかったです。
初心者の方は実務の前に必ず環境を細かく確認した上で買うなら買いましょう。
バージョンに大きく左右される場合も少なくない。
(Laravelなら5.2と5.5はかなり違うし、
Railsも4系と5系、Pythonも2系と3系がかなり違うように)

自分の上長や会社の考えに沿っていない本

実装の仕方はかなり人により様々。
つまりはGitのプルリクに対するコメントや指摘も様々です。
マネジメント、マネジメントされる側双方のコストを減らすため
できれば自分の上長予定の方などからおすすめの本5冊くらい教えてもらいましょう。


オブジェクト指向でなぜつくるのか、を読んだときは本気で感動しました。
ちなみに森岡さんのこの本を読んだときと同じくらい感動しました。

考え方で一番好きな本。確率思考の戦略論もおすすめ。

以上、初心者による初心者のためのおすすめ本でした。
少しでも未経験や初心者のエンジニアの人がエンジニアになれますように!