プログラマとして重要な資質は何か、といったことを考えながら記事を読んだ。
以下の記事が僕の周辺で幾らか流行った。
プログラマに向かない人によくある6つの特徴 | LifeHacker
http://www.lifehacker.jp/2014/12/141210programmer_signs.html
原文:6 Signs That You Are Not Meant To Be A Programmer|MakeUseOf
http://www.makeuseof.com/tag/6-signs-meant-programmer/
この記事を僕は、プログラマとして重要な資質は何か、といったことについて考えながら読んだ。
確かに誰にでもその資質が充分にあるわけでないと僕には思えるが、しかし職業的に僕は入学してきた学部学生の全員に必修としてプログラミングを教えている。つまり資質が無い人はそれを無理に強いられていることになる。
なお、元の記事にあった 6 つのサインは、
で、このうち後半はどうにも説得力が無い、というコメントが当初ついたが、僕はそれらについてはほぼ無視して、1. 2. 3. で語られたことにだけ集中して考えていた。これ以降を読む人もどうか後半のことに引っ掛からないで進んでほしい。
なおこのノートは2014/12/11 に投稿した(アクセス制限あり)以下の記事から再構成したものである。
https://www.facebook.com/yutaka.yasuda/posts/10203843812908607
例によってツラツラと書いているが、なるべくそのままここに収めておくことにする。 (当時コメントいただいた何人かの方はお名前を出すことを快諾いただきました。感謝です。)
======
僕が気になるのはつまり自分がやっている「全員」に「必修」で「専門」としてプログラミングを教える、ということです。
この時代になってもプログラミングについてほぼ経験が無い状態で情報系学部に入ってくる率は高いです。とても高いです。
「ほぼ経験が無い」というのは例えば言われたとおりに書いたら動いたことを「観測」した、とか、「縦のものを横にした」ことを「プログラムを作った」と思っている、というものを含めています。
それらは「操作」であって「プログラミング」というものが求めている「思考」とは質が異なるはずだ、と思うからです。
なお、僕が学生だったとき、指導教員だった先生から面白い事を教わりました。量は質に転化できる、ということです。その時と文脈は異なるでしょうが、例えば「操作」も一万回やれば「思考」に相当するところに到達するだろうといった話です。読書百遍。
(二十台の僕は「質が異なる」ことは決定的だと思っていたが、実はそうでも無いらしい、というおはなし。。。)
アルゴリズム作らないと×ですね. > プログラミング
原文はわりとまともに見えます http://www.makeuseof.com/tag/6-signs-meant-programmer/
専門として教える、というのはつまり 1. 2. 3. の裏側にある(恐らくはプログラミングを創造的な作業として肯定的に取り組んでいる人たちの多くが感じているであろう)重要な資質について真正面から問いかける、ということになります。これを抜かしてしまうとそれはただの手習い、体験、操作、にしかならない。(*1)
言葉として直接的に言う事もあります。デモ(提示)を通じて、あるいは課題(体験)を通じて感じさせる(させようとする)こともあります。
*1 に、しかならない、と言っていますが、定量化してゼロになる、という意味ではありません。値がとても低くなる、という意味です。比較の対象も明確ではないので曖昧に読んでください。(たまにそのあたりで食いついてくる人が居るので)
1~3って,プログラミングに限った話ではなくて,今の時代に社会人やるなら,ないと生きていられない話じゃないかなあ.
力武さん:そこを僕は気にしています。少し書きます。
こうあります。
優れたプログラマになるには、目的に向かって自主的に行動しなければならず、他の道はありません。本質的でない細かいものをすべて取り除けば、プログラミングは基本的に反復作業です。書いているコードに、何か個人的な情熱や野心がないのであれば、みじめな気分になるだけです。 このことは、あらゆる創造的な取り組みに対して当てはまります
短絡的に上の記述のプログラミングに関する部分を、○×△などの伏せ字にして潰してみただけでも、なるほどかなり多くのことに当てはまりそうです。
僕は余り職業体験が多くなく、趣味的にも頑張ってやり続けたことが少ないので何ともなのですが、例えば(趣味的な、事務的でない)文章を書く、とか、絵を描く、といったことで考えれば、確かに僕はそれらの作業に非常な長期間(特に若いとき)、大量の時間を突っ込んでおり、ヘタクソでもなんでも、とにかくその成果物や、その作業過程にとても強い情熱を掛けてやっていました。
もしあれが自分の中からわき上がるそうした情熱なしに誰かから強いられ、時間を突っ込まされた体験だったとしたら、僕は確かに「みじめな気分になるだけ」だったでしょう。 そして僕はいま、学生たちにそれを強いているのでは無いか、と思ってしまうのです。
あえて高尚な話ではない方向へ持っていくと(すみません),最近は「恐怖」と「怒り」が原動力なんですよねえ.馘が飛ぶ恐怖,お客さんからの信用を失う恐怖,そして最近は正当と思えない手段で高い地位を得ている人達への怒り,かな.でも,本当の原動力は,面白いと思って時間を忘れて取り組めるかどうかなんだろうと思います.
プログラムにかぎらず教育とはそういうものだ。というのは暴言?
学生の誰もが 1. 2. 3. に挙げられた資質について positive であるとは限りません。というかまあ有り体に言うと、資質が疑われる学生が相当数います。当然です。
(入り口(入試)ではそこを重視せず選抜し(ほぼランダムサンプリング?)、出口(卒業)では企業(*2)はそこを見て選抜する(資質の無い奴は振り落としたい)わけなので、その間に挟まれる人が相当数居るのは必然)
*2 元の記事は職業プログラマが対象だと僕は解釈しているので企業からの評価を重視して書いていますが、もちろん大学で学ぶ意義は就職競争上優位に立つことが第一ではありません。
力武さん:だははは。いや実際そうで、教室で幾ら僕が言っても(分かりやすく言っても、優しく言っても、励ましても、厳しく言っても、圧力を掛けても、突き刺さるような言葉を選んでも)まあ聞かないですね。
でもそんな人たちも仕事に就くとどえらく上司の言うこと聞くみたいですね。
社会科学系学部の教員から昔に面白い事を聞きました。
「学生は就活が終わるとずいぶんちゃんと言う事を聞くようになる。(命令に従順に従うようになる、という意味ではなく、話を理解して反応する、という(当たり前の振る舞いをするようになるという)ことです)だから四回生じゃ無くてもう一回生とか二回生くらいにあれやって(人間が変わって)くれれば、もっとちゃんと学べるし良いことづくめなんだけどなあ」 と。(半分冗談ですよ)
水野さん:ある程度そうだと思います。で、僕が気にしている(書こうとしている)ことはつまり、それが一般的なことだとしても、プログラミング、という分野はその「強いてしまう」ことが「より強い」分野だったりしないか?という点です。
つまり資質の差がより大きく出てしまう分野なのではないか、と。
わたしは英語の授業も学校休みたいほど辛かったからなあ。つらいねえ。なんらかの正解があって(構文とか)それを組み立てなければいけないけど、それができない恐怖とかだな。それはつらいのよ。目的がなにかを動かすだったり伝えるだったりでそれが達成されればそれでいい。という状態にならないとつらいかもしれない。
さっき上に自分の例として挙げた「文章を書く」「絵を描く」といったことと比較してみても、どうも他の人の能力(成果)と 10 倍違う、100 倍違う、という印象は無いです。でもプログラミングってそういうのが強烈に出てしまうのではないか、と。
コンピュータがもつ(特に個人の)知的能力を拡大するメディアととしての性質をアラン・ケイは強調していましたが、まだインタフェイスも未熟で、そこまで達 していない今のコンピュータを前に、その性質に最も直接的に触れているのがプログラマなのではないか、と思えてしまうのです。
水野さん:僕は体育とか音楽とかが嫌だったですねえ。。
英語も中学ではじめて this is a pen とか言わされた時からずーーーーっと 3 (五段階評価)でした。
ああ、そうか、自分がニガテだった例えば英語で詩を書けとか言われていると思えば良いんですかね。資質の無い学生が「必修」で「専門」として「やれ、お前はやるしか無いんだ」と言われている気分を理解するには。
つまり音楽的感覚が全く無い自分が音大に(英数国で受験して)入学して、そこの演習で教員から「作曲して演奏できるようにしてこいよ、何でお前はやらないんだ?」と毎週言われるような状況になる、ってことだよねえ。。。うーん。。。
もし情報系が「資質の差が影響する度合いが大きい」分野だとすると、情報系学部は(音大ほどではないにせよ)自身に内在する情熱が無いと来ちゃいけないところなんだよ、とアピールするべきなんだろうなあ。。。
ここで僕は滋賀教育大が作っていた「君へ」というパンフレットを思い出してしまう。。。
https://web.archive.org/web/20130502044823/https://www.edu.shiga-u.ac.jp/topics/kimie2013.pdf (Internet Archive)
最近あった情報系大学院生はプログラム一行も書けなかったけど、大手メーカに入社が決まってました。(だからいいのかな?)
水野さん:そこはちょっと厄介な話で、
すると、このスレッドで僕が注目している「自分は(かなり多くの学生たちに)「みじめな気分になるだけ」のことを強いているのではないか」という点に着地するわけです。
まあ,本来,情熱を内在できない人は,知識階級たり得ないんでしょう.言われたことだけをやる労働者になってしまうんだろうと思います.この(少なくとも西欧社会では当然の)価値観を否定し続けてきたことに無理があるのは事実でしょうね.
最近は「食うために」「学歴を必要としない」プログラマになる人達も多いので.
最近もなにも、私が就職した90年代からソフトウェア業界は「文系の墓場」と呼ばれてましたw
最近は大学に行ってない人が多い印象があります.もちろんその中には非常に優れた人達もいるんですが,数としては少数だろうなあ.
小山さん:墓場!(^_^!)
力武さん:僕もその価値観に囚われているってことなんですねきっと。。。
(情熱は無いがしょうがないからやるんだ、それしかないだろお前、という気では居るんですが、学生がどうもそれを受け入れない、という印象がつよいです。。。僕が子供の頃は「つべこべ言わずにやれお前」でシバかれながらやらされたのですが、今はそれがダメらしくて。)
(たぶん水野さんが言う「**にかぎらず教育とはそういうものだ」というのはこの「つべこべ言わずに」が内包されているのだと思っています。僕はそれに対して肯定的ですが、なんせ相手のある話でして、、、)
受け入れなきゃ落とされるだけですけどね.まあ落ちてから立ち上がるというステップが必要であれば,それはそれでいいんですけど.
ミクロに見るとその通りのこと(受け入れず落第)が起きているわけですが、全体として「充分有効にその方向に舵切りできる」ほど腹をくくって受け入れてもおらず、その境界線あたりを閾値に設定して落第させると留年者が多くなりすぎて経営上無理、というような(半端な)状況ですね。。。
まあ教学の方向性や閾値は今回僕が取り上げたような方向だけではなく(経営上とか言ったことを抜きにして純粋に教育面だけで見ても)、多様なパラメタを混ぜて煮た結果として出てくるので、必ず半端なものになるんですけどね。。。
今回の記事を見て、いま僕が思うのは、さて学生にこれを題材にして何か(自分の思うことを)伝えられないだろうか、ということです。
ふーむ。。。。
2014.12.12