プログラミングを始めて2年になります。まだまだ駆け出しエンジニアであるからこそわかる「これは最初に読みたかった!最初に読んでおいて良かった!」と思う本を紹介します。
プログラミングを始めて少し経つと、コードを書く以外にも知っておいた方がいいことがあるんじゃないかと不安になります。
「この書き方っていい書き方なのか?」と思うこともありました。こんな不安を感じたからこそ、今だからわかる学習しておくべきことと、おすすめの書籍を紹介していきます
この記事がおすすめの方
- web制作でなく、webアプリの開発がしたい
- 少しずつコードがかけるようになってきて次に学ぶことに悩んでいる
- コードを書く以外の知識も身に付けたい
ランキング結果
まずは結論から!
第1位:リーダブルコード
「そもそもわかりやすいコードと何か」が理解でき、実践すればするほど、開発速度が上がり、みんなが幸せになる
第2位:新しいLinuxの教科書
サーバーのOSはLinux。確実に利用するので知っておきたい。用語の解説や必要最低限のコマンドがわかりやすく説明されている
第3位:図解でよくわかる ネットワークの重要用語解説
インフラの裏側を知っているかいないかは大違い。わかりやすいイラストで、眠くならなずにサクサク読める。俯瞰的に全体像を把握することができる
それでは詳しく見ていきましょう!!
第1位 リーダブルコード
リーダブルコードは「きれいなコードを書くことができるようになる本」です。就職先の上司に勧められて購入した書籍です。この本こそ最初に読みたい!の代表といえます。
そもそも、なぜきれいなコードを書かなければいけないのでしょうか。
きれいなコードを書いたほうがいい理由は以下の3点です。
- 後からの参加者が内容を理解しやすくするため
- 修正の影響範囲を極力小さくするため
- サービスの改修速度が速くなるため
きたないコードの方が初速は速く作れるものの、アプリの規模が大きくなればなるほど足を引っ張るようになり、改修速度が遅くなってバグの温床にもなります。
こうしたことを起こさないようにするためにも、きれいなコードとは何かを知っておくことは非常に重要になります。
未経験転職や開発現場との面談の際には「コードを書く上で気をつけていることは?」と聞かれることが多いです。企業もきれいなコードを重要視していることがわかります。
「きれいなコードとは何か」を自分の中で落とし込めるようになるのがリーダブルコードです。きれいなコードを語り、実践することができれば、開発現場で信頼されるのはもちろん、就職する際にも役に立ちます。
わかりやすい命名が理解できる
リーダブルコードは「そもそもわかりやすいってどういうことか?」という問いからスタートします。
そして、具体的な手法を教えてくれます。例えば、メソッドの命名の仕方があります。インターネットから取得する場合、getPage(url)ではgetが抽象的で、何から取得するのかわかりにくいので、fetchPage(url)やdownloadPage(url)のほうがわかりやすい、といった具合です。
命名はエンジニアなら常に悩むところなので、手元に置いていつでも振り替えれるようにすると安心です。
わかりやすいコメントが理解できる
コメントについても教えてくれます。
「そもそもコメントすべきことは何か」からスタートします。つまり、無駄なコメントは極力少なくしつつ本質的な部分だけコメントに残すということです。
基本は命名でわかりやすくします。新しく参入した人が疑問に思うとことにコメントを付けます。一見不要に思える処理をしている背景や結果を残すことで、他の人にも意味が伝わるようになります。
このあたりを具体例を交えて丁寧に解説してある書籍なので「コメントしようかな?」と迷ったときに、そもそもコードを直すべきなのか、コメントを付けるべきなのか判断できるようになります。
第2位 新しいLinuxの教科書
新しいLinuxの教科書は「Linuxとは何かを知り、実際にコマンドを使いながら学ぶことができる」書籍です。
なぜLinuxを学ぶ必要があるのでしょうか。プログラムを書くだけなら、優先して学ぶことではない気もします。
しかし、エンジニアの仕事はプログラムを書くことだけではなく、開発環境や本番環境の運用や保守もあります。このときに必要な知識の基礎がLinuxです。
サーバー用に利用されているOSのほとんどがLinuxです。つまりLinuxとエンジニアは切っても切れない関係といっても過言ではありません。
Linuxの用語がわかりやすく説明され、最低限知っておきたいコマンドを理解できる
カーネルとディストリビューションの違いやシェルとは何かと聞かれた時に即座に答えられるでしょうか。少しでも自信がないならこの書籍を買う価値があります。
このあたりの用語は前提として知っていないとエンジニアとして会話が成り立たなくなる可能性があるからです。
本書籍はこうした基本用語をわかりやすく説明しています。
コマンドでは、権限関係、スーパーユーザー、PATHを通す、bashの設定ファイルが丁寧に説明されていてわかりやすいです。この辺りは実務で必ず遭遇するので知っておきたいです。
例えば、実務では権限エラーがよく発生します。ディレクトリやファイルにアクセスする権利がなくてエラーになってしまうケースです。
本書籍で学べば、該当するディレクトリの権限を確認して適切な権限に変更することができるようになります。
シェルスクリプトを理解できるようになる
シェルスクリプトとはコマンドで行う操作を複数まとめて一括で実行するものです。
環境構築をするときなど、最初は誰かに教わったコマンドを理解せずにとりあえず叩きますよね。よくわからないままでいては、自分で新たにつくることはできませんし、アプリの状態が変わった時に変更することもできません。
この書籍ではシェルスクリプトの作り方まで学べますので、作成されたシェルスクリプトの内容を理解できるようになります。
内容が理解できていれば、追加で必要な操作が出てきた時に追加することができ、コマンド時にエラーが発生しても落ち着いて対処できるようになります。
第3位 図解でよくわかる ネットワークの重要用語解説
ネットワークの重要用語解説は「ネットワークの基礎知識を一番シンプルにわかりやすく学べる本」です。
ネットワーク周りの知識もコードを書く上ではそこまで重要ではありません。
しかし、エンジニアはコードを書くだけではなく、開発環境や本番環境の運用や保守も必要です。VPNを利用して自宅からリモートで会社のシステムを利用することもあります。
AWSなどのクラウドサービスの登場で、オンプレミスでサーバーをたてることはほとんどなくなりました。エンジニアがインフラを意識しないでいい時代に入りつつあります。
しかしながら裏で行われていることを知っていて利用しているのと、何も知らずに利用しているのでは大きな差があると思います。正直このあたりが強いエンジニアは違うなと思います。
AWSでサーバーをたてるときも、インターネットの基礎知識があったので、EC2やインターネットゲートウェイ、セキュリティグループなどの仕組みが理解しやすかったです。
イラスト付きでイメージしやすい
インターネットの基礎知識は読んでいると眠くなるんですよね。内容が正確で細かいほどその傾向は強い気がします。
この書籍の最大の長所は、親しみやすいイラストと多すぎず、少なすぎない分量です。最初にネットワークの全体を俯瞰的に把握するにはもってこいです。
他の書籍より見やすく、初めてでもとっつきやすいところが良かったです。だからといって内容に不足があるかといえば、そうでもなく、ポイントをわかりやすく説明してくれています。
もう少し詳しい内容が知りたくなったときは、別の書籍で学習するといいと思います。
IP、サブネットマスク、ファイアウォール、プロキシサーバー、VPN。この辺りの語句を聞いたことはあるけどなんかうまく説明できない。そんな方は、この書籍を手に取ってみると挫折することなく理解が進むと思います。
辞書的に利用できる
ネットワークの知識をひたすら読むのはあまりオススメできません。
一度、俯瞰的にさらっと目を通したあとは、辞書的に使うのがおすすめです。あれってなんだっけ?とわかる程度に目を通しておき、詳しく知りたい状況になったら再度戻ってくるイメージです。
索引から検索できるので、必要に応じて何度も戻って確認すると理解が深まります。
まとめ
最後にざっくりとまとめていきます!
「そもそもわかりやすいコードと何か」が理解でき、実践すればするほど、開発速度が上がり、みんなが幸せになる第2位:新しいLinuxの教科書
サーバーのOSはLinux。確実に利用するので知っておきたい。用語の解説や必要最低限のコマンドがわかりやすく説明されている第3位:図解でよくわかる ネットワークの重要用語解説
インフラの裏側を知っているかいないかは大違い。わかりやすいイラストで、眠くならなずにサクサク読める。俯瞰的に全体像を把握することができる
プログラミング学習は終わりのない旅です。次から次へとわからないことがでてきます。
SQL、データベース設計、オブジェクト指向、AWS、Dockerなど学習したい分野は多々ありますが、まずはこの3つをこなしておいた方が、後々幅広い視野でサービスを捉えられるのかなと思います。
このあたりのおすすめ書籍も紹介できればいいなと思っています。少しでもプログラミング学習の参考になると嬉しいです!ではまた!
コメント