知識のブラックホール

本とかオーディオブックとか。知識収集活動全般。

『プログラミングの心理学』をコツコツと読み進める試み その10

昨日の続き。

audiobook.hatenablog.com

『第10章 動機づけ、訓練、経験』

『動機づけ』

早く虫を取れと言ってプログラマをせかすのは、最悪の戦略なのだ。

まあ理解のある上司とは限りませんが、バグ修正に限らず頭脳労働全般に急かすのはいい結果をもたらさないと思います(虫=バグ、です)。

訓練、授業、および教育

教育において進歩を妨げる要因になっている思い違いの一つは、授業と教育をいっしょくたにする、というものだ。 そしてもう一つの思い違いは、教育と訓練をいっしょくたにする。というものである。

よくわからないが、一部のみに着目して残りを無視ってことかな?「木を見て森を見ず」。 授業というのは構成要素の一つ、または部分にすぎないといいたいのか。同じように訓練も教育の一部、というか手段の一つといいたいのか。 教育というのは多面的、あるいは多様な手段を組み合わせろと言っているのかな。

そういう意味であるとすると納得はいく。私は高専から大学へ編入学したので、座学(講義)だけではダメというのはよく分かるつもり。
高専のカリキュラムの特色は、座学と実験・演習の対応づけがしっかりしていることであり、教育効果は高かったと思っている。 卒業してから使わない知識の習得がほとんどかもしれないが、カリキュラムの完成度は高い。

一方、大学のカリキュラムというものは、「自主性の尊重」口実にしたネグレクト、食事に例えるならホテルの朝食バイキングだと思う。

同じ学科の出身者だとしても、本人の嗜好、要するにどの選択科目を選ぶか、単位の取りにくい科目、朝一の科目を避ける学生がどうなるか。 学習態度や過去問・過去レポートの活用度合いで教育効果(教育され具合?)は大きく異なるはず。これは採用する側からしたら、学生ごとのばらつきが大きいってこと。高専卒は個体数(失礼!)が少ないためにできる学生とそうでない学生の差が激しいと思われても仕方ないけど、真面目な学生だけを取り出せば、地方国立大卒と学力差は無いだろうというのが個人的見解。そりゃ東大・京大・阪大には勝てないけどし、作文(小論文)と一般常識と英語がネックになりがちだけど。

本書ではオペレーティングシステム(OS)についての講義について、教育効果を高めるための試行錯誤を事例としてとりあげている。 講義だけではダメで、実際に実物を操作させる機会を授業に組み込んだが、そのOS固有の操作言語の難解さが障害となった、と述べている。 結果として、演習問題をこなすことでほとんどの学生は操作言語を習得し、OSにも習熟していったという。

現代風に言うと、コマンドラインアレルギーか。いわゆる「黒画面」。端末エミュレータでコマンドを入力するのがイヤ、とか拒絶反応を示すパターン。 確かにLinuxなどのOSの勉強に限らず、プログラミングの勉強においてもこれが障害で挫折する人を見たことがある。

私は親戚からもらったお下がりのPCで、ゲームしたいという一念で、DOSプロンプトに立ち向かった。結果、ゲームの起動は成功したのだが、音声が再生されずプレイは不可能だった…。これが高専入学後、Linux習得で躓かなかった要因かもと思うと感慨深い。

おおざっぱにいうと「教育」とは一般的な原理、技能の獲得をいい、「訓練」とは個別的技能の獲得をいう。

なかなか簡潔。教育はどちらかというと知識中心というイメージ、訓練は実技の練習ではないか。

『学習を妨げるもの』

何よりもまず、学習するためには自分の知らない、しかし学ぶ価値のある何かが存在する、ということを承認する必要がある。

なるほど。ベテランが新しい技術のキャッチアップに失敗しがちな理由がこれかも。 新しい技術にネガティブな印象を持っていると、それを学ぶ価値のあるものではないと判断してしまう可能性は高い、かな。

(前略)、真の強さを持った真のプロフェッショナルは弱みを自認したとしても何も失いはしない、(後略)

ラノベのセリフみたいだけど、これはかっこいい。私は自分の弱みを晒すのは苦手。他人の批判にも弱い傾向。

(前略)
だがそれは、失敗そのものへの恐怖心絵はなく、他人に失敗したところを見られることへの恐怖心であることが、きわめて多い。

優等生についてはまさにそのとおり。他人に失敗しているところを見られて嬉しい人はいないだろう。 (自分もそうだが)優等生が失敗を恐れるのは、怒られたくない、馬鹿にされたくない、というケースが多いんじゃないかと思う。

この「学校はものを習うところ、仕事場は働くところ」という態度は、もちろんプログラミング業に固有なものではない。 だがプログラミング業は、どんな業種よりもっと、絶え間ざる学習に依存しているものだ。

この「絶え間ざる学習」というキーワードがポイントだと思う。プログラマ35歳限界説というのは、この絶え間ざる学習の欠如が原因ではないか。 例えば長時間労働であるとか、体力の低下とか、自発的な学習をしなくなると引退を余儀なくされるのではないか。

『プログラミングの学習方法』

学び方を学ぶ第一歩は、自分の資産と負債について知ること、言い換えれば「己を知ること」にある。

自分にあった学習方法を探せ、ということっぽい。講義が好きなのか、自分で本を読むほうが好きなのか。目と耳のどちらに比重を置くか。 耳で学ぶのが得意であれば、テープやビデオ講義を活用することも推奨されている。

学生時代の経験から言うと、私は書いて覚えるタイプでした。試験前に自分で書いたノートをまとめて、何度も書き写して暗記式学習で乗りきってましたね。その点でいうと、一種の写経方式がいいのかな。

Linuxに遭遇した時も、最初は先輩の実演を見て、あとはノートをもとに同じように残り4台も設定しておけ、というスパルタ方式で習得しましたね。 今思えば、褒め言葉のない山本五十六方式でしたね。
勉強にせよ、コーディングにせよ、個人の好みは千差万別ですね。

二元論的思考方法は、われわれの文化を覆いつくしているアリストテレス以来の虚偽であって、もし取り戻すことができれば教育の効率を大幅に高めてくるれるはずの、莫大な情報が失われる原因を作っている。

二元論批判、か?
数学の試験において、途中計算を考慮せずに最終的な計算結果だけで採点するのは良くないという事例が紹介されている。 どうも「過程」に着目しろといいたいらしい。プログラムがスムーズに動作しても、あるいはしなかったとしても、”なぜ”そうなったか考えろと著者は言っている。まるでどこぞの会社の成果主義のことをあげつらっているように読めてしまうのは私だけだろうな。 いっそ「下側から見たXX通」とか?

どうみても間違った方法だったにもかかわらず、いわゆる「動いているものに触るな」と言われておかしなコードが生き延び続けるのを目の当たりにした経験がある。技術的な妥協は後に響く。

道具を忌み嫌う職人はダメな職人だ。何よりもまず、道具こそわれわれを教えて、良い職人に変えていく力を持っているゆえに、である。(p.303、強調は引用者)

なんかすごい文章。JavaWindowsが大嫌いな私はダメな(JavaプログラマってことでFAですね。
セミコロン不要の言語とか、Mac/Linuxは大好きですけどね。

道具こそ云々というのはちょっと実感ができませんが、遅くて使い物にならないような不良在庫PCを従業員に支給する会社に100回音読させたい文章ですね。

いい道具を使いましょう、と言いたいけど、どこからどこまでを道具だと考えているのか、よく分からない。

『まとめ』

コンピュータ教育にたずさわっているわれわれにとって救いとなる一つの要因は、コンピュータそのものである。 あのどこまでも寡黙で、どこまでも忍耐強く、学び取る技能を持ったプログラマに対してはどこまでも教育的であるコンピュータが、である。

自分の自由にできるコンピュータがあるか否かは結構大きいというのは同意です。コンピュータは石頭な反面、何度でもリトライに付き合ってくれますからね。うまくいくまでアレコレと試し続けることができるうえ、最悪の場合でも初期化というリセットボタンがあるわけで。

『第10章 「動機づけ、訓練、経験」へのコメント』

動機づけについての現在の著者の見解云々。プログラマ個人の特性を知るには、適切な人間関係を構築したうえで、「ズバリ本人に聞いてみろ」 と書いてある。いやまあその通ですがね…。

ちゃんと人間関係を構築したうえで、とあるからまあいいか。あまりプライベートに踏み込まれたくない人は多いんじゃないかな。 著者の息子さんとお孫さんは学校で学ぶ以前にプログラミングを習得した云々。

ひとまず308ページはで到達。あと100ページ少々。

もう一息か。それではまた。