さてJavaScriptの勉強の話に入っていきます。
プログラミング教育を受けていない且つプログラミングに苦手意識が強い大人たちに宛てたような文章です。
ごくごく簡単なものですがコードを含むので、JavaScript未経験でちょっと試してみたいという方はJSFiddleというオンラインエディタを使ってみるとよろしいかと思います。
JavaScriptの勉強を始めて最初にやるのは「console.log("Hello world!");」または「alert("Hello world!");」でしょう。Hello worldというのはプログラミングをスタートする際のお決まりの文句です。console.logはコンソールという領域にログを記述するもので、alertはダイアログを表示するものです。
実行して「おお、Hello worldできたぞ」と思ったら、今度は「console.log("こんにちは世界");」とでも書き換えて実行します。すると当然「こんにちは世界」と表示されます。「おお、できたぞ」と思うわけです。
次に変数を勉強することになるでしょう。
var a = "あいうえお";
console.log(a);
でコンソールに「あいうえお」と表示されます。「おお、できたぞ」と思います。今度は別な文字列や数字などでやってみます。
文字列を連結することも覚えるでしょう。
var n = "のらてつ";
console.log("私は" + n + "です");
で「私はのらてつです」と表示されます。「おお、できたぞ」と思います。今度は複数の変数を連結させてみます。
とにかく、何かをやる度に「おお、できたぞ」と感動するわけです。捻りがあるわけでもないのでできるのは当たり前なのですが、当たり前でも「おお、できたぞ」と。
私たちは日々さまざまなことを行い、そして学びますが、「そうなって当然」のものに「おお」と感動するのはなかなか難しいものです。そもそも「これでオッケーなんだ」とはっきり答えを得られるとも限りません。
プログラミングでは正しいか正しくないかが明快です。正しいか、正しくないか、のふたつにひとつなのです。そして個人でやっている分には、正しくなくても誰にも迷惑はかかりません。誰にも怒られません。逆にしょぼいことに喜んでも誰にも笑われません。「1+1=2」という計算と同レベルの超初歩のコードに「おお」と思っても構わないのです。
更に、コードは綺麗でなくともコンピューターが読めれば「正しい」ことになります。ダサくてもいいのです。恥ずかしいなら他人に見せなければいいだけで、コンピューターは「だっさwww」とか言ってきません。変な迂回をすると処理に時間がかかってしまうケースはありますが、大規模なデータを扱わなければ支障が出るほどにはなりません。気づいた時にひとつひとつ直していけばいいのです。
たとえ変なエラーを出しても、コンピューターは「おかしいところがありますよ」と知らせてくれるだけで、「馬鹿だなあ」とか言ってきません。「うまくいくまで手当り次第に試す」という力技でゴリ押ししてもコンピューターが堪忍袋の緒を切らすことはありません。そういう試し方をするとまずい領域というのはありますが、初学者の勉強の過程にはそういうものはそんなにないと思います。(ただしScrapboxのUserScriptとかは気をつけた方が良いです。力技の行使は大事なデータと繋がりがない場所に限るが吉でしょう。)
何をそんなに強調しているかといえば、勉強の敵は他者の評価だという個人的な経験則です。例えば日本人の英語の下手さの何割かは他者の目があることによると思っています。他者に対する背伸びによって成長が促進される部分と、望んでもない評価でやる気を削がれる部分とがあり、それは慎重に天秤にかける必要があります。
勉強の成果をリアルタイムで公開とかすると、腕に覚えのある先輩プログラマーから「なんでそう書くの? こうしたらいいのに」とか言われて「うっ」となることもあるでしょうから、積極的に助言を得たいのでなければひとりでこっそりやっていてもいいと思います。自分のペースに合わない助言は時に負担となります。
もちろん、むしろどんどん言ってもらえた方が近道だしありがたい、という人は公開した方が良いと思います。
私が考える、初学者に於いて最も重要なことは、「おお、できたぞ」という感動です。うまくやれているかとか、よりモダンかとか、無駄がないかとか、そんなことは二の次三の次です。動けばいいのです。もちろん職業プログラマーになるなら別ですが、そういう志のある人はこんな記事は読んでいないでしょう。とにかく動けばいいのです。動かしているうちに勝手にうまくなりますしモダンにもなっていきますし無駄は減っていきます(最短ではないにしても)。とにかく動けばいいのです。そして「動く」ことに感動するのです。それは、そういう言語を誰かが作ってくれたことやコンピューターというものが自分の目の前にあることへの感謝も含めての感動とも言えるでしょう。
そうやってとにかく動けばいいということにして「おお」「おおー」「おお~」と思いながらやった結果、多分自分としてはこれ以上速くならないんじゃないかなという速度でJavaScriptを習得していったと思います。独学なので自分に必要なことだけやっており、学習内容は網羅的ではありませんが、苦手意識をなくすのには十分です。
プログラミングというのは無邪気に楽しんだもの勝ちだと思っています。まだプログラミング二年生の分際ですが、私はそう思います。
このシリーズ記事の概要はこちら→ノートテイキングアプリDIY体験記