プログラマ人生論

13

Click here to load reader

Upload: hirotaka-yamamoto

Post on 14-Jun-2015

15.702 views

Category:

Technology


0 download

DESCRIPTION

挫折だらけのプログラマー人生を振り返ってみました。

TRANSCRIPT

Page 1: プログラマ人生論

プログラマ35歳定年説 Wikipedia  (プログラマ # プログラマ定年説)

“ プログラミング技術は進歩が激しく、技術の陳腐化も著しいため、常に新しい技術に目を向け習得していくバイタリティや、場合によっては永年の努力によって培ってきた技術を捨て去る柔軟性が必要である。また、年功序列的賃金体系のもとでは、高年齢のプログラマはコストが高すぎると考える企業がある(特にプログラミングを単純作業と考える企業に多い)。俗に IT 土方とも呼ばれデスマーチとなった場合は徹夜が続いたり体力が必要となってくる。そのため、プログラマとしての限界は 30 ~ 35 歳前後であるという説が存在した。これは「プログラマ35 ( 30 )歳定年説」と呼ばれる。”

Page 2: プログラマ人生論

プログラマ人生論山本泰宇 (@ymmt2005)

Page 3: プログラマ人生論

子供時代 「プログラム」を初めて見たのは小学校低学年 マイコンの BASIC で PRINT するもの

一目ぼれ(笑) PRINT は「ぴーあーるいんてじゃー」と読んでました

MSX2 を5年生のころ手に入れる ゲームを作ろうとして絵心がなく挫折

10 INPUT “1+3=?“; A$20 IF A$=“4” THEN 5030 PRINT A$, “WRONG!”40 GOTO 1050 PRINT A$, “CORRECT!”60 GOTO 10

Page 4: プログラマ人生論

中高時代 遊びすぎて、親に MSX2 を捨てられる

Page 5: プログラマ人生論

大学時代

1年目

•Pascal でマージソートを書こうとして挫折する

2年目

•情報科学科で、周囲とのレベル差に心が折れる

3年目

•授業で C++ を一日で覚えたことにされて挫折する

•オープンソースソフトウェアをビルドしまくる

4年目

•研究室まわりで、スレッド作ってと言われて挫折する

•Scheme は実用に向かないと思い知る

Page 6: プログラマ人生論

大学院時代

1年目

•分散 GC の研究で1カ月デバグしても動かなくて挫折する

•結局まるまる作り直して動いた

2年目

•C/C++, 各種アセンブリ, Java 等を覚える

3,4年目

•あれこれやるも、研究としては成果が出ず

5年目

•挫折してサイボウズに入社

Page 7: プログラマ人生論

社会人時代(その1)

1年目

•独自組み込みDBを常駐型に変える初仕事に挫折

•大規模版グループウェアの管理システムを作る

2年目

•製品基盤の刷新プロジェクトに異動

•MySQL の OEM 契約を MySQL AB とする•外国

人との交渉に四苦八苦したが、無事締結

3年目

•刷新はほぼ終わる

•Garoon2 プロジェクトマネージャーに抜擢&異動

4年目

•Garoon2 進めている最中に開発部長に抜擢

•もはやコードを書く時間などなくなる

Page 8: プログラマ人生論

開発部長の頃の私

Page 9: プログラマ人生論

社会人時代(その2)5,6年目 •開発本部長になるが、限界を感じて挫折、降格

•開発の主流から外れて社内ニート

7年目 •CTOとしてオンプレミス向けの新基盤開発を進める•一方でクラウド化を提案して自分の首を絞める

8,9年目 •cybozu.com の全体設計とプロジェクト管理を務める•インフラの開発もこなし、無事去年リリース

ナウ •CTOを返上してただのプログラマになる

Page 10: プログラマ人生論

プログラマー人生のまとめ

振り返ると挫折と失敗ばかり

• まだできないことにチャレンジしてきた証• 最初からいいものなんか作れないよ!

35歳まで

• 部長とかCTOとかの肩書インフレ• 経験不足がたたって成果は出なかった• 社内ニートしている間に技術的な見識は深まった

35歳~

• 思うように成果が出せるようになりました

Page 11: プログラマ人生論

最近のお仕事紹介

ストレージシステム

• 高可用、高機能• バックアップと遠隔データセンターへのレプリケーションも

社内勉強会

• モダン C++ プログラミング• Linux システムプログラミング• マルチスレッドプログラミング• ネットワークプログラミング

PKI を利用した二要素認証

• CA の自動管理• Windows XP や iPhone/iPad 対応が肝

Page 12: プログラマ人生論

勉強会の内容紹介モダン C++ プログラミング マルチスレッドプログラミング モダンの定義 コーディングスタイル

const , explicit はきちんとつける 初期化・初期化子・定義 デストラクタと継承 名前空間を適切に使う コピーと参照を使い分ける

文字列 std::string のススメ cybozu::String

例外 例外クラス 例外の投げ方・受け取り方 例外指定は使わないこと

例外安全 RAII コピー制御 スマートポインタの使い方 STLコンテナの使い方

テンプレートとの正しいつきあい方 モダン C++ ライブラリ C++11 について

スレッドプログラミングとは スレッドとその実装 解決可能な問題の種類 共有メモリモデル いつマルチスレッドプログラミングをするべきか

メモリを同期するということ メモリ階層 リオーダーとメモリバリア メモリモデル アトミック操作 キャッシュラインとフォールスシェアリング

マルチスレッドプログラムの落とし穴 レース デッドロック スタベーション

同期プリミティブ ブロックするもの ブロックしないもの

Tips volatile の正しい理解 キャンセル sleep, fork とスレッド

Page 13: プログラマ人生論

結論

プログラマ35歳定年説はやはり間

違い

サイボウズでは35歳以上のプログラマ

も大活躍!

新人の皆さんが勉強する機会が沢山あり

ます