言語の学習

 

プログラムの学習=言語の習得
だと思われている人が多いようですが、プログラムの学習と言語の習得は別物です。

個人的には、プログラムか考え方であって、言語はその人間が考えた事を、パソコンやスマホに解るように記述する命令だと思っている。したがって、どう勉強したらいいかと聞かれたら、まずは、プログラムを覚えようという事になる。

しかし、ここで問題になるのが、考え方をつらつらやっていても、なかなか覚えられない。実際に動かしたほうが覚えやすい。そう考えて、言語をから入るのも悪くはない。悪くはないが、正解でもないという事になってしまう。

最初に勉強する言語はなんでも良いと思うが、コンパイル言語でスタンドアローンで動く物が良いと思っている。

Javaでもいいと思うし、VB.NETやC#と言った物でもいい。
最近の開発ツールは優秀だから、ヒントも大量に出るので、最初の取っ掛かりさえ間違えなければ、十分プログラムを書けるようになると思う。

言語的なブラックボックスが少ないのは、C++などだろうとは覆うが、すこし敷居が高いように思える。

初めて演るのなら、Java か C#だろうと思っている。PHPやRubyと言った言語もいいとは思うが、すこしブラックボックスが多いように思える。それに、言語理解の時に、ネットワークの理解やら動作原理の理解が入ってくる。無くてもプログラムは作れるが、PHPしかかけない人間が出来上がってしまう。会社などで即戦力とか言っているがそれは間違っている。使い潰されるだけだ。
古い古い話で、COBOL だけで育った人をVB.NETが使えるようにして欲しいといわれた事がある。

プログラムとしては書けるが、汎用機的な考え方が抜けないので、なかなかイベントやプロパティやメソッドという考え方に馴染めないでいた。しかし、内部のコードに関しては完璧に書くことができる。多少の戸惑いはあるが、コードを書くという事では、COBOLだろうと、VB.NETだろうと、PHPだろうと変わりはない。言語特有の考え方ができるようになるかどうかに関わってくる。

だからこそ言いたい。
プログラムの学習は、言語に依存しない部分だけを教えて、そこから、各言語特有の考え方を、ハードウェアやネットワーク交えて教えていく。それがいいと思っている。