「出過ぎた杭」を目指してみませんか? – 新卒エンジニアに向けて -

新卒準備カレンダー 2011 春というおもしろい企画がありまして、3 日目は自分が担当させて頂くことになりました。@shibukawa さんの様に抽象的なレベルまで高めて書くほどの経験は残念ながらありませんので、僕ものんべんだらりと自分語りをしたいと思います。

Who are you?

DeNA のサーバインフラエンジニア新卒 2 年目(=もうすぐ 3 年目)です。主な言語は Perl とshow slave statusです。プログラムやコンピュータに結構詳しい学生さんでも、インフラって何やってるのかについてはイマイチ伝わらないことが多いのですが、一応説明しておきます。僕は大してコードも書いてませんし、かといってプロジェクトマネージャみたいに人の管理もしていません。僕が相手にしているのはシステムが動いているコンピュータ(=サーバ)そのものです。システムの多くは無数のサーバが通信しあって提供されていますが、それらサーバが24 時間 365 日健全に動くことをコミットするのが僕の使命です。とは言っても、無駄にサーバを投入するのは事業として過剰投資なので、そうならないように適切に全体をコントロールしています。そのために、プログラマはもちろん、事業サイドの人や企画担当の人、経理の人やデータセンタの人など割と色んな人とコミュニケーションを取っています。そして彼らの「これで大丈夫ですよね?」という(主に)技術的な質問に対して、全て適切に答えられる様に日々勉強をしている次第です。ね、分かりにくいでしょ?orz

僕は入社した時からサーバとか詳しかった訳では全く無くて、それはそれは平々凡々以下のちょっとコンピュータに詳しいアニメオタクでした。Linux 歴 1 年、web アプリ作った事無し、SQL 一切書けない、コンピュータのアーキテクチャとかあばば、アルゴリズムとかまんじゅうこわい。あぁ、そういえば実は新卒じゃなくて大学院辞めてるので既卒だったりと、まぁ中途半端な人間でした。そんな箸にも棒にもかからない自分でしたが、約 2 年必死こいてやってみた結果、「エキスパート」とか勝手に会社に肩書き付けられてしまったりする様になりました。自分は全然エキスパートだとは思ってませんが、一応お給料的にはそれなりに認めてもらってるのかなーと感じてます。

というわけで、なんでこんなことになったのかについて、これから少しお話したいと思います。偉そうな話で、かなーり偏った考えなのは承知の上ですが、色んな人がいるんだなーということを知って頂ければいいかなと思います。

最初に言っておきますが、僕は割とゼロに近いレベルから始めて今のポジションまで来たので「すげー成長したぜ」アピールは割と簡単なんですが、エンジニアの価値は「今何ができるのか」です。成長量なんてスタート地点を意図的に下げておけばいくらでも水増しできますからね。これから新卒として IT 業界に入る皆さんも「振り返ったらこんなことまでできるようになってオレすごくね?」とか勘違いしないで、常に「オレは今何ができるのか」を問い続けると良いと思います。自戒も込めて。

「出過ぎた杭は誰も打てない」

本題の前に、僕の尊敬するエンジニアの 1 人である石井裕先生の有名なメッセージの一つを引用しておきたいと思います。

私からのメッセージはいつも決まっていて、「出る杭は打たれるが、出過ぎた杭は誰も打てない」ということです。

突出しつづけるために必要なことは、自分への誇りであり、それを潰されたときの屈辱感であり、それをバネにして生まれる飢餓感です。飢餓感とは単なる胃袋の話ではない。インテレクチャルな世界、ビジネスのフィールドでいかに飢餓感を持ち続けるかが大切なのです。

石井裕 MIT 教授が語るソーシャルテクノロジーの近未来/Tech総研

僕はエセ学生時代の最後の頃にたまたま石井先生の講義を拝聴したのですが、それはそれは脳みそぶん殴られたような感覚を覚えました。ついこの間石井先生とホンの少しお話させて頂く機会があったので、その時の講義を話題に出したら覚えてくださっていました。

さて、「出る杭は打たれる」ということわざは、ネガティブに捉えれば「閉鎖的で人を蹴落とす陰鬱な社会」をあらわしているだけの様に思えますが、「出る杭」側になんの非もないかと言えばそんなことは無いのかなと最近感じます。「成長したい」「活躍したい」と思っている人はきっと沢山いると思いますが、中途半端な成長とか活躍(と自分が思っている)程度では、正直他の人には見えません。社会人になると自分が成長したい方向と全然違う仕事をすることもありますが、それを不満に「おれはこれがやりたいんだ」と勝手なことをされても、それが相当に利益にならない限り迷惑なだけです。そういう人には、弊社の社長が 4 月 1 日に僕らに投げてくれたこの言葉を送ります。

「良質な非常識」と「挙動不審」は違います。挙動不審はただの「迷惑」なのでやめて下さい。

承認欲求というやつがありますが、「出過ぎた杭」になることがその一番の近道だと思います。

何にもできない屈辱感

というわけでやっと入社してからの話をしますが、先述の通りほぼ実力ゼロで入って、まわりはすごい経験を持った人ばっかりなので正直萎縮してました。実は僕がこの業界にこの職業で入った理由は「手に職をつけたかった」からでした。どうしても飯に困った時に食いつなげるためのスキルと実績が欲しかったので、その意味ではそういうすごい人達を助ける小役に収まって、ある程度のレベルまで到達できればいいかなーと最初は思ってました。

でもやってみるとやっぱり悔しい。せっかくエンジニアリングの職にあるのにそんなレベルの低いところで留まってしまいたくない。でも全然できないし、そもそも仕事というものが分からないことも相まって、最初は屈辱感にまみれていました。

MySQL で「出過ぎた杭」を目指そう

そんな中、一番の転機は MySQL というオープンソースの RDBMS に出会ったことでした。入社半年で「DB の主責任者」という仕事をすることになったものの、そもそも SQL 書けないし RDB とか使ったこと無かったので、それはそれは壮絶に勉強する必要がありました。幸運だったのは、超高負荷な DB サーバが目の前にゴロゴロしていて毎日問題ばっかりで、勉強しては試してみるという環境がこれでもかというくらい大量にあったということでした。

最後分からなければソースを読めばいいという安心感のもと、チューニングや管理のために様々に勉強を重ね、その場で実践して、その結果を学習するということを繰り返していくうちに、RDB の面白さを感じてきました。また、オープンソースなのに会社が存在してきちんとお金を稼いでいるという現実を目の前で見て、これはすごいと感じました。何よりも、DB を「責任持って見る仕事」についたおかげで、誰かに何か聞かれたら責任を持って回答しなければならないし、メンテナンス作業では自分の操作一つでデータが消えてしまうかもという強烈なプレッシャーに晒されて、必然的にレベルを引き上げることができました。

『自分はコーディングは全然大したことないけど、MySQL に関係する事柄だったら「出過ぎた杭」になれるかも知れない。』半年くらい MySQL を触ってみてそう感じました。

幸運にもこの短期間で相当量の経験をさせてもらったのだから、これを活かして一度でいいからトップにチャレンジしてみようという思いを持ちました。その時 MySQL Conference というものがあると知ったので自重せずに行かせて下さいと言って、英語も満足にできないのに情報を仕入れにいきました。そこで出会ったシリコンバレーの空気に激しく刺激されて、ますます勉強しました。気がつくと松信さんが目の前にいて「え、オレいらないじゃん。。。」と思った時期もありましたが、飢餓感よろしく彼の知識についていくためにさらに勉強しましたし、同時に自分らしさはなんぞや、ということで会社のブログも書きました。

出過ぎた杭と言えるまでになったかどうかは分かりませんが、少なくとも会社の中では”打たれる”ことはなくなりました。最初はホントに手取り足取り見てもらっていましたが、今では自分がメインで担当している DB については僕の判断で性能管理させてもらっていますし、メンテナンスやバージョンアップやチューニングの検証など、自分の判断で 1 から 10 までやりたいようにやらせてもらっています。次に目指すのは会社から飛び出た広い世界だなと感じています。

ひとつ「出過ぎる」と、他にも「出過ぎてくる」

そのおかげかどうか分かりませんが、別の大きな仕事も任せてもらえるようになりました。新規案件の本番環境を極短期間でゼロから構築する必要があったときにもほぼ全てを任せてもらいました。DB はもちろん WEB サーバなどシステム全体を作る必要があったのですが、普段から DB 以外の部分にもうざいくらいに首を突っ込みまくっていたおかげで、そんなに難しいことではありませんでした。首を突っ込みまくって、知っていることはどんどん提供し、知らないことをどんどん聞きまくっていたら、いつの間にかシステムの現在の全体像を把握するという点においてもかなりの自信が持てるようになりました。

そしてこうした経験を外にアウトプットし始めたら、もっといろんな経験ができる様になりました。MySQL Casual で喋らせて頂いたり、Perl 界隈ではスーパーハッカーな方々に幸運にも名前を覚えて頂いてお話させて頂けたり、qpstudy のようなインフラエンジニアのコミュニティでも名前を覚えて頂いて色んな変な方とお話させて頂けたり、etc。様々なエンジニアの方と知り合いになれたおかげで今まで手を出せていなかったコーディングにも少しずつ手を出せるようになってきました。困ったらすぐ聞けるし、できたものを「発表したい!」という欲が、眠くても忙しくてもコーディングするモチベーションに繋がっています。

あと、ブログや Twitter でもかなり言いたい放題にしてますが、幸いにもまだ上司や人事に呼び出しを受けたことはありません!むしろたまに「これ RT しといて」とか頼まれることもあります!

「出過ぎた杭」を目指してみませんか?

運が良かったというのは十分に認識しています。色んな偶然が重なって普通の人ができない様な経験をさせてもらいました。でもそういう状況におかれれば誰でもすげー成長できるのかと言えば、そうじゃないかなというところで冒頭の引用に戻ります。

僕がここまでやりたい様にやれているのは、振り返ってみると「出過ぎた杭」を目指したからだと思います。実際にそんなに大して出すぎることはまだできてませんが、常に上を見て、誇りと飢餓感を活力にしていると、自然といろんな「いいこと」が起こってきました。そんな時につぶやいたのがこんなのでした。

http://twitter.com/#!/riywo/status/13246070299

あなたも「出過ぎた杭」を目指してみませんか?

「出過ぎた杭」になるために

そのためにはまず、自分はこれができる、もしくはこれができるようになりたい、ということはうざいくらいにアピールした方がいいです。1 年目の時はよく分からなかったですが、2 年目になって 1 年下を見てると、正直誰が誰だかよく分かりません。どういうスキルセットがあるのかもよく分からないし、何目指してるのかも分からない。アピールをうざいと感じる人は多分アピールをスルーして終了なので大した害はなくて、自分に興味を持ってくれる様な人を逃さないためにはアピールしまくるのが良いと思います。僕は余計なことをするなと言われるくらい首を突っ込みまくることで、うざいぐらいアピールしました。

また、自分が得たものも積極的にアピールした方がいいです。アピールするために結局自分が一番勉強するわけで自分の血肉にもなりますし、同じような悩みを持つ人の助けにもなり仲間が見つかるかも知れません。そしてそれが間違っていたときにはフィードバックをもらえる可能性が高くなります。自分の中で間違った納得をして取り返しの付かないことをしてしまうよりは、恥を承知で晒してしまった方がいいです。自分の知識・技術は完璧でミスるはずがないとか思うのは中二までにしましょう。

ただし、正直これらの作業はしんどいです。直接的に給料が上がるわけでもなく、むしろ本業の時間が削られてしまうことが多いわけですから。本気で「出過ぎた杭」を目指そうと思わない人にはここまで要求する必要はないかなと思います。ただ、出過ぎた杭を目指すことによって得られるこの「良循環」は非常に心地良いです。フィードバックを貰えるから苦しくてもがんばれて、その結果どんどんフィードバックを受けることができて、また成長してアウトプットできて、、、

エンジニア最高!

そして、なによりすばらしいのは、エンジニアにはこうした行為を非常に行い易い環境がすぐそこにあるということです。ブログを作れば今からでも発信できます。IT 勉強会カレンダーを見れば毎日の様に勉強会が開催されていて、未来の仲間と出会えるでしょう。LT の様にハードルが低い発表の場も沢山ありアピールし放題です(高橋メソッド最高)。もちろん会社の中で共有するのも良いでしょうが、会社の外に目を向けてみると遥か広大な世界が広がっていることに気づくと思います。

僕の様なリアルなコミュニケーションがとても苦手な人種であっても、仲間を見つけることはできたのですから、厳しい就職活動を乗り越えた皆さんであればきっともっと素晴らしい仲間を見つけることができると思います。

せっかくエンジニアになるのであれば、世界を目指すと楽しいです。プログラムの世界には国境も年齢もありません。自分の作ったものが世界中の人に使ってもらえるかも知れないのです。年齢や経験に関係なくソフトウェアに貢献することが可能です。こんなにも世界が近い業種はそうはないんじゃないでしょうか。あなたも仲間を見つけて世界に轟く「出過ぎた杭」になりませんか。それはあなたが思っている程に遠い世界の話ではありません。

まとめ

  • 「出過ぎた杭は誰も打てない」→ 出過ぎた杭を目指してみませんか?

    • うざいくらいアピールしましょう
    • アウトプットしましょう
    • 仲間を見つけましょう

というわけで、2 年目の若造が偉そうなことを書いてみました。そもそもお前出過ぎてないだろという話は置いといて、目指すのが大事かなーと。これで後続の方も臆せず色々はっちゃけやすくなったのではないでしょうか!

こんなこと書くのもアレですが、僕は正直一生エンジニアでいようとは思っていません。他にもやりたいことがあります。でも、今、この業界に居られて、たくさんのエンジニアと触れ合うことができて本当に幸せだと思っています。MySQL Conference や YAPC::Asia という組織を超えたカンファレンスに参加して、本当にすばらしい世界だなと感じています。ずっとここに居たいなと思ってしまうくらいです。

これからこの業界に飛び込んでくる皆さんも、ぜひ存分にすばらしい世界を感じ取って下さい。そのためには会社の中で業績をあげると共に、どんどん外の世界と関わっていくと良いです。すげーこの人!と思った人には臆せず話かけてみて下さい。気がつくと、会社の隣の席に座ってるかも知れませんよ ← これ実話 × 数回

おすすめの本

最後に新社会人に向けたおすすめの本ということで 1 冊ご紹介します。

技術とは関係ない本ですが、社会人になる直前に読んでおくとチョーやる気出ます。自分の書評エントリはこちらになります。

おわりに

書き終えてみて、正直こんなの入社前に読んでも「なにこいつ偉そう」で終わりそうな気がしてきましたが、自分がこの 2 年で感じてきたことは素直に書けたと思いますので、後悔はしていません>< 何かの時に思い出して頂ければと思います(自分含む)。

すばらしい企画をとりまとめて頂いた@ymotongpoo さんありがとうございます!明日は@tokibito さんの素敵なエントリです!

  • laitaka777 11-03-04 (金) 15:28

    僕は UEC の情報工学科で現在、春季休業中なのですが、本文を読んでヤル気が出ました!!もっとプログラミングに夢中になって出過ぎた杭を目指します!!

  • riywo 11-03-04 (金) 18:06

    > laitaka777 さん
    ありがとうございます。期待しています!

  • sachiyo 11-12-25 (日) 16:47

    学生 18 年目のものです。社会に出るって怖いと思ってたけど、本エントリ―を読んで希望が持てました、ありがとうございます。