2012年1月16日月曜日

^.*基礎文法最速マスター$は役立たない

このエントリーをはてなブックマークに追加
Pocket

プログラマから見ると、不思議なウェブページがある。プログラミング言語の駄文チュートリアルと、そのリンク集だ(プログラミング言語「基礎文法最速マスター」ランキングはてな的プログラミング言語人気ランキング)。

内容は決まっていて、各種プログラミング言語の文法が大雑把に説明してある。しかしリファレンスをのような、網羅的な説明にはなっていない。学習用に具体例を説明してあるわけでもなく、これを読んで何かを得る人物がいるのかが分からない。

不思議とソーシャル・ブックマークで人気になっており、1000を越すはてなブックマークが付いていたりする。さらに不思議な事に、その駄文チュートリアルのリンク集に1000を越すはてなブックマークが付いている。

1. ^.*基礎文法最速マスター$に存在価値は無い

駄文と言いきれる理由は、プログラミング言語ができない人(以下、未熟練者)が読んでも理解できそうにないからだ。例えば駄文チュートリアルの説明では「変数」が説明なしに使われるが、未熟練者に見せたら「変数って何?」と聞かれるのは間違いない。

プログラミング言語を覚えるには、開発環境を整備し、ソースコードを入力して実行し、その意味を理解する事が最低限必要だ。アプリケーションを公開するのであれば、実行環境にあわせたプログラミングも必要になる。単純そうで、本質的には単純なのだが、現在では意外に覚える事は多くある。分量的にも^.*基礎文法最速マスター$は役立ちそうにない。

慣れてくればサンプル・コードやリファレンスを見ながら簡単な実装を行う事で全体像がつかめるようになる(関連記事:巡回セールスマン問題で、Qtの使い勝手を体感してみた)。しかし、そのときには中途半端な文法の説明は不要だ。

2. 異なるプログラミング言語のページの羅列に意味は無い

利用価値の低いページのリンク集は、まとめられたページ間の関連程度も低い。つまり、何のまとめにもなっていない。

D言語とPHPを同時に覚える必要はない。JavaScriptとEmacs Lispを同時に使う人もいるであろうが、数は少ないはずだ。Verilog-HDLとかほとんど関係ないであろう。プログラミング言語と言うつながりはあるものの、想定される利用者が無い世界になっている。

3. 駄文まとめの社会学的なループ構造

どういう人がブックマークしているのか謎であったのだが、はてな匿名ダイアリーに興味深い説明があった。

それによると、プログラミング言語を覚えたい一定の数の人々がいるが、彼らは学習を行わない。そういう人々に「○○言語基礎文法最速マスター」が流行するらしい。これら未熟練者が掲示板でディスカッションを行うときに、「○○言語基礎文法最速マスター」が大量に貼り付けられて、そのリンク集(まとめページ)が生産されるようだ。そして、その再生産ページに大量にソーシャル・ブックマークがつく傾向がある。

プログラミング言語の学習にならないので、未熟練者の人口は減少することがない。つまり永久に駄文まとめが生成されるループ構造がそこにあるらしい。

4. ループ構造から脱出してプログラマになる方法

この負の連鎖から脱出してプログラマになるのは簡単だ。入門本など山のようにあるし、オンライン・チュートリアルがある言語も多い。それらを教材にせっせと学習をすれば良い。「○○言語基礎文法最速マスター」に書かれている知識を得るだけなら「エラトステネスのふるい」や「ニュートン・ラフソン法」等の実装をすればすぐに得ることができる。

最初から未熟練者には大きなアプリケーションを書こうとして失敗する人もいるので、練習用の典型的なコードを書く必要はあるであろう。そして、それが思いつかない人のために教材がある。それらの入門書は、定価で買っても数千円、中古で買うと数百円からあるので、学習時間と比較すれば高コストな投資でもない。

Write first, think later! - 負の連鎖にいると自覚している人は、とにかく一歩、踏み出してみることをお勧めする(関連記事:職業プログラマに必要な10の知識)。

0 コメント:

コメントを投稿