Hatena::ブログ(Diary)

naoyaのはてなダイアリー

April 26, 2006

プログラマの種類とキャリア

を読んでいろいろ考えた。

最近はてなブックマークとか見てて、優秀な人は自分がすごいことをやってるとか、努力してることに気づかないみたいな話がありましたね。例えば僕なんかはゲームがすごい好きで、ある程度つまらないゲームでも結構ずーっとやってられるみたいな感じがありますが。んなゲームするのが好きでどうすんだよ! ってそういう話じゃなくて。この感覚をときどき、プログラミングをしてたりコンピュータを触ってるとき、新しい技術について調べてるときに感じることがあるよという話。

その一方で、読みづらくて分かりづらい本を読んだり、ひたすらバグを叩いてるときとか、同じプログラミングに関することでも気分が滅入るときはたくさんある。プログラマという職業を続けられるのは、プログラミングが好きだからと思う一方で、好きだからといっても意識して努力しないといけないときもあるし、それが辛いと思うときもある。好きなことだけやってればうまくいくっていうほど甘くはないというのがよくわかる瞬間です。

過去に、自分が頭の中で思い描いたものを思うように作れないことに気づいて、とにかくがむしゃらに勉強していた時期がありました。そのときは作りたい物が作れるようになりたいという気もちがかなり強かったんだけども、やっぱり勉強し続けるのはかなり苦しいこともあって。毎日会社が終わると近くの本屋に行って本を買って、喫茶店が閉店するまでこもって読書して、帰ってから仮眠をとって、夜中に起きて朝までプログラミングする。そんなことをずっと続けてた時期がありました。

上司との面談で「プログラマはいらないんだよ、人を使って物を作れるやつが求められてる」みたいなことを言われたことがありました。でも自分は絶対それは違うと思っていて、自分の手で物を作れる人間じゃないと作れない物がたくさんあると思ってたのだけど、それを証明するだけの力量が自分にはなかった。だから必死で勉強した。いつかこいつらを見返してやるって思って勉強してたら、苦しいと思う気持ちもなんとか乗り越えられたように思います。

自分は、世の中を先回りできるかどうかとか、そのとき必要と思われる技術を勢い付けて身につけられるかどうかとかいうのは、こういう自分を突き動かすモチベーションみたいなのを強く持てないと難しいと経験的に思っている節があります。そしてそういうモチベーションの創出能力みたいなのは、先天的な適正とかにかなり依存してる感がある。だから、もしそういうアンテナの高さとかで自分の価値を出していきたいなら、それが好きかどうかを自問してみること。自問してみて、自分はそこまで好きじゃないと思ったら、無理にそれは追求しない方がいい。どうやってもあの人やあの人、あなたの頭の中にある理想像には追いつけない。

そして、重要なのは、そういう人だけが技術の世界の頂点ではないということをちゃんと認識できるかどうかです。

はてなのプログラマ。周りから見ると、みんながみんな新しい物好きで日々いろんなことを試しては嬉々としてそれをやってる風に見えるかもしれない。新しい物好きなのはそうだけれども、じゃあみんな新しいことばかりやってるかというと全くそんなことはない。そればっかりやってる人間みたいなのは僕を含め数人しかいない。他の人は他の人で全然タイプが違う。この辺は小野さんが前に風林火山で分類していたけどまったくその通りです。はてなのエンジニアがみんな火のエンジニアだったら、全然回らないんです。

プログラマは新しい技術に長けていることだけが価値じゃない。

大量に積もった細かいタスクを淡々とこなしていける並行処理能力をもったプログラマ。あるいは人が作ったものを丁寧に磨いていける能力を持ったプログラマ。そういう複数のカテゴリの人たちが一緒になって組織を作っていくのです。組織はお互いがお互いの仕事を尊敬しあってやっていないと、いずれ崩壊する。だから、僕はこの異なるタイプのエンジニアの能力というのをお互いがお互いに認識しあえるかどうかは非常に重要だと思っています。

また、そういう意味において、自分の得意な能力を使って仕事をしている、自分にはできないこと別の人がやっている、それをお互いが認識している場所を選べる/探せるかどうかがキャリアを磨く上で一番重要なのではないかと思うようになりました。

だから Ajax だ Web 2.0 だ、そういうのができる人材がいないとか言ってみんなが「そうだそうだ」なんていってる所はやっぱりろくなもんじゃない。浮かれた技術を取り入れたいと思う前に、ちゃんとそういう浮かれた事じゃないことをやってる人を評価するべし。そして、あなた方が欲しいと思っている技術者は、おそらくあなたの隣にいる。しかしあなたがそうじゃない技術者を正しく評価できない限り、あなたが欲しいと思っている技術者は、いつまでのあなたの目にはそういう技術者として写ることはないのです。

DorablueDorablue 2006/04/26 18:53 こんにちは。いつも興味深く拝見しています。最後の最後の「浮かれた技術」という表現が台無しにしているように感じます。それも他と変わらない一つの必要な要素ですよね。ではでは。

hamastahamasta 2006/04/26 22:42 コーディングが遅くても、見た目がダサくても、
リリースでバグを出さない事のほうが100倍重要なんですよ。偉い人にはわからんのです(略
古くはピープルウェアあたりにも、この手の話(コードよりコミュニケーションによって開発を円滑化するタイプの人)があったような、、、

rintaromasudarintaromasuda 2006/04/27 06:27 単純な質問なんですけど、「夜中に起きて朝までプログラミングする」って具体的にはどんなプログラムを書かれていたんですか?

minonetminonet 2006/04/29 12:39 決まったサービスを売らなければいけない会社ではないので、プログラマー天国かもしれません。プログラマーが作りたいサービスを作る。決まったサービスがある場合、そのサービスの要求分析をすることが重要です。その意味で、前の会社の上司が求める人材は会社としては適切だったのではないでしょうか?

こうこう 2008/01/09 16:32 うんうん!僕もそんなかんじです