Mi in progress

研究者ではなく、エンジニアになることを決意した人のブログ。

一年の計は元旦にあり

昨年の振り返りを見ながら、

  • やりたいことリスト
  • 現状の課題と思い
  • なりたい像
  • なぜ、なりたいのか?

を書いていきたいと思います。

やりたいことリスト

順不同です。優先順位はこれから付けていきます。
スクラム的には市場は刻一刻と変わりますから、優先順もやりたいことも変えていきます。

  • OSを創る (るくすさんの日記を参考にしながら)
  • Rustを業務で使う
  • Rustの所有権についてLTする
  • Rustの本を読み切る
  • Rust, Go, Kotlinで作った.wasmと.jsのパフォーマンス比較をする
  • RustでHTTPサーバーを実装する
  • RustでTwitter課題を作り直す
  • React + Redux + TypeScriptで自己紹介ページを創る(with, pairs風)
  • TDDでHTTPサーバーを創る
  • Effective Javaを読み切る
  • TDDの本を読み切る
  • 積読を可視化する
  • DDDの本を読み切る
  • コンパイラ創る
  • wasm-bindgenのゼロコスト抽象化とweb-sysとjs-sysの仕組みを理解する
  • wasm + Rustでシンセ創る

以下はポエムです。

現状の課題と思い

圧倒的にプロダクトを創るというアウトプットが少ない

本を読んで知識を得たり、色んな所に散らばった情報をまとめ上げて1つの資料をアウトプットすることは去年たくさんやりました。
チュートリアルやweb教材の写経もやりました。
でも、創ることが全然できていません。
やばい😭今一番ホットな課題です🔥

仕事ではなくプライベートの活動に精を出している

Rustが大好き過ぎて、プライベートで仕事に役立つインプットをサボっていました。
「みんなが知らなそうなもので語れる技術作りたい!」という強い思いがあった上で、18年下半期はwasm-bindgenの勉強に全力投資したので、その目標を達成したのはGOOD。もうゼロから新技術を学ぶことに対して何も怖くないです。自分で調べて、考えて、人に伝えられます💪
 
でも、せっかくTDDやDDDなどのモダンな開発環境を享受しているのですから、これからは仕事で使う技術に全力投資しようと思います。
JavaJavaScriptという巨人の肩の上に乗って学ばさせて頂きます🙏

勉強管理ができていない

これはここに書いたので略
イベント登壇までの勉強管理について振り返る - Mi in progress

なりたい像

プロダクト、ライブラリ、ツールなどを個人で発表している

たくさん草を生やす人になりたい!
特にstarを付けてもらえるような有益なOSS開発に憧れています。

OSSに貢献している

がっつり機能改善や機能開発をするような形でOSSに貢献したいです。

人にも機械にも満足してもらえるコードを書けるエンジニアになる

これは2018年2月初頭に思い浮かんだ「技術力があるエンジニア」を自分なりに噛み砕いた表現です。
かなり抽象度が高いのですが、激動の2018年を過ぎた今でもこの像が自分の中でしっくり来ています。
 
具体的には、人というのは「サービスを利用している人・サービスを実現したい人・サービスを作っている人」を指していて、
エンジニアの同僚が見やすいコードを書いて、
 → さくさく新しい機能が作れたり、消したりできる
 → さくさく改善ができる
 → どんどん良い改善案を実現しやすくなる
 → サービスの改善が早いので、どんどんユーザーがのめり込む
というハッピー連鎖を起こしたいです。
 
機械というのは文字通りで、
 パフォーマンスのよいコードを書きたい!
 メモリやCPUの生産性を下げるコードは書きたくない!
という気持ちを表しています。

人からも機械からも「この人わかってるわぁ👏」と思ってもらえるような、痒いところに手が届くエンジニアになりたいです。

プロダクトオリジナルの現状・課題を言語化できるようになる

私は仕事でいつか新技術を導入できるようになりたいと思っています。
そのために情報アンテナを張っているのですが、最近「新技術だけ知っててもだめだ」ということに気づきました。
 
「なぜこの新技術を導入する必要があるのか?」を説明できるようになることも必要なんですよね。
つまり、目の前のレガシーコードやアーキテクチャと向かい合って、

  • 現状を言語化できる
  • 何がいけないのか言語化できる
  • どうあるべきか言語化できる (これは新技術が関わってくる部分ですね)

能力が必要です。
プロダクトはそれぞれ多種多様で、現状や課題を汎用化することはできません。その意味を込めて「プロダクト"オリジナル"の現状・課題」という表現をしました。

仕事でやったことで登壇できるようになる

仕事の成果ででっかいカンファレンスで登壇したい!!!!!

海外で登壇できるようになる

海外のでっかいカンファレンスで登壇したい!!!!!

なぜ、なりたいのか?

WHYを言語化していきたいと思います。

OSSを創りたい、OSS貢献したいのはなぜか?

私は研究者を本気で志していたのですが、博士後期課程時代に、
「私にとってこの環境は、異分野・国内外・非アカデミアとのコラボレーションへの心理的・物理的障壁が高すぎる。」
と強く感じました。
そんな中で、エンジニアの先輩にGitHubOSSの存在を教えてもらい、とてつもない感動に心が揺さぶられたんです。
GitHubOSSにおけるやり取りは、私にとって信じられない光景であり、求めていた場所でした。
肩書に関係なく、知識・情熱・スキルがあれば、世界中の人とコラボできるんですから。
OSSという概念も、文字通り「オープン」で、「みんなで惜しみなく良くしていこう・使っていこう」という文化が最高に自分にフィットしました。
エンジニアになろうと思った強い理由の1つがOSS活動への参加なので、やっぱりやりたい!

人にも機械にも満足してもらえるコードを書けるエンジニアになりたいのはなぜか?

創るなら自己満足ではなく、人に喜んでもらえるものが創りたいんですよね。
この思いは、お給料を国税から貰いながら国民に何も還元できない研究をしていたDC1時代が起因となっています。
かと言って根っこは化学者なので、非生物にも感情移入しちゃいます。だから機械にも満足してもらいたいです。

プロダクトオリジナルの現状・課題を言語化できるようになりたいのはなぜか?

仕事で新技術を導入できるようになりたいからです。
🔥🔥🔥野心です🔥🔥🔥

登壇したいのはなぜか?

今までの人生で起きた出来事から「世の中の不平等な情報格差を無くしたい」という強い信念を持つようになりました。
自分が得た知識で誰かが幸せになってくれたり、他の人の知識で自分の視野が広がることに喜びを感じます。
更には知見と知見を重ね合わせて面白い色を作ることにも喜びを感じます。
「世の中の不平等な情報格差を無くせる」「自分の喜びに繋がる」から、登壇したいんだと思います。