新人のプログラマに向けて是非読んでほしい書籍をまとめています。
また、新人のみならず、基礎スキルのないプログラマにも有効です。
プログラミングの現場では教育が行き届いてないことが多く、どうしても目先の作業のことだけに集中してしまい、基礎がおろそかになっている人が多いです。
将来を見据え、基礎から身に着けたほうがより付加価値の高い人材になります。
そのために、ぜひ読んでもらいたい本をカテゴリ別に紹介します。
紹介するカテゴリ
- プログラミング全般
- オブジェクト指向
- ネットワーク
- データベース
- テスト
- ソースコード管理
プログラミング全般
リーダブルコード
オライリージャパンから出版されている本で、読みやすいコードを書くためにはどうしたら良いのかが書かれてます。
おそらく新人の方は、動くものが書ければOKという認識かもしれないですが、その認識でNGです。
自分もそうでした。
読みやすいコードを書くにはどうすればいいのかというのは、学校では教わらないかもしれません。しかし、現場に入れば、複数の人と連携してコードを書き、そのコードが正しいのか上司やメンバーからチェック(レビュー)が入ります。その際に、人が読んでわからないコードだと、本当に大丈夫なコードなのか上司は判断できません。また、自分自身でもわかりやすいコードにしておかないとレビューの際に説明できないかもしれません。大丈夫なコードだとわかってもらうためには、わかりやすいコードを書く必要があります。
具体的には、変数名の付け方、関数名の付け方、エラー時のreturn文の位置などに気を使う必要があります。
また、個人で作る場合も、だんだん処理が多くなってきたりして、自分でも何かいてるのかわからない状態に陥ったことはないでしょうか?
そうならないためにも、読みやすいコードを書く意識を付けつつ、プログラミングの勉強を進めてみてはどうでしょうか。
ただ、自分でどうしたら読みやすいコードを書くのかを模索するのは大変なので、この本を読んで読みやすいコードを書くにはどうすべきなのかを学ぶとよいです。
基本的にどんな言語でも通用する内容がかかれてます。薄く内容も用意なので、1日あれば1週読める内容と思います。
また、プログラミング全般の内容が書かれている本では、一番売れている本ではないでしょうか。
読めば次の日から使える内容が多いので即効性も高いです。
新人プログラマにまず初めに読んでもらいたい一冊です。
コードコンプリート上・下
コードを書くためのノウハウがこの本に詰まってます!
かなり分厚いので、全ページを読破する気持ちだとなかなかむつかしいと思うので、まずは流し読みして、自分の興味のあるところだけでも読んでいくといいと思います。
こういった内容は、プログラミング言語の入門書(JavaScriptの入門書とかPythonの入門書とか)では得られないので、この本で身に着けるといいと思います。
※ プログラミング言語を覚えるスピードにもかかわってきます
どのような内容が書かれているのかというと、上巻では、設計に関する内容やリーダブルコードと同様に読みやすいコードを書くためのテクニックなどが体系立てて書かれています。
下巻ではデバッグやテストなど品質管理を中心に書かれています。内容はそれほど難しくないため、リーダブルコードを読み、ある程度プログラミング言語を理解していれば読み進められるかと思います。ここまで設計~テストまで体系立てて学べる書籍はないと思いますので、ぜひ読んでもらいたいです。
オブジェクト指向
ゼロからわかる UML超入門
オブジェクト指向でプログラミングする場合、多くの場合はクラス図やシーケンス図といったUML(プログラムを書くための設計書)を読むことが必須となってきます。そのためにも、UMLを読めるようにする必要があります。
また、オブジェクト指向の設計をする場合は、UMLを書くことができるようになる必要があるため、そのためにも、UMLの読み書きをおさえておきましょう。
UMLとは何ぞやを知るための初めのワンステップとしておすすめする書籍です。
増補改訂版Java言語で学ぶデザインパターン入門
デザインパターンは、オブジェクト指向でよく使われる設計パターンで、プログラマおよびクラス設計などする人は押さえておく必要があります。クラス設計する人は必須ですが、プログラマも、設計図を見たときに、デザインパターンを知っておくことで、どういう設計思想で考えられているのかがわかるようになるので、押さえておくとよいです。
著者は数学ガールでおなじみの、結城 浩さんが書かれた書籍です。
入門書などを多く手掛ける著者ということもあって、わかりやすくデザインパターンについて書かれてます。
。デザインパターンを中心にオブジェクト指向の何がうれしいのかを学んでいくことで、自然とオブジェクト指向が身につくかと思います。デザインパターンが身についたところで、後述するSOLIDやGRASP等の抽象度の高いオブジェクト指向の原則を学んでいくと良いと思います。(いきなり抽象度の高い概念を理解できるとは思えないので)
新装版 リファクタリング―既存のコードを安全に改善する―
そもそもリファクタリングとは「プログラムの外部から見た動作を変えずにソースコードの内部構造を整理すること」といえます。
雰囲気は、なんか動くんだけど、関数の処理がすごく長くてわかり辛かったり、グローバル変数をあちこちで使ってて、何してるかわからない状態のやつを、きれいにわかりやすくするよ、みたいな感じです。
そのリファクタリングの方法について解説されています。
ただ、リファクタリングについて書かれているのですが、リファクタリングは、こうしたらわかりやすくなるということが書いてあるので、リーダブルコードと同様に、どういうコードがベストプラクティスなのかこの本を通じて学ぶことができます。
アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技
アジャイルと書いてますが、アジャイルの手法だけ書かれたものではなく、オブジェクト指向の原則SOLIDに関する解説やパッケージ設計の原則、デザインパターンに関する説明が書かれた書籍です。デザインパターンよりもより抽象化された内容を含みますので、デザインパターンを学んだあとに読むとより理解が深まると思います。
ネットワーク
3分間ネットワーク基礎講座
ネットワークについての基礎知識を学ぶことができる本です。
博士とネット君の対話で学んでいくスタイルの内容で、Webで公開されている内容が書籍化されたものになります。まずはこの本で基礎を学んだあと、実際に学習していきたい言語でHTTPやTCP/IPを使用したプログラムを組んでみることをオススメします。
データべース
SQL 第2版 ゼロからはじめるデータベース操作
リレーショナルデータべースを学ぶにあたり、SQLは必須です。
SQLを学ぶにあたって、一番わかりやすいと思ったのがこの本です。
この本をやっておけば、色々なデータベース(Oracle,SQL Server, MySQL等)で使えるSQLを学ぶことができます。(データベース関連の書籍は、ミックさんの書かれた本がどれもわかりやすいです。)
この本でSQLを学んだあと、実際に学習したい言語でデーターベースとやり取りするプログラムを組んでみることをオススメします。
達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ
上記に続いて、ミックさんの書籍です。
この本ではリレーショナルデータベースのテーブル設計等について記載されてます。
なんで正規化するのか、具体的にどうやって設計を進めていくのかわかりやすく書かれてます。
これを見ると、テーブル設計に自信が持てるようになります。
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ
上記にまたまた続いて、ミックさんの書籍です。
この本はSQLのチューニング等について書かれている本で、SQLの基礎を学んだあとに読むとよいです。
テスト
知識ゼロから学ぶソフトウェアテスト
テストは、おそらく新人プログラマに回ってくる可能性の高い工程になると思います。
そのテストについてわかりやすく解説されています。
テストの技法について学んでおくことで、テストをやった時に、なぜこういうテストをしているのか、今自分がやっているテストはこの段階のテストなんだと理解して、進められると思います。
そのためにも、テストについてのスキルをこの本で学ぶとよいです。まずはこの一冊で基礎を学んだあとに、TDDやユニットテストなどについて書かれた書籍を読んでみるのが良いと思います。
ソースコード管理
サルでもわかるGit入門
ソースコード管理のスタンダードといえるGitのスキルは必須といえるでしょう。
プログラム開発は、複数人で通常行い、その書いたコードをGitで管理することが多いです。
そのため、自分で書いたコードをGitに反映したり、ほかの人のコードを取得したりする方法は知っておかないと仕事になりません。そして、Gitは知らない人がすぐ使えるようになるかというとなかなか難しいです。概念を理解できてないと扱えないので、基礎を徹底的に抑えることが大切だと思います。
その、基礎を学ぶために本書をおすすめしています。
紹介しているのはWebで人気がある、サルGitの書籍版です。
Webで学んでもよいですが、書籍としてのほうがよりまとまっているので、お金を少しかけてもいいよって人は買ってもいいと思います。
コメント