Hatena::ブログ(Diary)

yvsu pron. yas このページをアンテナに追加 RSSフィード

2010-09-23

ある程度の年齢を迎えたプログラマが生き残るには

ある程度の年齢を迎えたプログラマが抱える悩みに、「若手のプログラマと比べて、どうやって価値を出していくか」という問題があります。これは言い換えれば「同じような生産性であれば、相対的に給料の低い若手のプログラマに置き換えられてしまうのではないか」という悩みです。

ある程度の年齢を迎えたプログラマが抱える悩み - bkブログ

35才(2004年)でプログラマとしてオープンソースを始め、今年で42才になる俺が通りますよ。

35才までは、SIerの中でSEをやってたので、そんなにプログラムは書いたことがないです。


上記のエントリには、いろんな戦略が書いていますが、ぶっちゃけ戦略は一番重要なことではなく、一番重要なのは、常に自分価値を高めるために努力し続けることです。

努力や挑戦をやめたら、自分価値はどんどん陳腐化して下がっていくのは当たり前なのです。


自分がどんなことに挑戦してきたのかちょっと書いてみますね。


2004年1月プログラマとして何か新しいことに挑戦したかった自分は、DI(Depencency Injection)とAOP(Aspect Oriented Programming)いう技術を選択し、オープンソースプロジェクトとしてSeasar2スタートさせます。当時、DIAOPは何が嬉しいのかあまり理解されていなかった頃です。でも直感的に良い気がしたんだよねー。特に理由はなく勘。そして、3月末にSeasar2リリースすることになります。


DIAOPは良いプログラミングスタイルをもたらすもので、生産性を向上させるものではないと当時思われていましたが、普及させるためには、生産性を向上させることも示さなければいけないと考え、インターフェースAOPを仕掛け、SQL自動生成するというS2Daoというデータベースフレームワークを思いつきます。

リリース2004年、夏くらいかな。

この後のSeasar2の普及には、S2Daoが欠かせなかったと思います。S2Daoを使いたいために、Seasar2を(仕方なく)使うという人も多かったはずです。

インターフェースAOPを仕掛けコード自動生成するというスタイルを思いついたのは私が初めてだったはず。


データベースだけでなく、Webの部分も生産性を向上させなければいけないと考えた私は、HTMLテンプレートを使ったWebフレームワークであるS2JSFリリースします。HTMLテンプレートを使ったフレームワークは、当時Tapestryなどいくつかありましたが、JSFという標準技術HTMLテンプレート採用したのは、私が初めてだったはず。その後、Faceletとか出てくるんだけどね。

リリース2005年、頭くらいかな。


2005年Railsが徐々に人気が出てきて、設定ファイルは悪みたいな流れが出てきます。この流れに沿って、設定ファイルなしでアノテーションで設定を行うSeasar2.3をリリースしました

2005年、末くらいかな。

今では、クラスパス捜査してクラスに設定されているアノテーションを読み取る手法は、非常にポピュラーですが、Javaでこのスタイルを導入したのは、Seasar2が初めてだったはず。


設定ファイルをなくすだけでは、生産性は余り向上しないと気づいた私は、Java生産性を飛躍的に向上させるために、スクリプト言語のようにソースコードを修正したら、その変更が即座に反映されるHOT reloading(当時はHOT deployと呼んでました)という技術を思いつきます。Javaでこのスタイルを導入したのは、Seasar2が初めてだったはず。

Seasar2.4のリリース2006年末です。


当時、Webフレームワークの代表であるStruts時代遅れだと考えられていて、次々新しいフレームワークが発表されていましたが、いまいち普及していませんでした。この状況を見た私は、全く別のフレームワークを作るのではなく、Strutsベースにbetter Strutsを作るのが世のニーズにあっているのではと考え、SAStruts作成します。

SAStrutsリリース2008年のはじめのほうです。

SAStrutsは、かなりの成功を収めました。今でも人気があります。


2009年4月Google App Engine for Javaが発表になりました。これをみて、これまでの自分テリトリーだったEnterprise Javaを捨て、Cloudに行こうと決心します。Slim3の開発が始まります。

Slim3リリースは、2010年3月くらいです。


2010年、これからの時代は、ソーシャルアプリだと思っていましたが、携帯Flash Liteを使ったソーシャルアプリは、2010年でピークを迎える気がしていて、どうやってビジネスをやっていこうか悩んでいました。

そこで発表されたのが、JobsFlash外し(これは、後にまたひっくり返されるんですが)です。

よし、これからはHTML5ソーシャルアプリだと考え、技術調査 + 新規事業を計画し、金を出してくれる人の説得を始めることになります。


で、今に至る感じ。他にも紹介していない話はありますが、だいたいはこんな感じです。


ずっと、挑戦し続けているでしょ。挑戦したから必ずしも成功するとは限らないけど、挑戦しなければ、自分が陳腐化してだめになることは間違いないです。


これは、実はプログラマに限った話ではなくて、どんなことにでも言えることだと思います。常に自分価値を高めるために挑戦し努力し続けることが重要だということです。


9/28のGoogle Developer Day 2010では、ソーシャルアプリを作るのにGoogle App Engineがどんなに向いているかの話をします。お楽しみに。

通りすがり通りすがり 2010/09/24 02:31 高林さんのブログ見て脊髄反射で書いちゃってません?
すごく的外れな内容になってると思います。

kontakonta 2010/09/25 20:02 私はつい去年まで、ひがさんのいう「挑戦」の意味がわかってませんでした。(今32歳)
そのくせ、どこか批判的でした。情けない男です。

しかし、心というのは不思議なもんで、”もしかしてこれは正しいことなのかもなぁ” 
と思う情報(声)を無視できないもんです。 

ひがさんのblogを読みにくる人は、色々批判しちゃったりする人も含めて、
たぶんそういう心をもった人なんじゃないでしょうか。
なんて思います。

挑戦することに臆病になることもあるかもしれないけど
挑戦しないでいて自由を奪われてしまうより、挑戦してボコボコになる方がよっぽど気が楽です。
IT業界は、ほかの業種に比べたら、努力次第でどうとでも成功を手に入れられる自由がありますね。
これは、他の業種に行ってみないときっとわからないと思います。
(頭のよい人は行ってみなくてもわかるでしょうね。オイラはアホだから実際に異業種にいってみて
 わかった。。そして帰ってきちゃったwアホじゃ)

変人かも変人かも 2010/09/26 20:46 なんとなく違和感があったのでコメントします。
やりたいコトをやっていれば、自然とチャレンジになるのでは?
成果は結果にすぎませんから、成果が出るかどうかは別の話で、
生き残るということは、やりたいコトが有るということだと思います。
やりたいコトが無いのに「生き残りたい」とは、ただ無為に時間を過ごしたいという意味に思えてしまいました。

mumanmuman 2011/01/25 07:44 私40歳です。ひがさんに共感します。
20代前半に勤めていた電機メーカーの上司(当時40歳くらい)に「SEやれるのは40までだ。お前も覚悟しとけ」といわれました。

その後、50名規模の会社に転職し、36歳でいわゆる会社側の立場になったのですが、上司との不毛な論争が絶えず、結果として会社をとびだして独立することになりました。
論点は大雑把にいうと、「会社風土をHACKにするか否か」です。

私と同年代のSEは大勢います。その人たちすべてが50名規模の会社で管理職となり、非エンジニアの立場で飯を食うことはできないはずです。また、ものを知らない管理職がエンジニアを管理するのは至難の業であることを理解していない人たちにも閉口してしまいます。最低でも「判断」に必要な知識を持ってないと、座り心地のいい椅子に座ることが仕事になってしまうでしょう。

このような立場の私は「SEやれるのは40まで」なんて説を受け入れるわけにはいかないのです。結果を出して証明しないといけませんし。
5年のブランクを埋めるためにやらなければならないことはたくさんありますが、やるだけです。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証