プログラミングとは何か?
その本質は「作文」と「翻訳」である。
コンピュータ(またはそれに類するもの)に対して自分の思い通りに動くよう命令を下すためには、必ずこの二つのステップがある。
まず、母語(たとえば日本語)で指令を考え、それをコンピュータが理解できる言葉に翻訳する。
したがって、母語を使いこなせない人間は一流のプログラマーになることはできない。
母語を使いこなすことは非常に重要で、みんなができていると思い込んでいるが実際にはできていないことが大半である。
母語できちんとした考えを記述できないと、それをプログラムに翻訳してもうまく動かない。
したがって、僕の会社では、面接時に必ず、日本語で説明したことをプログラムに翻訳するテストをする。
母語とプログラミング言語の両方がきちんと理解できていれば、ちゃんとしたプログラムが書けるが、理解できていない場合は、書けない。
その次に、書いたプログラムをその場で最適化してもらう。
最適化ができるということは、プログラミングの本質を理解しているということであり、できないということは、プログラミングとは何かを理解していないということだ。
要はプログラミング初心者が最初に習得すべきは日本語だ。
プログラミング言語は実際にはなんでもいいが、最近ならPythonが良いだろう。
ほかの言語に比べて混乱することが少ない。最近は僕は小中学生にもPythonで教えることが多い。
環境的にやむを得ない場合はJavaScriptで教える。
日本語とPython(またはJavaScript)を同時に教えることで、自然と日本語の理解にも役立つと考えている。
言葉とは論理的なものであり、同時に非論理的なものでもある。
その差異を知るには、同時に学ぶのが一番いい。僕はそのようにして日本語とプログラミング言語を習得したという実体験もある