エンジニアとしてこの先生きのこるために僕が考えていること

これはMynet Advent Calendar 25日目の記事です。度々このカレンダーで書いている@takashabeがお送りします。

最終日ということでエモい感じのネタで行きたいと思います。

はじめに

環境や仕事内容、才能に恵まれ、日々仕事している中で着実にスキルアップ出来ていて将来安泰という方もいらっしゃるかと思います。

しかし僕のような凡人は仕事に追われているだけでは仕事はあるかもしれませんがエンジニアとして死ぬ気がするので、エンジニアとして生き残るためにどのような事を考えているのか、つらつら書いてみたいと思います。

一般的に考える

僕が所属しているマイネットでは既にローンチされて運用フェーズにあるサービスを移管(買取)し、運用を行う仕事が主です。そのため程度はありますが、必要最低限なものは既に出来ている状態にあります。

例えばデプロイで考えてみると、引き継ぎの際に「デプロイはこのコマンドで出来るよ」と教わったとします。 運用自体はデプロイコマンドだけ覚えていればデプロイ出来るので問題ありません。しかし実はhot deployが実装されているとして、hot deployが行われていることが理解出来ているか否かは大きく違うでしょう。デプロイ自体の影響範囲を見極めることも可能ですし、hot deployという概念を知っていれば他PJでも活用出来ます。

要するに物事をどれだけ理解しているかという話でもありますが、PJ固有に抽象化された概念だけでなく、それを構成する要素を学ぶことによって他環境でも通用する力が身につくと思っています。

アウトプットする

これは様々な場面で言われており、今更感もありますね。 アウトプットすることによるメリットは様々ありますが、個人的に一番良いのは情報の質が上がる(上げようとする)ことにあると思っています。

発信先が社内/社外に限らず、何かを発信する時は「間違った情報をあげたくない」という気持ちが働くと思います。自信のない情報は上げたくないし、少なくとも間違ったことは言わないように調査検証するわけです。その過程でその情報に関する精度が上がりますし、場合によっては何かしらの技術背景に首を突っ込むことになることもあるでしょう。

そしてアウトプットすることによって間違った情報を訂正される場合もあります。自分の中で完結していたらきっと間違ったまま認識していた事柄です。

やりたいことをやる

職場環境に恵まれていて、自分の興味関心とマッチしたことが仕事でやれている場合は良いと思います。 しかし社会は厳しいので決して面白い仕事ばかりではないし、人間のやることとは思えないようなことをやらされることもしばしばあるでしょう。

定常の単純作業に追われている場合はまず自動化してしまえば良いでしょう。そして空いた時間で自分の好きなことをやります。

とはいえ全く別の言語をやりたいという場合、それをプロダクトで採用するのも厳しいので、例えばその言語で便利系スクリプトを書いてみるなどすれば良いでしょう。 もちろん小さいチームであるなど、技術の導入がある程度自由に行える場合は興味のある技術を採用してみてみるのも良いでしょう。

もしくは現状全く自由のない職場環境であればいっそ 転職 するのもひとつの手です。世の中にはそこで働いていることによって(全く勉強時間が取れないなど)、将来の可能性が狭まる職場も存在します。仕事はおそらく人生において一番長い時間を投資するものなので有意義な時間を過ごしたいものです。

おわりに

僕が普段考えていることを3つ書き出してみました。

それほど特別なことは書いていませんし、多くの方が実践している内容であるような気もします。答えがあるようなテーマでもないのでこれが正しいとも言えませんが、もし日々の仕事にただ追われてるだけだなーという方がいれば、どうすれば自分にとってプラスになるのか考えてみるのも良いのではないでしょうか。

そして偉そうなことを書いておきながら、Advent Calendar 25日目の記事を26日に書いている時点でアレな訳ですが、これを読んでいる皆様にとってこの記事あるいはMynet Advent Calendarに少しでも有益な情報があれば幸いです。