30歳からのプログラミング

30歳無職から独学でプログラミングを開始した人間の記録。

『Webプログラミングが面白いほどわかる本 環境構築からWebサービスの作成まで、はじめからていねいに』を読んだ

N高等学校のプログラミング学習教材の一部を書籍化したもの。
N高のプログラミングコースがすごいというのは聞いていたし、「Webアプリケーションフレームワークを学ぶ際にそのチュートリアルでやろうとしている操作や背景にある技術がわかる本」という切り口にも興味を持ったので、読んでみた。

www.kadokawa.co.jp

400ページ以上あるが全ページフルカラーであることに、まず驚いた。
カラフルであり1ページあたりの情報量も少ないので、技術書というより通信教育のテキストのような雰囲気がある。
内容も、技術について掘り下げて説明していくことより、とにかく読み手に伝えること、分かってもらうことに力点を置いている印象を受けた。いい意味で割り切ってある。

扱う題材も広く浅くという感じで、プログラミングをしていく上で押さえておくべき知識を網羅的に紹介してある。
簡単なコマンドラインの操作から始まり、vimシェルスクリプト、ネットワークの基礎やサーバーとクライアントという概念、GitとGitHub、などを学んでいく。

後半ではNode.jsを使ってプログラミングをしていくが、プログラミング言語の文法などにはほとんど触れない。
登場するコードについては丁寧に説明してあるが、それだけであり、何らかのプログラミング言語について学びたいと思って本書を読むと、期待を裏切られると思う。

だが言語についての情報はネットでいくらでも身につけられるし、入門書も山程ある。必要に応じて自分で調べることも難しくない。
プログラミング入門者がまず身につけるべきなのは、本書が教えてくれるような「ウェブプログラミングの全体像」だと思う。

一つ一つについて深掘りしているわけではないのだが、そもそも存在や概要を知らなければ自分で調べることも出来ないのだから、まずは取っ掛かりを掴むことが大切だ。まずは概要を知って、あとは必要に応じて自分で調べていけばいい。
本書を読むことで、そのための土台を得られると思う。

一貫して「実際に手を動かす」ことを重視しているのも素晴らしい。
曖昧な説明や「あとで自分で試してみてください」で逃げず、動くものを作るためのサンプルや手順を必ず示してくれる。

些細なことであっても、説明だけで終わらせることがほとんどない。
実際に動くものを作れるというのはとても大切で、これがないとイメージしにくい。

ネットワークの説明では、nctelnetといったコマンドを使って実際に通信を体験できる。

アルゴリズムの変更によるパフォーマンスの改善も、簡単にではあるが触れられている。実際にコードを書いて、実際に計測して、結果を見せている。
本書の内容だけでアルゴリズムへの理解が深まったり、パフォーマンスに関するテクニックが身に付くわけではない。だが、同じ機能でも書き方によってパフォーマンスが大きく変わるということを実際に体験できることが、重要なのだ。

そしてその説明も、非常に分かりやすい。
技術書では「これくらい分かるでしょ」で説明やコードを省略されることがよくあるのだが、本書ではそのようなことは一切なく、必要な操作をしつこいくらい丁寧に説明してくれる。

最初に仮想環境にUbuntuをインストールし、それを実行環境にするので、誰でも同じ環境で本書の内容を実践していけるようになっている。

ネットのハウツー記事でプログラミングを触ってみて、ちゃんと勉強してみようかなと思った人が最初に読むべき本だと思う。
ものすごく丁寧に、ウェブプログラミングの世界に入門させてくれる。門をくぐった後は、自分で好きな道を進んでいけばいい。