HTMLや、CSSや、画像処理や、各種のプログラミングなど、Webサイト制作技術に関連するようなスキルを修得するプロセスについては、基礎から体系的に学習する、というよりは、「実現したいこと」を中心に、それを実現するための技術をつまみ食いしていくことが効果的です。

目的さえあれば知識は後からついてくる

Webに関連した技術は幅広く、文字通り蜘蛛の巣が広がるように発展しています。であるならその学習もまた「実現したいこと」への執着心をベースに、つまみ食いや模倣や試行錯誤を繰り返していくほうが、スキルの修得は早まります。

残念ながら鬼籍に入られましたが、僕が尊敬するプログラマーで、末永政昭という人がいます。この人はまさに天才と呼ぶにふさわしい能力を持ったプログラマーで、ある意味では芸術家に近いと思えるような人です。しかし彼のプログラミング技術は独学で学んだもので、体系的な学習の成果ではありません。

彼はプログラミングの修得について、その著書「JavaScript+CGIハイブリッドスクリプト—Webプログラミングの荒技!」の中で、以下のように述べています。

JavaScript+CGIハイブリッドスクリプト—Webプログラミングの荒技!ひとつの欲しい機能を実現するために、使うプログラミング言語のすべてを学ぶ必要はありません。欲しい機能については執着心があるけれど、ほかの、とりあえず必要のない知識については何の執着心もないので、これを学ぶことは苦痛以外の何ものでもありません。そのときはそのときに、必要な部分だけをつまみ食いしていけば良いのです。

とはいえ、もしかするとひとつの欲しい機能を実現するために、別の知識が必要になることがあるかもしれません。しかしこれは、欲しい機能を実現するために必要な知識であるため、知識を習得するのも、きっとつらいことではないはずです。つまみ食いが1つになるか2つになるか、あるいはもっと多くなるかもしれませんが、その数の違いだけです。

根本的な考え方は、「すべての知識を仕入れてから」ではなく、「そのとき必要な知識を仕入れる」なのです。

彼は「目的さえあれば、知識は後からついてくる」と言うのですが、この考えは実際、僕がHTMLやCSSやSEOなどを修得した考え方そのものであり、たいへん共感する部分です。目的もなく興味もないものを学習し理解するのは難しいものですが、目的や執着心や興味のある対象について学ぶのはとても楽しいものです。

とりあえず手を動かし試行錯誤する

また彼は、試行錯誤についても、独自の見解を持っています。

では実際に、どうすれば欲しい機能が実現できるのでしょうか。まずは、持っている知識だけで試行錯誤してみることです。後々、スキルが上がれば、5行で終わらせることができるかもしれないプログラムを、10行、あるいは15行使って組んでみればよいのです。

これは非常に大切なことで、「とにかくまずやってみる」ことが、知識の蓄積につながり、必ず有益な材料となってきます。その上で、もし、持っている知識だけではどうにもならない場合には、何かを参考にする必要が出てきますが、一番手っ取り早いのは、人の組んだプログラムを参考にすることです。

何よりも、知っている範囲内で「とにかくまずやってみる」ということが重要だと、末永さんは言います。そして、つまずいたら、その時は他人のプログラムを参考にすればよい、と。この、「とにかくまずやってみる」というのは真理だと思います。

結局のところ、プログラミング言語などは道具に過ぎず、最も重要なのは自分の創造性、アイデアです。学習すること自体が目的なのではなく、「実現したいこと」こそが目的ですから、その方法は何でも構いません。

また、それが洗練されたやり方でなかったとしても、とりあえず今はよしとするくらいの気軽さで、とりあえず始めてみればいいのです。どんなことに対するときも、このような考え方でいたいものです。

ルールとマナーを守りながら模倣する

さらに末永さんは、他人のプログラムを参考にするということについて、オープンソースの考え方を披露します。オープンソースでは、コードはすべて公開され、そのコードに他の人が改良を加えた場合、さらにその改良されたコードも公開され、そうやって多数の人々の手を経て、コードは進化していきます。

洗練されたプログラムや、便利なモジュールは、こうして生まれ、育っています。つまり、既存のコードを参考にするということは、先達の知恵を拝借することであり、ルールとマナーを守れるなら、どんどんやればいい、と。

楽しく効率的に新しいスキルを獲得する

想像力やアイデアを大切にし、気軽に第一歩を踏み出し、実現のために必要となる知識を、それが必要となった時に学んでいく、という彼のやり方は、プログラミングだけではなくすべてのスキルについて応用可能なものですし、効果的な学習のコツのようなものだと思います。

JavaScript+CGIハイブリッドスクリプト—Webプログラミングの荒技!」は、プログラミングをこれから始める初心者を対象に書かれた本ですが、そこには、スキルの取得に関する極意に近い考え方が示されています。新しい技術にチャレンジしようとするすべての人におすすめします。