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を学ぶことは楽しいです。

2012/03/16

春休みの過ごし方



先月無事修士論文を提出し、大学でのほとんどの予定を終えて、僕は晴れて春休みを迎えていました。遊びに行く友達たちを見ながら春休みであることを感じ、そして僕も例に漏れず、南の島にいって休んでみたりしています。

春休みというのは長いもので、2ヶ月もあります。1ヶ月は休めるかもしれないけれど、2ヶ月も休むのは僕には無理かもしれません。それどころか、1ヶ月も休むだけだったら一体何をすればいいのだろうとすら考えています。どうも、何もしないことと休むということを混同してしまっているのかもしれません。

当の僕はというと、相変わらずtrippieceのことばかり考えていました。大学院での研究が一段落すると、自分でもびっくりするくらい時間が作れるものです。一日中、自分の手塩にかけたアプリケーションをさらに育てることに費やせるのです。そんな時間感覚が今まで欠如していたのか、1つのことに集中するということにすごく喜びを覚えた時間でした。仕事と遊びの境に自分がいるのかもしれないけれど、それはそれで楽しいような感じがしていて、厳しいものでもあり楽しいものでもあり、そんな空間の中で時間を過ごすことに悦に浸っていたような気がしています。

音楽をみんなで作るときにたくさん話し合いをするように、プロダクトをつくるときにエンジニアでもたくさん話しをすべきなのでしょう。僕の仕事はコードを書くことがメインではすっかりなくなってしまいました。それはとても良いことです。コードを書く事自体が目的になってしまうのはダメなのです。誰のためにどんなものを作りたいのかということを、常に忘れてはならないのです。だんだんtrippieceも大人の手段を使って、賢く成長しようとしているフェーズになって来ました。コードベースは今までになく良い状態を保ち、どんな機能の追加にでも対応できるような枠ができあがりつつあります。誰が作っても、変わらず成長し続けるアプリケーションでいて欲しい。そう思いながら、現段階で想定される範囲のことを実現するためのコストを最小限に抑えるための仕組みを構築してきました。僕の春休みはそうやって過ぎつつあります。

思えば、学生生活の間で時間の費やし方というのがどんどん変わって行きました。満員電車の中でもずっと読書をしていた時期もあれば、10分の空き時間にコーディングを進めることも日常茶飯事でした。ギターを弾くときも効率良く淡々と練習し、食事の時間も完全に計算していたこともありました。しかし波があるもので、最初は時間を切り詰めて効果が上がっていたものが、徐々にうまく回らなくなってしまうようになってしまいました。生活から楽しみが消えて、味気ない時間を過ごしたことだけが残っているようでした。不思議なことに今度はどんどん時間に感覚が緩んで行きました。1つ1つに余裕をもって、何かを感じながら、その時々に感じた何かを大事にしながら、過ごすようになりました。すごく良いことでした。いろんなことが見るようになりましたし、集中するときには一気に作業が進むようになりました。集中しているときには怖いくらい周りのことを気にしませんが、大抵それも1日のうちの2,3時間程度で、他の時間はすごく自然に過ごしています。

春休みはもうすぐ終わりそうですが、色々な波を超えて、次に備えているものへの期待感を着々と醸成しつつある、そんな時間を過ごせているのだろうと感じています。