SlideShare uma empresa Scribd logo
1 de 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歳以上
     会が沢山あり   のプログラマ
       ます      も大活躍!

Mais conteúdo relacionado

Destaque

アーキテクトになるには
アーキテクトになるにはアーキテクトになるには
アーキテクトになるには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
 

Destaque (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つの方法
 

Semelhante a プログラマ人生論

パターンでわかる! .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
 

Semelhante a プログラマ人生論 (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のひとつの形態
 

Último

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (10)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

プログラマ人生論

  • 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歳以上 会が沢山あり のプログラマ ます も大活躍!