そーだいなるらくがき帳

そーだいが自由気侭に更新します。

業務と関係ない技術をいつ研鑽するかという壮大なる話

優秀なソフトウェアエンジニアのそーだいです(ドヤ顔

巷では優秀なプログラマーについて議論させていて、僕は優秀なプログラマーかどうか?っていうとわからないけどまぁそれなりには給料貰ってソフトウェアに関わってるエンジニアだと思っています。そんな中、知人に「そーだいさんはMackerelのCREでデータベースをメイン業務では無いのにそんな中でデータベース分野でもソフトウェアデザインの執筆とか、カンファレンスとかも実施していて、それをどうやって両立してるのか、教えてほしいです。」って質問が来たのでそれに回答します。

なぜデータベースのアウトプットをするのか?

そもそもですが僕はアウトプットするためにインプットしてるのではなく、インプットをするため、増やすためにアウトプットをしています。例えばカンファレンスや勉強会などのイベントを開催するのは「自分が知りたいコンテンツを揃えたい」からです。丸1日拘束されるセミナーで聴きたいコンテンツが1つしかなかったら行くの躊躇うじゃないですか。でも1日中、自分が聴きたいコンテンツだったら最高ですよね?だから自分で聴きたいコンテンツを集めてそれをイベントにしています。イベントは別に「自分が滅茶苦茶すごい人じゃないと開催してはダメだ」というものでありません。だから気軽に企画して実際に開催しています。ただし、イベントに登壇してもらう人、来てくださる方には最大限の感謝とメリットを提供できるように配慮しています。それは企画者が得れるメリットに対する義務だと思っています。最近の事例だとモニタリング勉強会ですし、中国地方DB勉強会も主旨としては同じです。

soudai.hatenablog.com

dbstudychugoku.github.io

勿論、ブログや登壇やソフトウェアデザインへの投稿も同じです。自分が知りたことややりたい事をアウトプットしていく事でインプットが増えます。ただし、ブログよりも登壇の方がクオリティを求められますし、それ以上に紙媒体はクオリティを求められます。なので勿論それ相応の準備が必要ですし、時間などの投資も必要になります。ですがその分、アウトプットするために得れるインプットは強力ですし、それ相応の効果があります。例えば私はデータベースの最新版が出たらそれを発表する場をもう決めちゃう。そこに合わせて勉強をする。それによってみんなも最新版を知れるし、自分も知れる。そういうことを繰り返しをしています。具体例を上げると最近は業務でモニタリングを扱っているので色んな知見が欲しいので登壇内容もモニタリングに寄せています。Mackerel / NewRelic / Elasticsearch Seminarはそういう意味では開催のメリットと登壇のメリットを同時に得れた良いイベントでした。そのほかにも直近だと下記のイベントでモニタリングについて喋ります。PostgreSQLカンファレンスはデータベースのモニタリングなのでデータベースとモニタリング両方出来て便利ですね。

phpcon.php.gr.jp

  • 吉祥寺.pm 2017/10/20
    • 吉祥寺.PerformanceMonitoring

kichijojipm.connpass.com

  • ENOG 2017/10/27
    • OSからネットワークまで簡単可視化!出来る、Mackerel!!

ENOG47 Meeting 開催のお知らせ – Echigo Network Operators' Group

  • PostgreSQLカンファレンス 2017/11/03
    • データベース監視の基本

PostgreSQL Conference Japan 2017 (2017-11-03) | 日本PostgreSQLユーザ会

このように納期が決まるとやらざる得ないってなりますし、自分で納期を決めてやるっていうのは強制力が強いのでこの方法を採用してます。つまり僕は意思が弱いのでみんなの力を借りて前に進んでます。

インプットやアウトプットするための時間はいつ捻出するのか

それは時間を作るしかないので習慣だと思います。僕は通勤中に本を読むこともありますし、夜行性なので夜中にソースコードを読んだりプログラムを書いたりすることが多いです。ただ僕の方針として「何でもかんでもやる」というよりは選択と集中でやるスタイルなので例えば◯◯が流行りそうだな!とか☓☓が面白そうだな!!って感じでやると言うよりは必要だからやるってことが大多数です。なので最新の技術よりはちょっと枯れた技術の方が自分のスタイルには合う→データベースはその点がマッチしたって感じですね。あとはまぁ結局のところやるか、やらないかだけの話なのでマッチョな言い方だけど時間が無いって言うのはやらないって選択を選んだってことだと思っています。勿論優先順位があって家族だったり仕事だったり趣味だったりの時間も大事ですのでそれを犠牲にしろと言ってるわけではなく、優先順位を整理してやりたいことをやっていきましょうってことです。

まとめ

人それぞれ自己研鑽のやり方はあるので自分のスタイルを見つける事が大事です。特に嫌々やっても続かないし、メンタルを消耗してまでやることでも無いです。これはアウトプットを増やすことはインプットを増やす効果が高いことは多くの人が述べてますのでここでは割愛しますが得手不得手は当然あります。アウトプットのやり方も登壇やブログ以外にも純粋にコードを書くこともアウトプットですし、自分のスタイルに合う方法を模索することが大事だと思います。その模索する過程によって自分のスタイルが確立されていくと思いますし、その先に結果として自己研鑽されていくのだと思っています。なのでこんなに登壇を詰め込むのは僕の例ですから真似するのはオススメしません。ただ一度は試してみると面白いと思うので月1のブログや大きなカンファレンスでの登壇自体は是非お試しください。

ということで全然回答になって無さそうだけど休憩時間おわったのでこのへんで。