SlideShare a Scribd company logo
1 of 13
プログラマ35歳定年説
   Wikipedia (プログラマ#プログラマ定年説)
    “プログラミング技術は進歩が激しく、技術の陳腐化
    も著しいため、常に新しい技術に目を向け習得して
    いくバイタリティや、場合によっては永年の努力に
    よって培ってきた技術を捨て去る柔軟性が必要であ
    る。また、年功序列的賃金体系のもとでは、高年齢
    のプログラマはコストが高すぎると考える企業があ
    る(特にプログラミングを単純作業と考える企業に
    多い)。俗にIT土方とも呼ばれデスマーチとなった
    場合は徹夜が続いたり体力が必要となってくる。そ
    のため、プログラマとしての限界は30~35歳前後で
    あるという説が存在した。これは「プログラマ35
    (30)歳定年説」と呼ばれる。”
プログラマ人生論
   山本泰宇 (@ymmt2005)
子供時代
   「プログラム」を初めて見たのは小学校低学年
   マイコンのBASICで PRINT するもの
           10   INPUT “1+3=?“; A$
           20   IF A$=“4” THEN 50
           30   PRINT A$, “WRONG!”
           40   GOTO 10
           50   PRINT A$, “CORRECT!”
           60   GOTO 10

   一目ぼれ(笑)
       PRINT は「ぴーあーるいんてじゃー」と読んでました
   MSX2 を5年生のころ手に入れる
       ゲームを作ろうとして絵心がなく挫折
中高時代
   遊びすぎて、親に MSX2 を捨てられる
大学時代
      • Pascal でマージソートを書こうとして挫折する
1年目


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

    • 授業で C++ を一日で覚えたことにされて挫折する
3年目 • オープンソースソフトウェアをビルドしまくる

    • 研究室まわりで、スレッド作ってと言われて挫折する
4年目 • Scheme は実用に向かないと思い知る
大学院時代
        • 分散 GC の研究で1カ月デバグしても動かなくて挫折する
1年目     • 結局まるまる作り直して動いた



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



        • あれこれやるも、研究としては成果が出ず
3,4年目



        • 挫折してサイボウズに入社
5年目
社会人時代(その1)
      • 独自組み込みDBを常駐型に変える初仕事に挫折
      • 大規模版グループウェアの管理システムを作る
1年目

      • 製品基盤の刷新プロジェクトに異動
      • MySQL の OEM 契約を MySQL AB とする
2年目     • 外国人との交渉に四苦八苦したが、無事締結



      • 刷新はほぼ終わる
      • Garoon2 プロジェクトマネージャーに抜擢&異動
3年目

      • Garoon2 進めている最中に開発部長に抜擢
      • もはやコードを書く時間などなくなる
4年目
開発部長の頃の私
社会人時代(その2)
        • 開発本部長になるが、限界を感じて挫折、降格
5,6年目   • 開発の主流から外れて社内ニート

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

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


        • CTOを返上してただのプログラマになる
 ナウ
プログラマー人生のまとめ
振り返ると挫折と失敗ばかり
• まだできないことにチャレンジしてきた証
• 最初からいいものなんか作れないよ!


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


35歳~
• 思うように成果が出せるようになりました 
最近のお仕事紹介
 ストレージシステム

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

 社内勉強会

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

 PKIを利用した二要素認証

 • CAの自動管理
 • Windows XP や iPhone/iPad 対応が肝
勉強会の内容紹介
                                    マルチスレッドプログラミン
モダン C++ プログラミング                     グ
   モダンの定義                             スレッドプログラミングとは
   コーディングスタイル                             スレッドとその実装
       const , explicit はきちんとつける          解決可能な問題の種類
       初期化・初期化子・定義                        共有メモリモデル
       デストラクタと継承                          いつマルチスレッドプログラミングをするべきか
       名前空間を適切に使う                     メモリを同期するということ
       コピーと参照を使い分ける                       メモリ階層
   文字列                                    リオーダーとメモリバリア
       std::string のススメ                   メモリモデル
       cybozu::String                     アトミック操作
   例外                                     キャッシュラインとフォールスシェアリング
       例外クラス                          マルチスレッドプログラムの落とし穴
       例外の投げ方・受け取り方                       レース
       例外指定は使わないこと                        デッドロック
   例外安全                                   スタベーション
       RAII                           同期プリミティブ
       コピー制御                              ブロックするもの
       スマートポインタの使い方                       ブロックしないもの
       STLコンテナの使い方                    Tips
   テンプレートとの正しいつきあい方                       volatile の正しい理解
   モダン C++ ライブラリ                          キャンセル
                                           sleep, fork とスレッド
   C++11 について
結論

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



     新人の皆さん   サイボウズで
     が勉強する機   は35歳以上
     会が沢山あり   のプログラマ
       ます      も大活躍!

More Related Content

Viewers also liked

アーキテクトになるには
アーキテクトになるにはアーキテクトになるには
アーキテクトになるにはymmt
 
iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術vaccho
 
N88-BASIC Language
N88-BASIC LanguageN88-BASIC Language
N88-BASIC Languagesunflat
 
マイコンを語る
マイコンを語るマイコンを語る
マイコンを語るotmb
 
自作ゲーム配布方法の歴史
自作ゲーム配布方法の歴史自作ゲーム配布方法の歴史
自作ゲーム配布方法の歴史sunflat
 
技術書執筆とリモート
技術書執筆とリモート技術書執筆とリモート
技術書執筆とリモートKenji NAKAGAKI
 
Awful Guy in Early Ages of Japanese Computer / 昔の人はえらかった
Awful Guy in Early Ages of Japanese Computer / 昔の人はえらかったAwful Guy in Early Ages of Japanese Computer / 昔の人はえらかった
Awful Guy in Early Ages of Japanese Computer / 昔の人はえらかったNaruhiko Ogasawara
 
8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねてsuno88
 
土日でさっさとサービスを作る
土日でさっさとサービスを作る土日でさっさとサービスを作る
土日でさっさとサービスを作るEsehara Shigeo
 
使っていない貴方は損をしている? ~サイボウズのカスタマーサービス、全て見せます~
使っていない貴方は損をしている? ~サイボウズのカスタマーサービス、全て見せます~使っていない貴方は損をしている? ~サイボウズのカスタマーサービス、全て見せます~
使っていない貴方は損をしている? ~サイボウズのカスタマーサービス、全て見せます~Cybozucommunity
 
「サイボウズ Office」管理者のための、 最新バージョン徹底解説
「サイボウズ Office」管理者のための、 最新バージョン徹底解説「サイボウズ Office」管理者のための、 最新バージョン徹底解説
「サイボウズ Office」管理者のための、 最新バージョン徹底解説Cybozucommunity
 
Webアプリケーションをもっと楽しく! 〜フロントエンドのお仕事〜
Webアプリケーションをもっと楽しく! 〜フロントエンドのお仕事〜Webアプリケーションをもっと楽しく! 〜フロントエンドのお仕事〜
Webアプリケーションをもっと楽しく! 〜フロントエンドのお仕事〜Yusuke Amano
 
日本型チームワークマネジメントの輸出~海外拠点におけるkintoneの成功事例~
日本型チームワークマネジメントの輸出~海外拠点におけるkintoneの成功事例~日本型チームワークマネジメントの輸出~海外拠点におけるkintoneの成功事例~
日本型チームワークマネジメントの輸出~海外拠点におけるkintoneの成功事例~Cybozucommunity
 
rebaseにまつわる3つの誤解
rebaseにまつわる3つの誤解rebaseにまつわる3つの誤解
rebaseにまつわる3つの誤解ymmt
 
28歳からのプログラマー
28歳からのプログラマー28歳からのプログラマー
28歳からのプログラマーEsehara Shigeo
 
kintoneを進化させる2つの方法
kintoneを進化させる2つの方法kintoneを進化させる2つの方法
kintoneを進化させる2つの方法Cybozucommunity
 

Viewers also liked (20)

アーキテクトになるには
アーキテクトになるにはアーキテクトになるには
アーキテクトになるには
 
iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術
 
N88-BASIC Language
N88-BASIC LanguageN88-BASIC Language
N88-BASIC Language
 
Dmedia
DmediaDmedia
Dmedia
 
What's Operating System?
What's Operating System?What's Operating System?
What's Operating System?
 
マイコンを語る
マイコンを語るマイコンを語る
マイコンを語る
 
自作ゲーム配布方法の歴史
自作ゲーム配布方法の歴史自作ゲーム配布方法の歴史
自作ゲーム配布方法の歴史
 
技術書執筆とリモート
技術書執筆とリモート技術書執筆とリモート
技術書執筆とリモート
 
Awful Guy in Early Ages of Japanese Computer / 昔の人はえらかった
Awful Guy in Early Ages of Japanese Computer / 昔の人はえらかったAwful Guy in Early Ages of Japanese Computer / 昔の人はえらかった
Awful Guy in Early Ages of Japanese Computer / 昔の人はえらかった
 
8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて
 
GC黄金時代
GC黄金時代GC黄金時代
GC黄金時代
 
土日でさっさとサービスを作る
土日でさっさとサービスを作る土日でさっさとサービスを作る
土日でさっさとサービスを作る
 
Project erp
Project erpProject erp
Project erp
 
使っていない貴方は損をしている? ~サイボウズのカスタマーサービス、全て見せます~
使っていない貴方は損をしている? ~サイボウズのカスタマーサービス、全て見せます~使っていない貴方は損をしている? ~サイボウズのカスタマーサービス、全て見せます~
使っていない貴方は損をしている? ~サイボウズのカスタマーサービス、全て見せます~
 
「サイボウズ Office」管理者のための、 最新バージョン徹底解説
「サイボウズ Office」管理者のための、 最新バージョン徹底解説「サイボウズ Office」管理者のための、 最新バージョン徹底解説
「サイボウズ Office」管理者のための、 最新バージョン徹底解説
 
Webアプリケーションをもっと楽しく! 〜フロントエンドのお仕事〜
Webアプリケーションをもっと楽しく! 〜フロントエンドのお仕事〜Webアプリケーションをもっと楽しく! 〜フロントエンドのお仕事〜
Webアプリケーションをもっと楽しく! 〜フロントエンドのお仕事〜
 
日本型チームワークマネジメントの輸出~海外拠点におけるkintoneの成功事例~
日本型チームワークマネジメントの輸出~海外拠点におけるkintoneの成功事例~日本型チームワークマネジメントの輸出~海外拠点におけるkintoneの成功事例~
日本型チームワークマネジメントの輸出~海外拠点におけるkintoneの成功事例~
 
rebaseにまつわる3つの誤解
rebaseにまつわる3つの誤解rebaseにまつわる3つの誤解
rebaseにまつわる3つの誤解
 
28歳からのプログラマー
28歳からのプログラマー28歳からのプログラマー
28歳からのプログラマー
 
kintoneを進化させる2つの方法
kintoneを進化させる2つの方法kintoneを進化させる2つの方法
kintoneを進化させる2つの方法
 

Similar to プログラマ人生論

パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理Kouji Matsui
 
Example of exiting legacy system
Example of exiting legacy systemExample of exiting legacy system
Example of exiting legacy systemTakamchiTanaka
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code readingHiro Yoshioka
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Hiro Yoshioka
 
フレームワークの良さを教えてやろう SAStruts + S2JDBC
フレームワークの良さを教えてやろう SAStruts + S2JDBCフレームワークの良さを教えてやろう SAStruts + S2JDBC
フレームワークの良さを教えてやろう SAStruts + S2JDBCKazuma Kimura
 
Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01Ken SASAKI
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料直久 住川
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, CodereadingHiro Yoshioka
 
MinChain – Bitcoin ライクな最小限のブロックチェーン実装
MinChain – Bitcoin ライクな最小限のブロックチェーン実装MinChain – Bitcoin ライクな最小限のブロックチェーン実装
MinChain – Bitcoin ライクな最小限のブロックチェーン実装Yuto Takei
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説Daisuke Nishino
 
Pythonの非同期処理を始める前に
Pythonの非同期処理を始める前にPythonの非同期処理を始める前に
Pythonの非同期処理を始める前にkoralle
 
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Hiro Yoshioka
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるpospome
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」Shuji Morisaki
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発慎一 古賀
 
「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態npsg
 

Similar to プログラマ人生論 (20)

パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
 
Example of exiting legacy system
Example of exiting legacy systemExample of exiting legacy system
Example of exiting legacy system
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code reading
 
Scrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pubScrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pub
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
 
フレームワークの良さを教えてやろう SAStruts + S2JDBC
フレームワークの良さを教えてやろう SAStruts + S2JDBCフレームワークの良さを教えてやろう SAStruts + S2JDBC
フレームワークの良さを教えてやろう SAStruts + S2JDBC
 
Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
 
Java frameworkの昔と今
Java frameworkの昔と今Java frameworkの昔と今
Java frameworkの昔と今
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
MinChain – Bitcoin ライクな最小限のブロックチェーン実装
MinChain – Bitcoin ライクな最小限のブロックチェーン実装MinChain – Bitcoin ライクな最小限のブロックチェーン実装
MinChain – Bitcoin ライクな最小限のブロックチェーン実装
 
Net fringejp2016
Net fringejp2016Net fringejp2016
Net fringejp2016
 
鹿駆動
鹿駆動鹿駆動
鹿駆動
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 
Pythonの非同期処理を始める前に
Pythonの非同期処理を始める前にPythonの非同期処理を始める前に
Pythonの非同期処理を始める前に
 
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態
 

Recently uploaded

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Recently uploaded (9)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

プログラマ人生論

  • 1. プログラマ35歳定年説  Wikipedia (プログラマ#プログラマ定年説) “プログラミング技術は進歩が激しく、技術の陳腐化 も著しいため、常に新しい技術に目を向け習得して いくバイタリティや、場合によっては永年の努力に よって培ってきた技術を捨て去る柔軟性が必要であ る。また、年功序列的賃金体系のもとでは、高年齢 のプログラマはコストが高すぎると考える企業があ る(特にプログラミングを単純作業と考える企業に 多い)。俗にIT土方とも呼ばれデスマーチとなった 場合は徹夜が続いたり体力が必要となってくる。そ のため、プログラマとしての限界は30~35歳前後で あるという説が存在した。これは「プログラマ35 (30)歳定年説」と呼ばれる。”
  • 2. プログラマ人生論 山本泰宇 (@ymmt2005)
  • 3. 子供時代  「プログラム」を初めて見たのは小学校低学年  マイコンのBASICで PRINT するもの 10 INPUT “1+3=?“; A$ 20 IF A$=“4” THEN 50 30 PRINT A$, “WRONG!” 40 GOTO 10 50 PRINT A$, “CORRECT!” 60 GOTO 10  一目ぼれ(笑)  PRINT は「ぴーあーるいんてじゃー」と読んでました  MSX2 を5年生のころ手に入れる  ゲームを作ろうとして絵心がなく挫折
  • 4. 中高時代  遊びすぎて、親に MSX2 を捨てられる
  • 5. 大学時代 • Pascal でマージソートを書こうとして挫折する 1年目 • 情報科学科で、周囲とのレベル差に心が折れる 2年目 • 授業で C++ を一日で覚えたことにされて挫折する 3年目 • オープンソースソフトウェアをビルドしまくる • 研究室まわりで、スレッド作ってと言われて挫折する 4年目 • Scheme は実用に向かないと思い知る
  • 6. 大学院時代 • 分散 GC の研究で1カ月デバグしても動かなくて挫折する 1年目 • 結局まるまる作り直して動いた • C/C++, 各種アセンブリ, Java 等を覚える 2年目 • あれこれやるも、研究としては成果が出ず 3,4年目 • 挫折してサイボウズに入社 5年目
  • 7. 社会人時代(その1) • 独自組み込みDBを常駐型に変える初仕事に挫折 • 大規模版グループウェアの管理システムを作る 1年目 • 製品基盤の刷新プロジェクトに異動 • MySQL の OEM 契約を MySQL AB とする 2年目 • 外国人との交渉に四苦八苦したが、無事締結 • 刷新はほぼ終わる • Garoon2 プロジェクトマネージャーに抜擢&異動 3年目 • Garoon2 進めている最中に開発部長に抜擢 • もはやコードを書く時間などなくなる 4年目
  • 9. 社会人時代(その2) • 開発本部長になるが、限界を感じて挫折、降格 5,6年目 • 開発の主流から外れて社内ニート • CTOとしてオンプレミス向けの新基盤開発を進める 7年目 • 一方でクラウド化を提案して自分の首を絞める • cybozu.com の全体設計とプロジェクト管理を務める 8,9年目 • インフラの開発もこなし、無事去年リリース • CTOを返上してただのプログラマになる ナウ
  • 10. プログラマー人生のまとめ 振り返ると挫折と失敗ばかり • まだできないことにチャレンジしてきた証 • 最初からいいものなんか作れないよ! 35歳まで • 部長とかCTOとかの肩書インフレ • 経験不足がたたって成果は出なかった • 社内ニートしている間に技術的な見識は深まった 35歳~ • 思うように成果が出せるようになりました 
  • 11. 最近のお仕事紹介 ストレージシステム • 高可用、高機能 • バックアップと遠隔データセンターへのレプリケーションも 社内勉強会 • モダン C++ プログラミング • Linux システムプログラミング • マルチスレッドプログラミング • ネットワークプログラミング PKIを利用した二要素認証 • CAの自動管理 • Windows XP や iPhone/iPad 対応が肝
  • 12. 勉強会の内容紹介 マルチスレッドプログラミン モダン C++ プログラミング グ  モダンの定義  スレッドプログラミングとは  コーディングスタイル  スレッドとその実装  const , explicit はきちんとつける  解決可能な問題の種類  初期化・初期化子・定義  共有メモリモデル  デストラクタと継承  いつマルチスレッドプログラミングをするべきか  名前空間を適切に使う  メモリを同期するということ  コピーと参照を使い分ける  メモリ階層  文字列  リオーダーとメモリバリア  std::string のススメ  メモリモデル  cybozu::String  アトミック操作  例外  キャッシュラインとフォールスシェアリング  例外クラス  マルチスレッドプログラムの落とし穴  例外の投げ方・受け取り方  レース  例外指定は使わないこと  デッドロック  例外安全  スタベーション  RAII  同期プリミティブ  コピー制御  ブロックするもの  スマートポインタの使い方  ブロックしないもの  STLコンテナの使い方  Tips  テンプレートとの正しいつきあい方  volatile の正しい理解  モダン C++ ライブラリ  キャンセル  sleep, fork とスレッド  C++11 について
  • 13. 結論 プログラマ35 歳定年説はやは り間違い 新人の皆さん サイボウズで が勉強する機 は35歳以上 会が沢山あり のプログラマ ます も大活躍!