hetareDAIOの日記: プログラミングに教育は不要 3
腕的には大したこともなく、特筆すべき点があるとしたら対応できる幅の広さくらいというレベルの私が言及するのもなんですが、プログラミングというのは、学習できる環境に容易にアクセスできれば良くて、いわゆる教育機関でやることではない、と考えております。
理由というか、私の実体験になりますが、一応某工業大学の情報系で勉強していた時の話を。およそ20年くらい前。
この大学には高校2年の時から入って勉強したいと考えていました。理由は、コンピュータの勉強がしたくて、理系の単科大学の情報系ならそれができるやろ、それ以上の環境は(当時は)思いつかない、からでした。
いざ一浪して入ったわけですが、そこで待っていたのは専門で勉強しているはずなのにプログラミングが全くできない人の山…。講義内容もプログラミングに関しては、レベルが低くかつ的外れでしたが、それでもわからない。カンニングさせろと何度言われたことかw
結局、4年経ったあたりでプログラミングができているのは、全体の2%くらいでした。私を含めて、できていた連中に共通していたのは、講義とは別のところで何がしか取り組んでいました。大学とそれ以外の部分にわんさかあった環境を利用して自分で勉強していました。環境だけはそこそこ揃っていました。私は今でいうところのインターンで、大学の卒業生が立ち上げた会社でゲーム開発を中心にほぼ社員として働いていたのがメインでしたが、大学の計算機センターに入り浸ってコーディングなんかもしてました。
そういうところを経て、自社開発も派遣エンジニアも経験し、某専門学校でも上記のような状態でしたよ、と何人かに教えてもらったのもあり、今にして思うのは、プログラミングとはまさに技能なんだなぁと。それも、知っている・知ってない、考えたことある・ないの差が歴然と表れる能力だなぁと。
向いている、向いていないがやってみれば割と簡単にわかります。向いている人は少ないと思います。かと言って、それだけが人生ではないので、向いていない人はほかのことをすべきです。私の経験から、あまりにも(普通の人が大学や専門学校ですら身につけられないほどの)専門的な事項であるということです。なので、教育というプログラムに、プログラミングを入れる意味はないと考えます。ついでに言及するなら、大学や専門学校は、プログラミングではなく、リテラシーや仕組みを中心とした概念の勉強をもっと取り入れるべきだと考えます。
結論がおかしいんじゃ (スコア:1)
「向いてない人は止めておけ」というのと、
「向いている人に教育は不要」は全然別だと思う。
前者は昔から言われていることだが、後者は違う。
むしろ優秀な指導者に師事するのが上達の秘訣だ。
アルゴリズムとデータ構造にしろオブジェクト指向にしろ、
こういった初歩知識でさえ独学だけではなかなか上達しない。
Re:結論がおかしいんじゃ (スコア:2)
うーん、そうなんですかねぇ?私の経験での話ですが、優秀な人にどうしてそんなにできるの?と何度か聞いたことがありますが、ほとんど優秀な書籍とか良きライバルとかの話になり、先生がよかったという話はありません。優秀な人は独学がベースだと思います。
そういうのは応用知識のような…。プログラミングにおける基礎知識は、変数とか関数(サブルーチン)とかそういうレベルかと…それすらわからない人が大学時代には周りに大勢いましたし。
それはさておき、データ構造の話は、プログラミングにおける知識です。オブジェクト指向は概念、考え方であってプログラミングとは切り離しが可能です。アルゴリズムはどちらにもかかりますが知識の割合が大きいです。向いているかどうかを判定するには、概念、考え方が理解できるかを見るのがいいのではないかと考えます。教育というのは、理解したかどうかで人に選択肢を与えるものです。ですので、教育ではオブジェクト指向を教えるのはOKだと思いますが、アルゴリズム・データ構造を教えたところで時間の無駄だと思います(アルゴリズムはプログラミングと切り離せる部分はパズルみたいで面白いという人がいるかも)。向いていない人には本当に何の役にも立ちません。向いている人が本を読むなりコードを読めば済む話です。
どんなことにも通用すると思いますが、上達というのは、自分で動く・考えるをすることでしかなしえません。基本、独学だと思います。
ほえほえ
プログラミング教育 (スコア:0)
プログラミングに必要なのは、大学レベルの数学の知識と、コミュニケーション能力と、雑学だな。
ちなみに、高校レベルの物理は大学では工学、高校レベルの数学は大学では物理です。