Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
どう生きてきたか、どう生きるのか~シニアエンジニアの人生~
Search
Shinichiro OGAWA
September 27, 2024
Technology
0
11
どう生きてきたか、どう生きるのか~シニアエンジニアの人生~
Shinichiro OGAWA
September 27, 2024
Tweet
Share
More Decks by Shinichiro OGAWA
See All by Shinichiro OGAWA
talentio をなんとかしようと頑張ってきた18ヶ月の旅路
ogawa
6
5.1k
talentio.comの裏側の改善と今後の展望〜エンジニアリングとプロダクトと〜
ogawa
0
1.4k
RubyとRailsの勉強のしかたとコミュニティの参加のしかた
ogawa
0
710
everyleaf.rb LT
ogawa
3
400
Git道場 技 本日の課題、 テクニックの解説
ogawa
7
7.3k
jpmobile futures
ogawa
2
230
SubversionからGitへ移行するときの問題について簡単に語る
ogawa
3
4.4k
Other Decks in Technology
See All in Technology
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
1
120
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
330
Lexical Analysis
shigashiyama
1
150
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
140
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
300
The Rise of LLMOps
asei
9
1.7k
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
2
230
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
310
SDN の Hype Cycle を一通り経験してみて思うこと / Going through the Hype Cycle of SDN
mshindo
1
100
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.5k
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
210
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
240
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Designing Experiences People Love
moore
138
23k
Building Adaptive Systems
keathley
38
2.3k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Building an army of robots
kneath
302
43k
Code Review Best Practice
trishagee
64
17k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
BBQ
matthewcrist
85
9.3k
Transcript
免責条項 • Tokyu.rbの話をしようと思ったんですが、その前にこれまでをいろいろ話した方がいいとも思い • 今年50歳になるエンジニアがどう生きてきたのかを含めて、比較的面白おかしく話そうと思います ◦ 「どうしたらこうなったのか」がわかるといいなと思いつつ ◦ Tokyu.rbを作った人がどんなことを考えていたのかとかも •
一方でかなり特殊(?)だとも思うので、聞きたいことは何でも質問してください • みなさんの今後の参考になれば幸いです
どう生きてきたか、どう生きるのか ~シニアエンジニアの人生~ Tokyu.rb / 株式会社i-plug 執行役員 CTO 小川 伸一郎 2024
年 9 月 27 日
アジェンダ • 序文 • 自己紹介 • どう生きてきたか ◦ 幼少期 ◦
中高時代 ◦ 青年時代 ◦ 社会人 ◦ 中年期 ◦ 壮年期 • どう生きるべきか • まとめ
自己紹介 小川 伸一郎 (Shinichiro OGAWA) 株式会社i-plug 執行役員CTO @rust @conceal_rs rust.ogawa
どう生きてきたか 幼少期
幼少期 • そもそもコンピューターがない時代 ◦ オフィスコンピューターと呼ばれていた時代 ▪ なので若い人は恵まれているなと思っている • 電話もダイヤル式
幼少期 • ずっと図鑑を読んでいたらしい ◦ この頃から好奇心は旺盛だったよう ▪ 何か分解しようとしたり... • 親の仕事の都合か、家にコクヨの総合カタログがあった ◦
なぜかこれもよく読んでいた ◦ そこにオフィスコンピューターの紹介があって興味が沸いたのを覚えている
幼少期 • そんな中、パーソナルコンピューターという単語が世に現れ出す( 1980年過ぎ ◦ 元々はアラン・ケイが提唱した言葉が由来 ◦ 日本ではマイコン → パソコンという流れ
• 日本ではPC-6001とかMZ-80などが発売され始める ◦ 個人でも手を出せるような状況に近づいてきた(とは言っても高い
幼少期 • そんなとき、地元の大型スーパーにパソコンコーナーができていた(小 4ぐらい ◦ 「これが全ての始まりであった 」 • 触っても良いパソコンがあったので、週 3ぐらいで入り浸る
◦ プログラム入門書を買い、家で方眼紙にコーディングして、お店で入力して実行する 日々が始まる ▪ 常連になってしまい、店員に「今日はどんなのやりにきたの?」と声かけられるぐ らいになる
幼少期 • さすがに我慢しきれなかったところ、 MSXというホビーパソコンを知る ◦ 2万ぐらいで買えたので、お年玉を全額注ぎ込んだ覚えがある • それからは雑誌のコードを打ち込み、実行し、改造して遊ぶという日々が始まる ◦ 仕組みとか挙動の理解には改造が非常に役に立った
◦ 主にBASICでZ80アセンブラも勉強したが楽しかった とにかく作って動かし続けることが非常に大事
どう生きてきたか 中高時代
中高時代 • あまり変わらずプログラミングとかやってる • そんなとき X68000 という名機と出会う ◦ 「運命を決定づける出会いであった 」
• そのとき主流だったPC-8801/PC-9801シリーズではないなにか ◦ このときCPUアーキテクチャーとメモリ管理について興味を持つ
中高時代 • アセンブラとC/C++をちょっとかじる ◦ CPUの挙動、レジスタ、割り込み、I/Oとかの理解が進む ◦ パソコンがどう動いているのかを知ることでプログラミングの理解が捗った • このとき Emacs(μEmacs)に出会う
◦ 「自分の手がEmacsに馴染んでしまった 」
中高時代 • X68000界隈の思想にはかなり影響を受けたと思う ◦ 「ないものは作る」 ▪ ソフトウェアだけではなくハードウェアすらも ◦ 「草の根的な活動が活発」 ▪
いまでいうところのコミュニティ活動
中高時代 • ハードウェアの詳細が公開されてたりしたので、自分でも理解する手段があった • 自分で何かをガツガツ作ったわけではないけど、そういう世界にいたことで作るのが当たり前 だと思えるようにはなった 自分が触れているものが どうやって動いているのかを知るのは大事
中高時代 • このまま情報工学への道へ進むと思っていたが転機が訪れる • 「宇宙は5次元で構成されているという本を読んだ」という話を聞く ◦ ちなみに高1の生物の授業での先生の雑談 • なんだか無性に興味がそそられてしまい、学校帰りに本を買ってしまう ◦
「すべてはあのときの出会いが運命を決定づけた 」
どう生きてきたか 青年時代
青年時代 • それ以降はひたすら物理の勉強をしてしまう ◦ そして研究者になるしかないと思ってしまう ▪ 人生何が起こるかわからない
青年時代 • 一方でプログラミングとか技術は好きだったので情報収集とか研鑽は続ける • そんななか、一つのミスによって精神的大打撃を受ける ◦ 「これは二度と起こしてはいけないミス」 ◦ 「仕組みで解決するしかない」と強く思う
青年時代 • いまだったらそういうSaaSとか代替できる仕組みとかあるが、当時はなにもない ◦ 「なければ作るしかない 」と決意する • 自宅サーバでシステム構築開始 ◦ ADSL
+ DynamicDNS + RedHad(7.x) + PHP(3.x) + PostgreSQL(7.x) ▪ PCとEZwebで閲覧できるように作った
青年時代 • とにかく急がないといけないので、とにかく作り続けた ◦ 機能は試行錯誤とドッグフーディングしつつ作っていった 考えて作るより作ってから考えるほうがよい
青年時代 • なんだかんだで物理で博士号を取る(低温物性の理論) ◦ 物理の研究は非常に楽しかった ▪ 物理シミュレーションはプログラミング • C++ /
Fortran / Mathematica ▪ 仮説検証をひたすら繰り返した • というかむしろそれが研究だった
青年時代 • だがしかし、人生で博士後期課程のときがいちばん大変な時期だった ◦ 割と暗黒時代 ◦ ◯◯ハラに近い体験とか、プライベートの激変とか • それでも最後までやりきろうとは思った ◦
「自分で決意したからにはやりきらないと 」
青年時代 • 大変だったがまだ若かった(20代中盤)ので、乗り切れた感覚はある ◦ 体力大事 苦労は買ってでもしろというが、 むしろ若いときしか苦労に耐えられる体力がないから、 若いときに頑張ったほうがよい
どう生きてきたか 社会人
社会人 • 一応研究者の道を目指したが断念しました ◦ アカデミックポストの倍率は100倍とかそんな感じ • そんななか「就活か~」と思っていたところに友人から声がかかる ◦ その流れで就職して社会人になってしまう ▪
「プログラミングでお金もらえるからいいか」ぐらいの感覚
社会人 • Web制作会社なので要するに受託開発してた • とにかくいろんなことをやった記憶がある ◦ Flash 2.0 とか mod_perl
とか IIS + ASP とか ◦ キャンペーンサイト作ったり、社内システム作ったり、 ECサイト作ったり • いろんなことできたので楽しかった
社会人 • が、会社が大きくなるにつれて、マネジメントを求められる ◦ 案件マネジメントしかり、メンバーマネジメントも • そのうち役員になってしまう ◦ 最初の社員だったというのもある •
「これが最初の地獄であった 」
社会人 • 「マネジメントなんて人間のやるもんじゃない」という気付き (?)を得た ◦ そうそうに心が折れる ▪ 「人間面倒くさい...」 • これはいかんと転職を決意する
→ そして東京へ 将来マネージャーになりたいと思う前に いま一度考えることをお勧め
どう生きてきたか 中年期
中年期 • 東京に転職したとき、Rails の会社に入った ◦ 当時は Rails 1.2.3 + jpmobile
という組み合わせ • そんななかで Rails 2.X が出る ◦ しかし 1.2.3 に悪魔合体したライブラリがあって前に進めない ▪ よくある話 • 「やるしかない」
中年期 • 力技でRails 2.2とRails 1.2.3が同時に動くようしようと思う ◦ ひたすらコードを読んで修正ポイントを見つけ出してモンキーパッチ • jpmobile の2.2
対応があまり進んでなかったので、 同じようにパッチを当てる ◦ という話を Tokyu.rb(後述) でしたら、開発者と RubyKaigi で会うことになった ▪ そしてその場でコミット権をもらって今に至る
中年期 • そんなこんなでエンジニアリングを謳歌していた ◦ ただひたすら勉強会に参加する日々 (最大で週3とか行ってた) ◦ そうすると知り合いたくさんできる 「また会いましたね」
中年期 • そんななかつくったのが Tokyu.rb ◦ RubyKaigi 2008で toRuby の話を聞いた帰りのつくばエクスプレスで ginkouno
さんと 「やりましょう」となった(わりと勢い) • 最初は Seattle.rb 形式でやったが人が集まらない ◦ 飲み会やるかみたいな話になって募集したら人が来る
中年期 • そういや勉強会で一番楽しいのは懇親会 ◦ 「楽しいことだけやればいいのでは」 (意訳) • そうすると毎回15人ぐらい集まるようになる ◦ だいたい肉を食っていた
\ __ / _ (m) _ピコーン |ミ| / .`´ \ ('A`) <飲み会こそ至高のコンテンツでは! ノ( )ヽ くく
中年期 • そうこうするうちに Tokyu.rb でRuby会議やりたくなる ◦ そしていろいろ揉めた(?)末に伝説の TokyuRuby会議01 が開催される ◦
そして明後日15回目の TokyuRuby会議15 が開催される • 長くやれてこれたなと思うが、秘訣は「がんばらないこと」 • Ruby会議のスタッフとか見てても燃え尽きてる人が多いように見えた ◦ スポンサー集めたり、懇親会の準備したり、ネットワークの準備したり ...
中年期 • 「場を用意するのでみんなで楽しもう」みたいなコンセプトにする ◦ TokyuRuby会議も同じコンセプトでやってます 持続性を上げるには省力化がすごく重要 \ __ /
_ (m) _ピコーン |ミ| / .`´ \ ('A`) <参加者に準備してもらえばいいのでは! ノ( )ヽ くく
中年期 • それとは別に勉強会で知り合った人から「本書いてるんですが一緒にやりません」と言われ る ◦ 「なんでもやってみる」という精神で「興味あります」と即答する ◦ そして書いたのが Gitによるバージョン管理
中年期 • そのあともお誘い受けたものはなんでもやることにした ◦ 最近 Ruby技術者認定試験 公式テキスト 出ました カンファレンスとか勉強会とか コミュニティ活動大事、本当に大事
どう生きてきたか 壮年期
壮年期 • そうこうするうちに「次のCTO」等と言われるようになる ◦ そして退職を決意する ▪ マネジメントするのは本当に嫌だった • そんななか知人に誘われて転職 ◦
「一生現場でコード書いていよう」と思う
壮年期 • ひたすら現場でコードを書いていて楽しい ◦ 一方で社内の課題が気になる始める ▪ 気になる始めると解決したくなる ◦ 見る範囲・見える範囲が変わってきたことが要因かもしれない
壮年期 • そうこうするうちにマネジメント側に踏み出すことに ◦ きっかけは「活きが良い若い人」を見たこと ▪ 「若い人が頑張れる場所を提供するのも、年配者の仕事」 • 大人力(?)というのが必要なこともある ◦
でも誰もやろうとしないので ▪ 「誰もやらないならやるしかない 」
壮年期 • それからはマネジメント主体で生きてきている ◦ とは言えやっていることは実は変わっていない ▪ 「課題があるからそれを解決している 」だけ • プログラミングで解決するのか、マネジメントで解決するのか
マネジメントは仕組み化 組織づくりはシステム構築
どう生きるべきか
どう生きるべきか • 振り返ってみて感じるのは ◦ 思った以上に「楽しいと思ったこと 」をやっていたこと • 楽しいと思わないと長続きしない ◦ 物理もマネジメントも「楽しい」と思ってた
◦ 「苦行」は長続きしない
どう生きるべきか • でも楽しいだけでは生きていけない? ◦ みなさんに考えてほしいのは Ikigai
どう生きるべきか • 以下の4つを意識することが大事 ◦ 得意だと思っていること ◦ やってて好きなこと ◦ 世の中から求められていること ◦
対価を払ってもらえそうなこと
どう生きるべきか • 特に「やってて好きなこと 」が大事 ◦ 好きでもないマネジメントをやると辛いだけ(実感値) ◦ プログラミングが好きならそれをやり切る方が良い ▪ 持続性があることでないとモチベーションが続かない
「好きこそものの上手なれ」はその通り
まとめ
まとめ 「好きなこと」に注力することが大事、本当に大事 • 「やり続けることができる」ことに注力していきましょう ◦ モチベーション高く続けられることは何かを考えることは大事 • 「好きなこと」がたくさんあっても問題なし ◦ やれるだけやっておけという気持ち
みんな楽しく 生きていきましょう