2018年11月18日
いきなり『C言語』かぁ?
高校生くらいになると、ちらほら
「プログラミングを勉強したいんです。」
という生徒が出てくる。
何事も興味を持つのは良いこと。
ただ、彼らが最初に始めようとするのが、『C言語』なのだ。
私は、プログラミング経験があるので、一番始めに『C言語』を学ぼうとするのは、あまりお勧めしない。
いくつかの理由を述べると、まず第一に「『C言語』は難しい」ということだ。
だから独学で、この言語の勉強を進めようとすると、たいていは挫折する。
Windows系のアプリケーションの多くが、『C言語』で作られているようだが、「憧れ」だけでできるようになるほど、プログラミングは甘くない。
また、『C言語』は、省略表記ができるので、「初学者には出来上がったプログラムのデバッグがしにくい」という理由もある。
プログラム言語を学ぶには、言語の規則を覚えれば良いのではなく、自分が実現したいプログラムのための、アルゴリズムを知らなければならない。このアルゴリズムさえ分かれば、はっきり言ってどんな言語でもやりたいことは実現できる。
そのアルゴリズムを学ぶ上で、『C言語』は、初心者には分かりにくい。
以前は、どんなパソコンにも『BASIC』という言語が「おまけ(?)」でついてきた。
だから、簡単なプログラムなら、それで体験できた。
実際に、自分で作ったプログラムが、「思い通り」に動くことは、感動するものだ。
だが、その中で、うまく動かない部分が見つかり、それを一つひとつ検証する中で、プログラミング技術が向上する。
実際プログラムを組むコーディング時間と、不具合を直すデバッグ時間では、場合によってはデバッグ時間の方が長い。
「まずはアルゴリズムの勉強をすべきだ。」
というのが、私の考えだ。
実際、私が中学生のときからアドバイスしながら勉強を続けた生徒は、高校一年生ながら、いろいろな言語を駆使することができるようになっている。
一つ、言語を制覇できれば、あとは次々とプログラム言語を学ぶことは、そう難しいことではない。
それも、根本に、アルゴリズムが分かっているからだ。
「ちょっとかじってみる。」
というなら、否定はしないが、将来そうした職業で活躍したいというならば、基本として学ばなければならないことがあることは、強調しておきたい。
学校でもプログラミング教育が始まるようだが、『C言語』のような高級言語を使ってやるわけではない。言語体系を簡単ににした、アルゴリズム重視となるはずである。
それが、論理的な思考を磨き、こうした論理的な思考や問題解決能力が、他の教科に波及していくことを狙ってのことだろう。
確かに、自分のプログラムで、ちょっとしたロボットやら、動画撮影が自動で行えたら、新しい世界が拓け、楽しいだろう。
最近、何人かの高校生が、プログラミングをやりたい、と『C言語』を始めたそうだ。
なかなか苦しい、茨の道に足を踏み入れてしまったように思える。
「プログラミングを勉強したいんです。」
という生徒が出てくる。
何事も興味を持つのは良いこと。
ただ、彼らが最初に始めようとするのが、『C言語』なのだ。
私は、プログラミング経験があるので、一番始めに『C言語』を学ぼうとするのは、あまりお勧めしない。
いくつかの理由を述べると、まず第一に「『C言語』は難しい」ということだ。
だから独学で、この言語の勉強を進めようとすると、たいていは挫折する。
Windows系のアプリケーションの多くが、『C言語』で作られているようだが、「憧れ」だけでできるようになるほど、プログラミングは甘くない。
また、『C言語』は、省略表記ができるので、「初学者には出来上がったプログラムのデバッグがしにくい」という理由もある。
プログラム言語を学ぶには、言語の規則を覚えれば良いのではなく、自分が実現したいプログラムのための、アルゴリズムを知らなければならない。このアルゴリズムさえ分かれば、はっきり言ってどんな言語でもやりたいことは実現できる。
そのアルゴリズムを学ぶ上で、『C言語』は、初心者には分かりにくい。
以前は、どんなパソコンにも『BASIC』という言語が「おまけ(?)」でついてきた。
だから、簡単なプログラムなら、それで体験できた。
実際に、自分で作ったプログラムが、「思い通り」に動くことは、感動するものだ。
だが、その中で、うまく動かない部分が見つかり、それを一つひとつ検証する中で、プログラミング技術が向上する。
実際プログラムを組むコーディング時間と、不具合を直すデバッグ時間では、場合によってはデバッグ時間の方が長い。
「まずはアルゴリズムの勉強をすべきだ。」
というのが、私の考えだ。
実際、私が中学生のときからアドバイスしながら勉強を続けた生徒は、高校一年生ながら、いろいろな言語を駆使することができるようになっている。
一つ、言語を制覇できれば、あとは次々とプログラム言語を学ぶことは、そう難しいことではない。
それも、根本に、アルゴリズムが分かっているからだ。
「ちょっとかじってみる。」
というなら、否定はしないが、将来そうした職業で活躍したいというならば、基本として学ばなければならないことがあることは、強調しておきたい。
学校でもプログラミング教育が始まるようだが、『C言語』のような高級言語を使ってやるわけではない。言語体系を簡単ににした、アルゴリズム重視となるはずである。
それが、論理的な思考を磨き、こうした論理的な思考や問題解決能力が、他の教科に波及していくことを狙ってのことだろう。
確かに、自分のプログラムで、ちょっとしたロボットやら、動画撮影が自動で行えたら、新しい世界が拓け、楽しいだろう。
最近、何人かの高校生が、プログラミングをやりたい、と『C言語』を始めたそうだ。
なかなか苦しい、茨の道に足を踏み入れてしまったように思える。
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/8310538
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック