日本の大学における情報系学科の学生レベル

大学出たばっかりでこういうこと書くのもどうかと思ったんだけど、今書かないと多分一生書かないなと思ったので書きます。これを読んで気分を害された方がいたら先に謝っておきます。ごめんなさい。
インターネットを見ていると、優秀な方々が優秀なソフトウェアを公開しているにも関わらず、一般的に言って日本の情報系大学のレベルははっきり言って低いと思う。これを学生の意識レベルが低い、と一言で言い切ってしまうことはあまりにも簡単だが他にも色々な要因があると思う。それをこれから考えてみようと思う。
ちなみに、自分の現在のプログラムの知識は大学に入ってから得たものがほとんどである。子供の頃にベーマガを読んでいたので、プログラムの基礎は身についていたかもしれないが、大学以前は本などで系統的に学んだことは全く無い。そういう人間の意見として受け止めてほしいと思う。

  • 大学のカリキュラムの問題

日本の国際競争力(IT技術者の空洞化)では次のように述べている。

即戦力を養成できない日本の大学

日本で大学、専門学校を出てIT技術者になる学生数は約2万人、40万を越える中国と比べてなんとも寒くなる数字だが、日本の大学のカリキュラムなどにも問題がある。情報系の学科では実践的なシステム教育を殆ど教えていない。中国の情報系大学の卒業生は先端技術を習得したエリート集団であるが、日本は大学レベルで質・量が遅れている。

中国の対比が曖昧な記述ではあるが、実践的なシステム教育をしていないというくだりは同意である。まともにプログラムを書いたことが無いうちから、データ構造(連結リスト、ハッシュ)や、各種ソートの手法(ヒープソートクイックソート)を学んだって面白くともなんともないだろう。これらはプログラムの基礎知識として絶対に必要なものだが、初歩ながらある程度のプログラムを書いた後で基礎を学んだってバチは当たらないと思う。
おそらく大学側の意識としては、実践的なプログラムは自習とか趣味の範疇でやるべきである、ということなのだろう。しかし、それでプログラムを実践する人間は残念ながら一握りである。専門学校と変わらなくなってしまうという批判もあるだろうが、実践的なシステムを作り上げる授業が1つあるだけで全然違うんじゃなかろうか。これなら分かる応用数学教室にも書いてあったが、最初にある程度応用を知っておいた方が、その後の基礎知識を学ぶのにも熱が入るというものである。
ちなみに自分は、大学に入って最初の夏休みにDance Dance RevolutionのシミュレータもどきをDirectX用のライブラリである、Easy Link Libraryを使って書き上げた。今見ると相当しょぼいし、ソースファイルも1つだけという恥ずかしいことこの上ないプログラムだったが、

    • 面データのファイルフォーマットを独自で決め、それを読み込んで処理する
    • 曲ごとに矢印の順番をきっちり定義する
    • 音と同期を取って矢印を動かす

ということをする必要があり、プログラム初学者にとってみればちょうどいい難易度の課題だったような気がする。

  • ソースには触れることができないという意識

インターネットが普及し、MS-DOSの時代とは比べ物にならないくらいのソフトウェアと関わっている時代でありながら、大部分の人にとってソースとはアンタッチャブルな世界である。そもそもソースが無くて改造したくても出来ない物もあるが、オープンソースソフトウェアについてもそれは同様であると思う。なぜなら、有名なオープンソースのソフトはソースコードが長大であり、自分なんかじゃ絶対に理解できないと思ってしまうからだ。その意識がそのまま「ソースは読まなくていい」ということに繋がってしまう。
ソースを「読まない」ことと「読めない」ことは別物である。往々にして「読めない」と主張する人は「読んでいない」と思う。全てのソースにアクセスできるというのが、非常にエキサイティングな状況であるとは思わないのだろうか?



ここまできついことを書いてきたかも知れないが、一番危惧しているのは、情報学科というのは他の学科と違い、設備などの面で大学で学ぶ必要性が薄れてきているということだ。例えば、化学の分野であれば、大量の種類の薬が必要になるし、実験測定の物理の分野であれば、大掛かりな測定装置をいじる必要がある。これらは、個人レベルではなかなか難しい。
一方で情報学科でも、昔であれば、個人では購入不可能な高価なUNIXワークステーションに触れることが出来るということもあっただろう。しかし、いまやほとんどDELLなどのPCベースの物に取って変わられており、個人で手に入るパソコンで立派な研究が出来てしまう。そして、情報はほとんどインターネットで手に入る。こうなってくると、文系理系問わず、また学歴を問わず知識に貪欲である人間が勝つ。新卒の就職活動ならまだしも、その後の人生において「情報学科を出ました」ということに何の意味もなくなって来ているのである。このことをもっと真剣に考えた方がいい。
「大学の問題だ」と学生が言うのも簡単だが、それでは今現在の問題を解決できない。それはそれとして、今後変えていく必要があると個人的には思うが、今現在、学生である人たちに次のアドバイスをしたいと思う。

  • 興味を持て

なんか、凄い当たり前のことを言っているような気がするが、そもそも興味が無いという人が多い気がする。ヲタクのように、一点に興味を集中させることがかっこ悪いという風潮があったせいか、色々なことに興味を持つ能力というのが、段々失われていっているような気がする。
最初はコンピュータに興味を持って大学に入っても、その後勉強する気があるのかどうなのか、分からない人がいるように見受けられる。大学に入れば自動的にハッカーになるとでも思ったのだろうか。
ダウンタウンのごっつええ感じ*1で「松っちゃんが〜〜に挑戦」というコントがある。ぐて〜と成った松本人志を、黒子である浜田やココリコが強引に大車輪などをやらせて、記録達成と喜ぶコーナーだ。あのコントは面白いのだが、大学生でそういう意識の人ってかなりいるんじゃないだろうか。
まぁ、とにかく興味を持てや。

  • まず実践しろ

本を買って理論のお勉強もいいが、まず開発環境をインストールするなり、簡単なプログラムでも作ってみるなり、行動を起こすことが重要だ。現在のようにソフトウェアがあふれかえっている時代では、モチベーションを高めるのが難しいが、いかに気負うことなく気楽にやれるかが鍵のような気もする。
実践しようと思えば無料でインターネットで何でも出来る世の中である。他の学問分野でここまで安く情報を得られる分野を私は知らない。しかも、完成された状態で。このチャンスを逃してはいかんのですよ。

  • 知識のある人に怒られてもめげるな

これは、情報系に限った話なのかどうかわからないけど、いわゆる「教えてクン」という言葉があるように、調べずに教えを請うのはインターネットの世界では絶対悪とされている。いわゆる初心者は、質問の前に周到に準備したつもりでも、ちょっとした不手際で怒られてしまう傾向があるようだ。
たまに、知識のある人でこのコミュニケーション手法をオフラインの会話にも持ち込む人がいる。そういう人は、これから学ぼうとする人の芽を摘み取ろうとしているという罪深さを認識した方がいいだろう。逆に、これから学ぶ人は質問して怒られてもめげないことが重要ですね。

  • 知識に貪欲であれ

「興味を持て」とほとんど一緒のような気がしますが、知る喜びをもっと知った方がいいですね。

最後にオススメの文献としてCode Reading(ASIN:4839912653)を挙げておく。世のオープンソースを読むべしという教えを説いているありがたい本である。自分も読んでいる最中である。

*1:ガキの使いやあらへんで」の間違いでした(fujieさんの指摘による)