雑種路線でいこう

ぼちぼち再開しようか

大学で身につけるべきは技能より教養だろ

上野で飲みながら小耳に挟んだだけなので確かめた訳じゃないけど、いまどき本郷でさえCのポインタを理解できない学生がいたり、やれRubyだAJAXだと騒いでいるらしい。いやRubyは素晴らしい言語だし、ちゃらけた文系学生にプログラミングのイロハを教えるには最高だけどさ。
僕も断乎、教育にはJavaやC#よりPythonやRubyを推す。しかし本郷で騒ぐことじゃないだろ。Rubyを覚えたってRubyのように革新的な何かをつくれるようになる訳じゃなし。別にRailsやAJAXを齧るのは勝手だけど、きっと5年後には誰も話題にしなくなってる。空気のように普及してPHPのように時給数百円までコモディティ化するか、もっとクールなフレームワークが登場しているか、どっちにしても専門学校や職業訓練校で教えれば済むことだ。少なくとも本郷が血眼になって取り組むことじゃなくて、藤沢あたりに今も棲息している起業家予備軍に遊ばせておけばいい。
計算機科学徒たるもの論文を書くためにCとかFortranとかTeXからは逃げる途がなく、嫌々ながらアセンブラは読んで「そうかポインタってアドレスだったのか」と気づき、VHDLで簡単なプロセッサくらい組んだことがあり、LispやPrologを齧って計算機プログラムの豊穣さと多様性に心を致しつつ、やっぱり今のうちからHaskellとかEarlangのような関数型言語も手をつけておいた方がいいだろうかと悩みながら、普段の雑用はPerlでこなしているというのは僕の妄想ですか、そうですか。
僕自身が計算機は独学で、出来の悪い私大文系の出自だから、本郷の計算機科学徒に対して妄想を逞しくしているというのもあるが、もし大学が時流に合わせて今風のことを教えなきゃという圧力を社会や企業から受けているとすれば由々しきことではないか。いまRailsが云々とか日本版SOX法で云々といっていた胡散臭い企業の連中って、数年前ならEJBが云々とか電子政府が云々っていってたんだぜ、反吐が出る。
何年か前から産学連携だとか即戦力採用といって、財界が大学での計算機教育を批判し始めた。90年代後半になっても行番号つきのBASICで黴の生えた授業している耄碌教官*1に殺意を覚えた自分としては首肯できるところもあるが、実社会で使われていないLispだのPrologではなく、すぐ役に立つExcelマクロやJavaを教えろという議論は筋違いではないか。昨今の組み込みプログラミングが云々とかいう議論もそう。
基本的に商用言語って地頭が普通なら数ヶ月で覚えられるように出来ていて、逆にそうじゃなきゃ商売にならない。バッドノウハウを極めるには何年もかかるが、それこそ数年で廃れる技巧だし、会社に入って人柱として埋められてから積み上げれば済むことだ。大事なことはデータ構造とかアルゴリズムで、あとは社会に出てからの飲み込みを早めるに、オブジェクト指向っぽいCライクな言語*2をひとつぐらい覚えておけば良い。あとは大学なんだから、できるだけ世間で役に立たない才能の無駄遣い的な最先端技術に触れて、素晴らしい技術が流行るとは限らないことを思い知り、批判的な視座を持ちつつ頭を柔らかくしておいてくれることの方が重要だ。
最近ちょっぴり心配しているのは、いずれリプレースの必要なレガシーシステムを再構築できる若者がいるのか、ということ。JCLとかCobolとかPL/Iとか、変態的な4GLの数々は、まぁ後から勉強しようがあるとして、あの時代のレガシーシステムってRDBMSが普及する前で、それこそSQLがEUCの嚆矢*3といわれていたくらいだから、データベースの入出力だけでなく内部構造も理解できなきゃ触れない膨大なデータ資産と、それを扱うコード資産がある訳だ。膨大な設計負債に塗れて付加価値はあんまりない強烈な汚れ仕事だが、あの時代のシステム屋って今と比べるとエリートで、ベースのところはかなり周到に設計・実装されていたりするのだろう。まあリプレースできる世界は既にリプレースされていて、いまも手付かずのレガシーシステムの多くはきっと不良資産というか、プチ社保庁みたいな香ばしい状況が手付かずになっているのではないか。そうやって馬鹿にするのは簡単だが、あれのリファクタリングってRailsでWebサイトをプロトするよりずっと大変だぜ。閑話休題。
どっちにしても開発方法論のライフサイクルと、教育方法論のライフサイクルとでは、後者の方がPDCAサイクルをまわすタームが長くなるのは必然だし、教育方法論の道具立てのひとつであるカリキュラムが、現実社会の技術トレンドから乖離することは致し方ない。だいたい現実社会で技術トレンドと担がれていること自体が、そのトレンドの収穫期にあることを示しているのであって、キャッチアップに時間のかかるカリキュラムが追いかけるには手遅れである。というか教育カリキュラムが整って標準化された人材が一斉輩出されること自体が技術コモディティ化の決定打となる危険性さえある。
高度IC?T人材といったコトバも独り歩きしているけど、それが使い勝手の良い下請け技術者を指すのか、going my wayの起業家を指すのかさえ定まらない。遠からず雇用が流動化してくると、企業は従業員に対して雇用そのものではなく雇用可能性のための継続的な能力開発を約束するようになるだろうが、大学が社会なり学生から求められるのは新卒としての雇用可能性であり、それって本来は市場からオンディマンドで調達できる目先の専門性よりは、飲み込みの早さとか意欲なんだろうなぁ。そういう意味で旧帝大の理工系って丁寧な仕事をしてるんじゃないかと思うわけですよ。今でも、たぶん。
わたしも時々教壇に立つので自問するのだが、プログラミングとかソフトウェア工学って座学で学ぶものじゃないよね。教科書に書いてあることを棒読みするくらいなら時間の無駄。やって意味のある講義って、後から文献やコードに当たるにしても頭がすっきりするような見立てなり見取り図を示すとか、そもそも対象に対して意欲や関心を持ってもらうとか、教科書にも新聞にも書かれていない世の中の仕組みの説明ではないだろうか。
意欲ある学生は自習しているという前提で、それを補完し、理解度を高めたり、学ぼうとしていることの全体の中での位置づけを理解してもらうとか、そういう部分なのかなぁ、という風に自分は思うし、だから脱線してでも技術史を丁寧に拾ったりする訳だが、歴史の話に深入りして居眠りが増えると、あぁやっちまったと自己嫌悪に陥ることもある。
ここ数年の産学連携なる揺さぶりが、大学に対して何らかの刺激とか人材の移動に繋がったことを前向きに評価しつつ何を産んだかハッキリしない現状を直視し、次どういった段階に持っていくかというのは、そろそろ真面目に考える必要があるよね。それって企業の側も、OJTが機能しなくなったツケ回しを教育機関に求めるといった安直なものではなく、これからの企業の成長へ向けて、どういったコンピテンシーの人材を育てていく必要があるのか、彼らに求める能力や成果に見合う可能性を提供できるのか、といったところから自問していく必要があるのだろう。そして教育界も、こと教育については門外漢である企業人たちから揺さぶられたとしても、胸を張って主張できるような確乎たる教育理念を磨いていく必要があるのだろう。
いまは新卒採用が逼迫してロスジェネばかり割を食ったと問題にされているが、好況とか団塊世代の入れ替えが一巡すれば、遠からず第二次ロスジェネが産まれることは自明なのであって、いよいよ新卒一括採用・終身雇用・年功序列という経団連温室育ち的エートスは終焉を迎えよう。思考停止していられる間はそう長くないのだし、改革とか懐古の白昼夢から醒めた後の物語や展望を、そろそろ組み立て始める必要がある。
落ち着く先は潰しのきく教養主義とでも呼ぶべき何かになりそうな気がするが、まぁ地頭のいい連中は何を教えても教えなくてもモノになって、実際にはどこに飛び込むかという機会の方が大事だろうし、カリキュラムよりはそういった機会づくりの方が重要なのか、そこまで教員がお膳立てを考えるって過保護なのか。教育というくらいで受け身で乗っかっていても、社会に出て困らないように持ち上げてあげるべきだという向きもあるが、それって大学じゃなくて就職予備校でしょ、みたいな。
日本特有の新卒一括採用という風習が廃れれば、就職予備校の在り方も変わるだろうか。その時、学校歴が階層を半ば規定する社会構造はどう変わり、少子化の環境にあって大学は何に対して価値を認められ、どう生き残るのだろうか。Web時代の開かれた教養ってどんな在り方で、教育者には何が求められるのだろうか。来年こそ漫然と流されながら仕事とか講義をこなすではなしに、悶々と悩んでいることをカタチあるように吐き出して打開策を模索していきたい。

*1:誤解なきよう付言しておくと、本郷ではなく横浜方面の情報理工ではなく教育学部での話。文系IT教育では、今もあったりするんだろうか?行番号つきのBASICって

*2:C++とかJavaとかC#とかObjective Cとか、別にRubyやPythonでも何でもいい

*3:あの時代、SQLだったら事務屋でもサクサク書けるよねと歓迎された。つまりデータベースからデータを取り出すことがSQLを書くよりずっと難しかったということã