はじめてプログラムを書いた時,はじめてHTMLを書いた時,はじめてWeb制作の仕事をした時のことを思い出しながら、オススメ本を5冊紹介してみる

何冊か初心者向けの本があるので紹介しようと思い、本を読み始めた。

そういえば自分はどういうきっかけでプログラミングを始めたんだろう。どうやってWebの仕事に慣れて行ったんだろう。どうやってHTMLを書いたんだっけ、なんてことを考え始めた。

僕は、はてブやネットで見かける天才の人達と違って、本を読んで興味本位で手を動かしたらできるようになったというタイプではない。プログラミングの始まりは同世代の人達に近いファミリーベーシックだったが、マリオを動かすぐらいしかやってない。その後、パソコンを買ってBASICによるゲームを動かすことは知った。徳間書店の雑誌に書いてある音楽のプログラムを友達と入力したが、何かが間違っていたのか動かなかった。どう見ても間違っていない気はするのだが、問題解決する力はなくて挫折。

高校生になって、X68000を手に入れた。X68000というのはマイナーなパソコンの世界だったので、パッケージソフトを買ってきて済ますという世界ではなく、「欲しいものは自分で作る」という素晴らしい文化の中で、できる人達の恩恵を受け、どっぷりユーザーとしての立場を貫いた。

正確にはお金がないなりに勉強しようと思って、68000CPUの本と、アセンブラの本は買った。両方で1万円ぐらいした記憶がある。

当時は、C言語によるプログラミングは遅いしダサいというマニアの言葉に憧れてアセンブラの道に行ったが、アーキテクチャを全く理解できてない少年がアセンブラを動かしても面白いハズはない。

残念ながらPIOを動かしてLEDを光らせる程度で、心躍られるほど不慣れな少年ではなかった。ゲームの方が楽しいし、何よりパソコン通信にハマってしまった。残念ながら、コンピュータをいじるより、人と話をしている方が好きなのだ。

自分の中で、プログラミングを必要として勉強し始めたのは、大学での研究と、その後の社会人になってからである。特に就職後に最初に配属された製造業の現場で、毎日同じような作業の繰り返しにうんざりしてきて、データの再利用、計算の簡素化のためにプログラムを書いた。
会社に自分のノートPCを持ち込んで作業をしていた。鉄の板を加工するために必要な計算を自動化してたのと、Gコードという最近は3Dプリンタでも使われている制御データを管理するためのツールを書いたりしていた。

プログラミング言語Perlの作者Larry Wallが、プログラマーがもつべき三大美徳として「怠惰、短気、傲慢」をあげているが、新入社員時代の僕はいい感じに怠惰かつ傲慢だったような気がする。会社もまだIT化されていなかったので、うるさい管理ルールを押し付けてくる人はいない。むしろ、ちょうど職場に電子メールが導入されてくる時期だったので、むしろ丁度いいタイミングで遊んでいた。
その後、Webが出始めて、テレビで若かりし頃の堀江さん達が出ているのを見ていて、「これなら自分でもできるんじゃないか?」と興味が出てきて転職した。

長々と書いてしまったが、その頃にプログラムを勉強したり、HTMLを勉強したりしたのがきっかけ。基本的には仕事の中で、自分が必要だと思ったものをゲットしにいくタイプ。

コンピュータの総合芸術であるゲームをいきなり作るのは大変だけど、電子計算機で計算をするプログラムを書くのは簡単ですからね。そういう簡単な課題が身近にあるとプログラミングの基礎にチャレンジする機会が生まれて美味しいです。そういう意味で、仕事の自動化などは格好の機会だったりしますね。

ということで、いきなり雑多にWeb、プログラミング関連の本当の本当の初心者本の紹介をします。僕が高校時代にアセンブラで苦労したみたいな、マニア視点の本は一切紹介しません。

とにかく第一歩を踏み出せる本を紹介します。

いきなりの手前味噌であるが、僕の奥さんが書いた本である。この系統の本は何冊も書いているが初めての単著とのこと。
元々、教育学課卒業で小学校の教員免許を持つ教育のプロを目指していた人なので、なんだかんだ教育的な意味合いの仕事をしているような気がします。この本は初学者にはオススメだと思います。

気合入れて書いてたらページ数が超絶増えたらしいのですが、それに併せてkindleより紙の方が使いやすいに作られているようなので、紙の本がおすすめのようですよ。

突然、オフィスに送っていただいた本なんですが、ドワンゴがやっているN高校の教科書だそうです。基本の基本の部分を学べます。

確かに初めてプログラミングを始める時にはJavaScriptから学ぶのはいいかもしれない。昔、小飼さんもブログでそんなことを書いていた記憶があるけど、ローカルで動くし、ブラウザで検証できるし、環境を選ばない。

あと、console.logでテストコードを書いてJavaScriptの検証をするのも良いと思います。実際、学ぶのわかりやすいと思う。

ござ先輩のPython本

Pythonを知っておくとWebはもちろん、データ解析などのライブラリも充実しているのでいいですね。会社でデータ分析担当の人がこの本を気に入ってたんですが、ちと書評するからと連休に奪ってきましたw

Pythonによるプログラミングの基礎を説明した後で、スクレイピングでWebのデータを取ってくるところやWebサーバを作るところまでナビゲートしてくれます。Webの時代にプログラムを学ぶ目的あるあるであるエロ画像の収集などは、ほぼ、この本を読んで、もうちょっと足りないところを見つけられると実現できるんじゃないかと思います。

こちらはWebディレクションの本

Webディレクションをちゃんと学ばなくてはいけないのは、アウトソースも含めた何人ものメンバーを抱えたり、クライアントワークをする時にお客さんと正しくやりとりをするフェーズかもしれないですね。

勝手知ったる仲のチームだと、そのメンバーのスキル構造で慣れてきてしまうけど、お客さんや作る人達が、いつも変わるとスキル範囲も変わる。その際に、真ん中に立ち、自分が関わる範囲を伸縮自在に変えながら、案件が落ちないようにすること役割がWebディレクターの役割です。

ワガママなプログラマ、ワガママなデザイナー、ワガママなお客さんは自分の立ち位置や手を差し伸べる範囲は変えないですからね。その中で、不確実性の高いWeb制作案件を完成まで導くのは大変。その基本スキルを学ぶことができます。

でも最後は自分で実践して失敗しながら学んでいくんです。その際に、「あぁこれでいいんだ」と言うことを再確認させてくれる一冊になるでしょう。

ちなみにこの本を書いた栄前田は、元同僚ですがモバツイのスマホ版でお手伝ししてもらってます。また、タナカミノルさんも、携帯モバツイの時にお世話になった仲。いろいろお世話になっております。

最後に、今の版は読んでないけど、初心者の入り口本としての不朽の名作。マナ本も紹介しておく。マナ本とは作者の名前を取っています。Javaなんですけどね、とにかく入り口に最適。

この本を読んでもプログラミングができるわけではありません。でも、簡単なJavaのプログラミングはできるようになります。この「曖昧な最初の一歩」を踏める重要性って、みんなあんまりわかってないんですよね。

特にできる人たちは、もうわからない人の気持がわからないので、こういう本をレベルが低いと揶揄したりします。昔、マナ本にはアンチがたくさんいた記憶があります。人気の割にはレベルが低いってことなんでしょうが、そもそもターゲットが違います。

初心者本の使い方は、とにかくさくっと書いてあることは早々に理解した上で、「次への一歩」を目指すことです。技術書をたくさん読んでいるとわかりますが、「その本の美味しいところ」ってのは範囲や濃度が限られています。本というパッケージは、ページ数のMAXが大体決まっていて、その中にどういう濃度で情報を詰め込むか?で、ゴールの到達点が変わります。実力者が言う良本があなたが理解できるとは限りませんし、人生経験が違うのであれば理解できないことをコンプレックスに思う必要はありません。何より難易度は1ページあたりの情報量に比例します。1ページ読んでみて理解できなければ、その本はあなたにとっては情報過多です。

とにかくここで紹介したような本は、是非、本屋さんで手にとってみてください。読みやすいなと思ったら買いです。
一冊終われば、一冊終わったという実績を自信として、次の本に進みましょう。そうすると、次の本は前よりもずっと読みやすくなっているハズです。これを繰り返していけば、そのうち、難解なオライリーの本も読み解けるようになると思います。

【PR】ご意見、感想などは是非、mstdn.fmのローカルタイムラインでお聞かせください