見出し画像

プログラミング独学 - Don't think. Read.

むらやまです。大阪でプログラムを書いたり、プログラミングの講義をしたりしています。

忙しかった春先の案件も終わり、夏休みも終わり。今は自宅でゆっくりと仕事を再開しています。週の大半は自宅のパソコンの前で文章を書いたり、コードを書いたり、苦手な動画編集をしたり。仕事のプログラミング講義も週1回程度。最近はプライベートなプログラミングの個別レッスンも再開し始めたところです。

それで久しぶりにnoteを書いています。

このnoteのコンセプトは「プログラミング学習」とか「まなび」とか、、でしたっけ。。すこし期間が空いてしまいましたが、そういうものをぼんやりと考えています。

今日は仕事をしていて、プログラミングを独学できる人と、そうでない人の行動パターンの違いに気づいたので、その点をまとめてみようと思います。

プログラミング独学のできる人

先日、オンラインでプログラミングの個別レッスンをしていると、プログラムの書き間違いでちょっとしたエラーが発生しました。例えるなら次のようなコードです。

スクリーンショット 2021-08-28 17.26.34

エラーの原因はプログラムの3行目。呼び出したい関数名の記述ミス(正しくはarray_sum)。習い始めの頃にはよくあるトラブルです。

このようなエラーに遭遇したときに、学習者はどのように対処するのか。Zoomの画面越しにぼんやりと観ていたのですが、その方はブツブツとエラーメッセージを読みながら、コードを確認して書き間違いに気づいて、プログラムを修正することができました。

プログラミング学習時のよくある日常の一コマなんですが、ここにプログラミング独学の秘訣みたいなのがあるのでは?と気づきました。

エラーに遭遇したときの行動パターンは2つに分かれる

さきほどのエラーのように、プログラムが期待どおりに動作しないとき、学習者の行動は大きく2つのパターンに分かれます。ちょっと語っちゃうと、これまで10年以上、様々な方のプログラミングを学ぶ様子を観てきましたが、ここでの2つの行動パターンの違いがプログラミング習得のスピードに影響を及ぼすように思うのです。

それで、エラーに遭遇したとき、人はどのような行動をとるのか。

1つ目の行動パターンは「すぐにWHY(原因)を考える」です。

エラーが出たのだから原因を考えるのは当たり前じゃないの?って気もしますが、ちょっと違うんです。補足するとこのパターンに陥る人は、エラーに遭遇すると頭の中は「WHY?(なんで?)」で埋まっています。埋め尽くされています。

頭の中が「Why?」で埋まっている状況。このパターンの行動をとる人は、言い方を変えると「自分は正しく書いたのに、なぜ動かないんだい?」という感じで、そこから先に進めなくなってしまいます。

なかやまきんに君が少し出てきました。

話を戻して、この「すぐに原因を考える」タイプの人は、自分の「思考(思い込み)」の上に推測を重ねようとします。「私は正しく書いたのに」という誤った前提(自分の思考)のもと推測を重ねるので、なかなか真の原因を見つけることができずに苦労します。

そんなわけで、この「すぐに原因を考える」タイプの人はプログラミングの独学に苦労します。

それでもう一つの行動パターンです。エラーに遭遇したときどのような行動をとるのか、の2つ目。

こちらがプログラミングの独学に有利な行動パターンです。

2つ目の行動パターンは「エラーメッセージを読む」というものです。

・・・

いや、それも当たり前でしょ。

エラーと遭遇したらエラーメッセージ読むよね、ふつう。

というのはプログラミングのできる人の意見です。プログラミング初学者の多くはエラーに遭遇しても、エラーメッセージ読まないのです。

さきほどの例題のケース(スクショ)だと

Fatal error: Uncaught Error: Call to undefined function array_summ() in /Users/murayama/Desktop/samples/sample.php:3
Stack trace:
#0 {main}
 thrown in /Users/murayama/Desktop/samples/sample.php on line 3

というメッセージがありますが、このメッセージを読むか、読まないか、この差がプログラミングの独学の進捗に大きく影響します。

「エラーメッセージを読む」タイプの人は、エラーに遭遇したときに「すぐに原因を考える」ということはしません。まずはエラーメッセージを読み、状況を理解しようとします。

言い換えれば事実の把握です。エラーメッセージを読み、何が起きているのか事実を把握した後に、ようやく原因を考え始めます。

ちなみに上記のエラーメッセージは「Call to undefined function array_summ」という一文から「未定義の関数array_summを呼び出している」と読み取ることができます。注意深く読めば、ここから「array_summではなくarray_sumだ」と気づくことができます。

それからさきほど

「すぐに原因を考える」タイプの人は、自分の「思考(思い込み)」の上に推測を重ねようとします。

と説明しましたが、「エラーメッセージを読む」タイプの人は「事実」の上に思考を重ねようとします。プログラミングはこの「事実」をベースに考えるというのがとても大事です。推測を始める前提の部分、土台の部分がしっかりとしているので、エラーの真の原因にたどり着けるようになります。

Don't Think. Read.

プログラムのエラーメッセージ。ときには長い文章で出力されることもあるので、学び始めのうちは読み解くのに苦労します。また、ほとんどの場合、英語で表示されるので、英語に苦手意識のある人ほど「エラーメッセージを読まない」傾向にあります。

ですがプログラムを書いていて、エラーに遭遇したとき考えることではなくて、まず行うべきは状況の把握です。そのためにはエラーメッセージの内容を読み解いて、何が起きているのかを理解する必要があります。

そんなわけで Don't think. Read. です。

「考えるな、読め」というのがプログラミング独学のヒントだと考えています。すぐに「どうして?」と考えるよりも、まずは落ち着いてエラーメッセージを読んで内容を理解します。

とはいえ習い始めのうちはエラーに遭遇すると驚いてしまう気持ちもわかるので「自分はどちらのタイプ?」と考えるのではなく、エラーに遭遇しても落ち着いて、一度エラーメッセージを読む習慣を付けていけば大丈夫です。エラーメッセージの読み方にもコツがあるので、これについてはまた別のnoteにまとめてみようと思います。

お読み頂きありがとうございました。

この記事が気に入ったらサポートをしてみませんか?