2011年03月01日

これから魔法使い(プログラマー)になる、新卒者のみなさんへ

Magic Bus
By erix! under CC-BY

これから魔法使い(プログラマー)になる、新卒者のみなさんに、リレーでメッセージを送ろう、ということになりました。一発目として僕が書かせていただきます。

おまえ誰よ?

プログラマーです。14歳ぐらいからプログラミングに手を染めて、N88-BASIC、C言語、x86アセンブラ、C++、Ruby、Python、JavaScript、Erlangみたいな感じで勉強しています。まぁ、Erlangはまだまだヒヨコですが。大学を卒業して、本田技術研究所に就職し、社内SEをしていましたが、今年からDeNAに転職しました。

メインの言語はPythonで、Python温泉系のコミュニティに参加しつつ、日本XPユーザグループの代表(あまり仕事できてない)、sphinx-users.jpの会長などもやっています。昨年は4冊の本を出しました。今年、もう一冊出す予定です。

21世紀の錬金術

科学の発展に、錬金術が大きな役割を果たした、という逸話をご存知の方も多いのではないでしょうか?現代に生きていれば、原子(アトム)の存在を知っているため「錬金術なんてありえないよ」と言えるでしょう。実際の現実世界であれば、アトムのルールに縛られますが、人類が20世紀に発明したコンピュータは、これとは違う、ビットの世界を構成しているため、「錬金術は成り立たない」という前提が崩れます。無から有を産みだすことも可能ですし(Windowsとかブラウザもデータ上は単なる01のビット列)、いくらでもコピーが作れます。現実世界ではできなかったことがコンピュータの中では実現できます。

IT業界に入るということは、この魔法(プログラミング)を身につけるということです。注意深く呪文(プログラム)を組み立て、発動させると、波動(バス間を流れる電気信号の波)が生み出され、人間では到底扱えないような桁の計算を間違いなく行ったり、図形が動いたり、大量のデータから欲しい情報を抽出したり、何も無いところからお金が生まれたりします。技術が高まると、実に様々なことができるようになります。ワクワクしませんか?

僕が魔法使いを志したきっかけ

もともと、中学2年ごろから、遊びで勉強をしはじめていましたが、本格的に魔法使い(プログラマー)になろうと思ったのは、20世紀版のゲド戦記(闘うプログラマー)を読んだからです。新しい世界の均衡(32ビット版の安定したOS)を作ろうとする実話です。自分達で世界を作っていく過程にワクワクして、例え大変でも、この世界に進もうと思いました。最近は新装版も出ています。

例えば話は、ここからはちょっとゆるめます(読むのも書くのも重いので)。

多くの魔法を覚えよう

プログラミングの世界には、さまざまなジャンルがあります。Webから、GUIから、OSから、プログラミング言語自身まで多種多様です。だいたい仕事をしていると、1分野にばかり取りかかることになります。ですが、変化が大きい業界であるし、とある分野ですごい便利な仕組みが発明されると、他の分野にもぱっと広まったりします。そのため、普段からアンテナを高くしていると、次々に便利な技術を身につけられます。新しい技術とはいっても、まったく未知のテクノロジーというわけではなく、過去から少しずつ加えられてきた改良の積み重ねです。幅広いジャンルの知識があれば、新しいものが登場してもキャッチアップが早くなります。つまり、知識のある人ほど、新しい知識の吸収が早くなります。差が付くとどんどん広がっていきます。多くの分野を知っていると、自分の得意な力を生かせる場所もたくさんありますし、活躍できるチャンスを数多く掴むことができます。

強い魔法を使えるようになるには

強い魔法を使える人とたくさん交流することです。てっとり早いのは、勉強会などに参加することです。ですが失敗しがちなのは、勉強会に参加して、話を聞くだけで終わってしまうことです。サッカー観戦が好きで毎週見に行っても、サッカーがうまくなるわけではありません。学んだことはなるべく自分でも手を動かして、経験値を上げてレベルをあげましょう。インプットと、アウトプットのバランスが重要です。勉強会に参加するのは楽しいのですが、単なる「楽しい」だけで終わらないようにしましょう。

社外の同職種の知り合いを作ると、自分の周りの環境が客観的に見えてきます。優れた面や、効率の悪い面が見つかり、「こうすればもっと仕事の質を上げられるなぁ」というのが見えてきます。入社して数年たって、自分で後輩の面倒を見たりするようになってきたり、新規の仕事を自分でするようになってくると、この知識がとても大切になってきます。

「遊び」が重要

小さい子供と接したことがある人は、子供がどんどん知識を蓄えて成長する速度にびっくりしたはずです。子供がやっていることは勉強ではなくて遊びです。遊びを通じて多くのことを学んでいきます。

遊びは「失敗しても怒られない」活動です。また、遊びといっても、子供は時間を忘れるほど、真剣に遊びます。結果として多くのことをトライ&エラーして身につけます。

大人は前提となる知識をいっぱい持っていますが、クリエイティビティでは「子供に負ける」と思っている人がほとんどでしょう。ですが、僕の周りのすごいIT技術者は、みんな「遊んで」います。コンピュータで色々作ってみて「これいいでしょ」と自慢しあったりしています。「この本を読んだら次はこの本」みたいなカリキュラム通りに勉強しても、いい技術者になれるとは限りません。プログラミング言語をオモチャとして、たくさん遊んでみることが重要です。

自分の知識は他の人にもどんどん伝えよう

知識というものはお金と違い、使わないとすぐに錆びてきます。ため込んではいけません。自分で使う以外にも、人に教える、伝えるというのも良いです。自分が勉強して身につけたこと、分かったことをどんどんアウトプットしていくと、「こうするともっと良くなるよ」というようなアドバイスがもらえたり、「そういうのに興味があるなら、こっちの技術もきっと楽しいよ」と情報を教えてもらえるようになります。自分の興味を回りに理解してもらえると、自分のやりたい仕事を回してもらえるようになるかもしれません。隠していていいことは何もありません。

良くある流れとしては、自分で本やウェブを読んだり、外部の勉強会で知った情報を同僚に伝える、というものがあります。また、自分が先輩になれば、後輩に教えるというのも期待されるでしょう。会社によっていろいろルールがあって難易度が高いのは、社内の技術情報の社外への発信です。自分も会社のカンバンを背負っての活動になりますし、自分の能力やパーソナルブランド力を大きく伸ばすことになりますので、可能なら挑戦してみてください。情報系なら、ブログなどでの情報発信のルールが決められていると思います。

自分のブランドを作ろう

人に教えたりし始めると、「この分野を自分の力でもっと良くしたい」という意識が生まれてくるでしょう。例えば、地域で勉強会を主催したり、海外のウェブの情報を翻訳して紹介したり、自分でライブラリを作って公開したり・・・

例えば、Sphinxというドキュメントツールでは、僕は日本で一番詳しい人、と認知されています。きっかけはドキュメントをすべて日本語訳して、仲間を集めてコミュニティを主催したり、実際に仕事でも使っています。もちろん、実際には僕よりもさらに使い込んでいる人もいます。ですが、自分で誇れるものがあれば、仕事も楽しくなりますし、自信も出てきます。執筆や、勉強会・セミナーの講演の依頼も来て「人の役に立っている」「自分が貢献している」という感覚を覚えられるようになってくるでしょう。

ぜひ、若い人たちには、それぞれ「この分野ならオレにまかせろ」と胸を張れるようになって欲しいと思います。ITの世界は、国境線が極めて低いのも特徴です。ネットを通じて世界に発信できます。また、多くの仲間を作って一緒に活動できます。シリコンバレーに転職するような人もいます。ITの世界はとても楽しいです。

もし学生の方がいたら・・・

IT業界はとても楽しい所です。もちろん、すべての会社が楽しいとは限りませんし、同じ会社でも、上司との相性という属人的なランダム要素はあります。ですが、個人個人でどんどん世界を広げていけますし、スキルが付けばできることもどんどん広がります。多くの人の役に立ったり、多くの人を喜ばせることができます。また、どんな企業でも、コンピュータを使わないところはありませんし、活躍の場はどんどん広がっています。

僕は学生時代からコミュニティに参加し、雑誌に記事を書いたり、本を書いたりして自分のブランド、就職難と言われた2004年でも、特に苦労せずに本田技術研究所の入ることができました(あまり落ちる気がしなくて、エントリーシートは1枚しか書きませんでした)。コンピュータは、それ自身が世界と繋がっているため、自分のブランド力を上げるにはこれほど便利な道具はありません。自分のブランドを持ち、「自分が世の中の役に立っている」という自信があれば、就職の面接の時にも伝わります。知り合いのベンチャーの社長も「少し話せば、その人ができるかどうか、すぐに分かる」と言います。面接を突破するのを目的に、表面を取り繕っても時間の無駄です。

ぜひ、この分野で一緒に、日本を元気にしていきましょう。

次は@ymotongpooさんお願いします。

おすすめの本

僕のオススメ(自分の本を除く)は、本文中でも触れた闘うプログラマーです。僕の人生を変えた一冊です。Windows NT(今のWindowsの礎となっている、32ビット版の安定志向のOS)の開発物語です。ドキュメンタリーの重みがあります。

posted by @shibukawa at 13:00 | Comment(88) | TrackBack(0) | プログラミング はてなブックマーク - これから魔法使い(プログラマー)になる、新卒者のみなさんへ
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/43614202
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
検索ボックス

Twitter

Counter

Profile by iddy

www.flickr.com
This is a Flickr badge showing public photos and videos from shibukawa.yoshiki. Make your own badge here.
<< 2016年03月 >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
最近の記事
カテゴリ
過去ログ
Powered by さくらのブログ