エンジニアのモチベーションは見つけるものではなく、降ってくるもの
よくエンジニア界隈ではモチベーションの話がされます。
そもそもモチベーションとは何でしょうか?
つまり、エンジニアにおける、モチベーションがないという状態はエンジニアに関する新しい知識を身につける動機がないということ、あるいはプログラミングをする動機がないということ。
モチベーションが上がらないというのは、何か身に付けたいものがあるけど、特に動機がなかったり、そこまで意欲的になることができないという状態。
さて、ここまでモチベーションという言葉の定義みたいなところを話した訳ですが、果たしてエンジニアにとってモチベーションはそこまで重要なものでしょうか。
モチベーションがないとできないなら、やらなくて良い
モチベーションは見つけるものというよりも、降ってくるものだと思っています。例えば、Rustという言語が出てきた時に興味があるとか触ってみたいなどの単純な知的好奇心からRustについて、理解をしていくと思います。
ここでの学習におけるモチベーションは知的好奇心な訳ですが、これは努力して身につけるようなものではありません。あなたが好きだからという単純な理由であり、それ以上でも以下でもありません。
私は最近「コンピュータシステムの理論と実装」という本を読んで、コンピュータの仕組みを回路レベルからの理解に努めていますが、知的好奇心以外のモチベーションはありません。直接的な金銭を生んだり、副業や本業につながるというものでもありません。そういうことを求めるなら、学習している時間を副業に費やせば良いでしょう。
今の私にとって 自己成長 = 知的好奇心 > お金 という順序で動機が動いています。数年前はお金により重きを置いていたので、空いていた時間を全て副業に使うなどして、月100時間近く本業とは別に稼働していたこともあります。ただ、副業は大抵自分ができることしかできないという側面があるので、自己成長の幅が大きくありません。
人それぞれモチベーションは異なるので周りのことは気にしなくて良い
上記の通りフェーズ毎にモチベーションは異なるものなので、何が今のあなたのモチベーションになるかは不確定です。
お金、知的好奇心、チームワーク、大会、発表、自慢、etc
周りの人がモチベーション上げるためにLT発表しようとか言われても、あなたがしたくないのであればしなくて大丈夫です。(したいのであれば、とても良い行いなのでしましょう。)
副業についても、お金を増やしたい、もしくは新しい環境で開発がしたいということであれば、良いと思いますが、無理してする必要はないでしょう。
それでもモチベーションを上げたい人は・・・
イベントドリブンで行うのが良いでしょう。LT発表、ブログ記事の投稿、個人開発をして成果物を作成、チームに入って活動など。
学習を一つのイベントとして行うことで、いつまでに何をすべきかが明確になります。趣味のままでは特に期限がないので、ダラダラしがちです。
エンジニアにとってアジャイルでタスクをこなすというのは慣れている行いだと思うので、GitなどのツールでIssueを明記し、todoを作り、見積もりをしてタスクをこなせば良いでしょう。
必然的にあなたの学習はタスクをこなしていく中で身についていきます。