2008年8月26日火曜日

プログラミング能力をつけるための高速道路の話

モバキッズの田村取締役が非常に興味深い日記を書いているので、紹介もかねて僕なりの意見を書いてみる。
Google Bloggerはトラックバックを送信できないという謎の仕様、、、黙ってたら田村さんに読んでもらえないので、コメント欄にURL貼っつけときます。>田村さん

プログラミング能力をつけるための高速道路を造りたいという話

まず、このエントリに対して僕ははてなブックマークで以下のようなコメントをした。

同意。が、日本ではプログラマの地位が相変わらず低いのも事実。高速道路の先(マネージメント階級とはまったく別のエンジニアとしてのキャリア)も用意できたらいいなー。

高速道路はすでにできつつあると思う。完成していると思っている人もいるだろう。その高速道路が機能していない(ように見える)のは、そこを走っている人が他の学習分野に比べて相対的に少ないからではないか。給与や待遇、社会的地位の低さ、3Kに代表されるイメージの悪さのため、走りたいと思う人が少ないのだ。

だから、僕の意見としては、むしろ高速道路の先をどう魅力的に見せるかだと思う。
高速道路の先は大渋滞かも知れないが、その先にモチベーションをかきたてられる魅力的な何かがあれば高く険しい道でも、けものみちでも走れると思う。大渋滞の先に何も魅力的なものがないからこそ、高速道路にものる気にならない。

なぜ、「高速道路にのる気にならない」のかについては、大きく以下の2点があると思う。あえて、文系プログラマを自称する田村さんの観点でなく、高専出身である僕の経験から考察してみた。

(1) “サイエンスとしてプログラミング”と“ビジネスとしてプログラミング”の乖離
ビジネスの醍醐味でも書いたが、高専や大学で学ぶコンピュータサイエンスの一環としてのプログラミングとビジネスとして行うプログラミングはまったく違う。
コンピュータサイエンスで必ず学ぶバブルソートやクイックソート、二分探索法、スタックやキュー、ヒープなどは実践の場ではまず間違いなくライブラリが用意されていて自分で実装することはないし、ビジネスの場で必要なデバッグの方法やコーディング規約の作成ノウハウ、クラッキング手法とそれに対抗するためのセキュリティ知識などは大学では詳しくは教わらない。
このような両者間のギャップのせいで「プログラマはダメだ、おもしろくない」と感じてその道を選択肢から外す人を数多く見てきた。サイエンスとビジネス、どちらに魅力を感じるかは人によると思うので、どちらかを強くアピールするべきだという話ではない。「大学でもっと実践的なプログラミング手法を教えればプログラマ人口は増えるか?」という問に関する答えは明らかにNOである。

そもそも、世の中で一般的に理系に分類されるコンピュータサイエンス(学校によって名称は違うと思うが、情報工学とか電子情報学など)を専攻しているような学生は、ある程度以上の数学の素養と、あらゆる事象を論理的に構造化することへの興味を持っているはずである。そういう学生に対して、体系化された情報理論や各種のアルゴリズムなどを教えることは、決して非合理なことではなく、モチベーションを一定に保てるという意味では非常にいいことだと思う。問題はそういう学生が卒業後にその知識を生かせるような職が圧倒的に少ない、ということである。
いや、絶対数が少ないというより、他の仕事内容に埋もれてわかりづらいというほうが正確だろうか。大学で学ぶような理論的な部分は、大抵の場合、その製品やサービスのコア部分であることが多く、簡単に外部の人間が知れるものではない。比較的、情報として入ってきやすいのは、そのコア部分をとりまく日々の保守・運用や膨大な数のデバッグ、コスト算定、プロジェクト管理などである。

これが、1つ目の高速道路にのらない理由。こういうコンピュータサイエンスの理論は好きだが、ビジネスとしてプログラミングをすることをあきらめる人というのは、大学の教授になったり、まったく関係ない職種に転職したりする。


ここまで書いて疲れてしまった。長くなってしまったし、続きは次回に。

0 件のコメント: