2012/03/26
これから大学でWebを学ぼうとしている人たちへ
大学を卒業される皆様、おめでとうございます。僕のFacebookのタイムラインは華やかな卒業写真で埋め尽くされています。卒業、というものから連想するのは、終りと始まり、すなわち入学です。もう来週には新しい期が始まり、たくさんの人達がいろいろなスタートを切ろうとしています。
僕は2年前、大学院に入りました。もう既に配属される研究室も決まっており、心機一転気分を高揚させて学び始めたのを覚えています。そしてこの2年間でたくさんのことを学びました。研究では大好きなWebのことを学ぶ時間をとれましたし、仕事ととしてもスタートアップをやりながら、起きている時間はほとんどずっとWebのことを考えながら過ごした2年間でした。そこで、今、2年前の大学院入学時、又は大学に入ったことには感じていなかった、知らなかったことを改めて文章にし、これからWebのことを学んでいく方々にとって何らかの道標となるようにと思いつつ、記してみたいと思います。
これから大学でWebを学ぼうとしている人たちへ。きっと今そういう人たちが増えているんじゃないかと思います。テレビにも新聞にもWebというのは何か新しく、希望があり、これから日本を明るくしていくものだという期待感が溢れているような気がします。そして実際にFacebookを使ってみたり、Twitterを触ってみたり、モバゲーやGREEでゲームをしてみたり、mixiで友達とコミュニケーションを取ったりしながら、それらが存在していることがごく当たり前であるように感じてしまうのではないでしょうか。
でも実際にWebを学ぶというと、いまいちピンとこないかもしれません。Webを学ぶということはプログラミングを学ぶということなのでしょうか。HTMLを飾り付けるためにタグを弄ることなんでしょうか。そもそも大学で学ぶ必要がないような気もしてきますね。
Webに限らず、広く使われている技術の背景には、学問としての蓄積があります。学問というのは、時として堅いものです。とても階層的で、とても方法論ばかりに感じられます。それでも、学問があります。大学では例外なく、学問に携わることになります。なぜなら大学の先生方は、学問の世界で活躍されていて、成果をあげているからです。すごく一般的な話ですね。
もしあなたがWebに興味があって、将来Webに携わりながら仕事をしたいと思うなら。これはとても大変なことです。あなたがいつも使っているアプリケーションの裏に、どんな人達がいるのでしょう。
・どんなアプリケーションを作るか考える人たち
・どういうアプリケーションを作るかが決まってから、それらをどのように作るか考える人たち
・アプリケーションを実際にコーディングする人たち
・作ったアプリケーションをみんなに使ってもらうために広める人たち
・動いているアプリケーションがちゃんと動き続けているかどうかを監視している人たち
・アプリケーションについて賞賛や批判をしてくれるユーザからの声を聞く人たち
・技術的に難しいと思われることを、何とかして方法を見つけて形にする人たち
・そのアプリケーションをより多く利用してもらうために、様々なサービスと連携をするために交渉する人たち
きっとまだまだたくさんいますね。そして何より、ここにはWebの基盤を作っている人たちのことが書いてありません。そもそもWebって何でつながっているのでしょう。どうしてみんなインターネットを使うことができるのでしょう。なぜ画面に画像や日本語や動画が綺麗に配置できて、世界中のどこからでもアクセスできるようになっているのでしょう。そしてそもそもコンピュータがなければ、どうやってWebでつながることができるのでしょうか。Webで仕事をするということは、たくさんの人たちに支えられながら価値を生み出すということに他なりません。
Webでビジネスをするということは、実はとても大掛かりな仕組みの上で行なっているというイメージがついたかと思います。大掛かりな仕組みをずっと維持してきて、ようやく最近になってWebで仕事ができるようになってきたのです。こういうと途方もなく感じられるかもしれません。使うユーザが増えれば増えるほど、データが消えた時のリスクも増え、一度にたくさんアクセスされるとパフォーマンスも下がってしまいます。例えば、Facebookのユーザは8億人を優に超えているそうです。8億人の利用するアプリケーションを運用する大変さは、もはや想像できません。でもそういうときにも、エンジニアは仕事をしなければなりません。そのための基礎が学問で、それを学ぶところが大学です。
何を学んでも無駄にはならないものだ、いつか役に立つとよく言われるものです。Webをやりたいなら、Webが好きで学んでみたいなら、まずコンピュータサイエンスの基礎をやりましょう。これは本当に無駄にならないものです。なぜPCが動いているのか、WindowsやMac、Linuxっていうのはなぜ動いているのだろう。よく聞くメモリとかCPUというのはどういう働きをしていて、何のために存在しているのだろう。そういう純粋な観察からどんどん調べていけば、コンピュータがなぜ動作しているかがわかってくるはずです。そのとき、コンピュータの科学のもつ世界の広さにびっくりするはずです。大変ですが、とても楽しものです。同様にプログラミングについてもどんどん試してみましょう。もちろんここでも、なぜ動いているのかを勘ぐりながら試して見ることが大事です。そして、プログラミングは本当に楽しいものです。自分の意図したとおりに、コンピュータを動かすということを初めて経験した時、どんな人でも目を輝かせる瞬間があります。この瞬間を味わってもらいたいです。もちろん、プログラミング言語もWebを支えているたくさんの人たちによって作られたものだということを忘れないで下さい。コンピュータの世界であっても、その裏にはそのシステムをつくっている人たちがいます。学び始めはその人たちから教えてもらうばかりになってしまうでしょう。いつか、どんな形であれ、その学びを誰かに伝えて行きましょう。きっとそれが、あなたの好きなWebを、より魅力的な場所にするためのきっかけになるはずです。
Webで仕事をするというのはこんなに長い道のりを経て行き着かなければならないのでしょうか。それでもいいでしょう。でも、少し仕事を試してみてもいいでしょう。実は、仕事から学ぶこともたくさんあります。人によっては大学の外に出て学ぼう、という人もいます。
Webで仕事をしてみようとすると、たくさんのことをやらなければなりません。ですが、まだアプリケーションを作ったことのない友だちをたくさん集めて、みんなで考えた魅力的なアプリケーションを作ってみるという試みは、とても楽しいものです。そしてやはりそこでたくさんの学びを得るはずです。複数人で開発をするにはどうしたらよいのだろう。まだ公開したくないので、仲間内だけで閲覧できるようにしたい。どういう機能を足したらユーザが喜んでくれるかをみんなで話し合って結論を出すにはどうしたらよいのだろう。実際にユーザが喜んでいるかどうかを、どのようにして調べたら良いのだろうか。魅力的なデザインをするには、どこから手をつけたらいいのだろう、単純にHTMLをかけるから素晴らしいデザインができるわけではない…。色々なことに気がつきます。技術だけあっても、アイデアだけあってもダメです。考えて、作ることが大切です。そして、すごく頑張らなければいけません。なぜなら、そうやって日々頭をひねって、プロダクトを作っている、あなたよりもすごく優秀な人たちが世界に何万といるのです。Webで働くということは、そういうことです。
Webを学ぶということ。学ぶことは無数にあるように感じられて、本当に終わりがないようなものです。それでも、いまあなたはきっとそのWebに携わっている人たちから何かを得て、何かを感じて、そしてWebが好きになったはずです。その気持ちが本当ならば、きっとWebを学び続けられるはずです。
そして何より、Webを学ぶことは楽しいです。