就職して今日からソフトウェア開発者になった人向け。
本気!
どれくらい本気かって言うと会社の新人に強制的に読ませてるくらい本気*1。読破したら偉いとか、興味をもってくれたらうれしいとかじゃない。絶対読め。そして絶対読める。
誰に?
対象とする人
- SIerでWebアプリを作る
- 研究の道具としてプログラミングをしたことはあるがプロダクトを作ったことがない
- 今まで書いたプログラミングのコード量が3000行以下
- 文系出身でプログラミングとか知らない、今日からソフトウェア開発者を目指す
対象としない人
- 新しいことを知るのが好きで、難しい本ほど興奮する
- 既にプログラミング経験していて、プログラミングをの腕を上げる具体的な方法を知りたい
- ソフトウェア開発に興味がない
- 組み込み系とかソーシャル系とか自社サービスな人は、ネットワークとWebアプリは他の本に変えた方がいいかも
5冊の本
読む本は以下の五冊。そこまで重い本は入れてない。全部読むのはそれでも大変。
プログラミング作法 or 達人プログラマー
プログラミングをするってどんなことかまるっと教えてくれる一冊。2冊あるのはどっちでも大差ないのと、宗教上の理由。俺はプログラミング作法派。もっと年上の人はソフトウェア書法派も居る。プログラミング作法の著者のブライアン・カーニハンはC言語を作ったK&RのKの方、これだけで濡れる!さらにプログラミングの勉強するときに最初に書く「hello,world」、あれを始めた人。もう一人の著者ロブ・パイクはGo言語の設計者。
知識ゼロから学ぶ ソフトウェアテスト
先輩プログラマに「できました」って依頼されたプログラムを見せると見せると、ちょっと触られただけでバグを起こすことがあります。テスト不足です。プログラムが思った通りに作れているか「テスト」をして確認しましょう。テストとは何か?どうすればいい?
いちばんやさしいネットワークの本
LANケーブルを指すとパソコンがインターネットに繋がることは知っている?その裏で何がどう動いているか知っている?わからないときに読む。Webアプリケーションはネットワークを使います。バグの原因がネットワークに起因してることも。自分が書いたプログラムのバグなのか、ネットワークが原因なのか切り分けるには、ネットワークを知らなくてはいけません。
これだけは知っておきたい Webアプリケーションの常識
Webアプリケーションを勉強をするための勉強。Webアプリケーションを作る際に知っていると良い用語を一通り教えてくれる。用語を知らないと質問できない、ぐぐれない、本も読めない。とりあえずプログラマーの言葉を使えるようになろう。
読み方
もうここは読み飛ばしていいけど。読み方のアドバイス
一定期間(たとえば二か月)内に読むと決める。
どうせ一回読んで全部理解するなんて無理。期限を決めて8割理解することを目指す。これらの本以外にも勉強しなきゃいけないことはいくらでもある。
読んだあとはレポートにまとめる。
レポートじゃなくてもいいけど、技術書を読むときは目的意識を持って読んだ方が効率よく読める。「○○について知ろう」とか、「○○って書いてあるはずだから確かめる」とかでもよい。
レポートの章構成はこんな。
- 要約(150文字)
- 面白かった章とその理由(400文字)
- 理解できなかった章とその理由(200文字)
- 仕事に活かせそうな知識、活かせそうな状況と活かし方(400文字)
さあ、お前もスーパープログラマーになるんだ!
追記
- 2年目向けの本もまとめました。2年目プログラマにおススメする5冊
- レポートの書き方を詳しく書きました。新人エンジニアにレポートを書かせて技術書の読み方を伝える。
*1:もっと趣味に走った、読んで欲しい、読んだらきっと新しい発見とか楽しいとことかあるだろうなって本はいっぱいある。でも、ここでは取り上げない。