以前
プログラミングに数学の知識は必要かというトピックを書いたが,今回は英語について.プログラミングに英語の能力は必要かという話について取り上げる.
以前「数学ができないからプログラミングに苦手意識を持つ人が多い」という話を書いたが,では数学が(少なからず)できる人たちはというと「英語ができないことが多い」というケースに遭遇する.
これは僕の大学がいわゆる数学受験や英語受験といった入試方法があることも関係しているのかも知れないが,割合一般に言えることだと思う.
ちなみに,ここでいう「できる」「できない」の基準はかなり低いレベルで,例えば英語が「できる」というのは高校レベルの読み書きができるレベルで「できない」というのは全く読めないか,そもそも読もうとしないレベルである.
数学についても「できる」というのは高校で理系コースを取っていればがんばって勉強していなくても十分なレベルで「できない」というのは算数レベルはともかく,数学レベルの論理立てた証明などが理解できないという人たちである.
# ちなみに僕は昔は数学が「できて」英語が「できない」グループに属していた
さて,こうした数学ができて英語ができないグループの人たちがプログラミングでつまずくのはどこかというと,コンパイルエラーなどのエラーメッセージなのである.
最近は日本語のエラーメッセージを出力するプログラムも多いが,基本的にはコンパイラのエラーメッセージなどは英語が標準である(日本語のエラーメッセージについては書きたいこともあるのだが,それはまた別の機会に).
なので,プログラムを書いていると意外と英語に触れる機会は多い.
そして,こうした(自称)英語できないグループの人たちの傾向として「英語のエラーメッセージを読もうとしない」ことがある.それがたとえどんなに平易な文章だったとしても,である.
例えば,「Command not found.(コマンドが見つからない)」や「File does not exist.(ファイルが存在しない)」などは単語の意味さえ分かれば呼んでも良さそうなものなのだが「動きません」と言われて見に行くと,割とこういった単純なメッセージを読まずに投げ出していることが多い.
なぜ自分でメッセージを読まないのかを昔の僕を思い出しつつ考えてみると,理由が分かった.
英語できないグループの人というのは,英語のメッセージを文章として見るのではなくただの「記号」としてしか見ておらず,そもそも眼中に入っていないのである.これは英語が読めないからとか,苦手だからとかそういう話ではなく,単純に視界に入っていないのだ.
これは,例えば普段PCを使っていて何度も見るエラーメッセージの処理をするときに似ている.
昔のWindows 9x系では「このプログラムは不正な処理を行ったため強制終了されます」といってプログラムがクラッシュすることが多かったのだが,このエラーメッセージをいちいち読んでいる人はいなかっただろう.単にエラーのウィンドウが出たら「ああ,またかよ」と思いながらウィンドウを閉じていたように思う.
ちょっと話が脱線したが結局どういう事なのかというと,こういった人たちに大切なのは,まずこうしたエラーメッセージの存在に気づかせてあげることと,意外と読める部分もあるのだということを理解してもらうことだと思う.
実際,僕がプログラミングを教えるときも,読める部分だけでも良いのでエラーメッセージを読んでもらい,それがどういう意味なのかを考えてもらうようにしている.
そして,エラーメッセージを元に問題を解決するという手順を何回か繰り返していく内に,自然とエラーメッセージを無視しなくなっていくのである.
もちろん,知らない単語や分からない文章の場合は質問するように伝えてあるのだが,ほとんどの場合自力解決してしまう.これは(自称)英語ができないグループの人たちも同様で,実は今までは読もうとしなかっただけで,読もうと思えばちゃんと読める人たちだったわけである.
そんなわけで,英語ができないとエラーメッセージを無視している人や,そういった人たちにプログラミングを教えている人は,まずはエラーメッセージを視界に入れて,読むための努力をしてみるのが良いのではないだろうか.