この記事は、Happy Elements株式会社 カカリオスタジオ Advent Calendar21日目の記事です。
担当はエンジニアの@mdnです。よろしくお願いします。
前置き
はじめまして、こんにちは。
最近、Happy Elements株式会社カカリオスタジオに入社しました@mdnと申します。
前職では Objective-C や Java を使用したクライアント開発を担当しておりました。
会社が変わり、業界が変わり、使用する言語も全く変わりましたが、それでもなお役に立つ経験があります。
この記事では、転職しても役に立ったと感じた過去の経験について振り返ってみたいと思います。
一つの言語を深く勉強した経験
自分の場合、一番長く勉強した言語はC++でした。なので、一番好きな言語もC++です。
最近はあまり触ることがなくなったのですが、トータルで10年間は勉強していることになります。
ポインターのなんたるかから始まり、STL、boost、vtbl、呼び出し規約、アセンブラ、テンプレートメタプログラミングなどなど、無駄なことばかり色々勉強してきました。
いまだに業務で使用したことはありません
しかし、業務で使用していないからと言って、勉強したことが全て無駄になったということは無く、考え方や機能は他の言語の学習でとても役に立ちました。ポインターを知っていれば参照は簡単に理解できますし、ジェネリクスは機能限定版テンプレートです。
モダンな言語は、お互いに良い部分を取り入れているので、一つの言語を深く知っていると、他の言語を学習する際にも役に立ちます1。
様々な言語に少しずつ触れた経験
先ほどとは逆に、色々な言語に触れていた経験も役に立ちました。コアな仕様まで深く学習しようとすると、時間がかかりますが、頻繁に使用される部分だけならそれ程時間はかかりません。
自分の場合、もともと勉強してはいたけど、業務で使用したことが無い言語は、C++, C#, Python, Ruby がありましたが、4個中2個がいきなり役に立ちました2。
様々な言語を学習しておくことで、その言語が必要になった時により早くキャッチアップできますし、別の言語を学習する際の手助けにもなります。これは言語の学習に限った話ではなく、技術の習得にも言えると思います。
一つのアプリケーションを一貫して開発した経験
前職では、初期段階から開発に関わる機会を得られました。規模があまり大きくなかったことも幸いし、様々な試行錯誤し、その結果失敗することも多かったです。リファクタリングをしたり、新しい技術を取り入れてみたり、別の言語を導入したりもしました。比較的若いうちにこのような機会が得られたことは、今となってはとても貴重な経験だったと感じています。
無茶な納期に追われた経験
最後に
色々と書いて来ましたが、何かに対して真摯に取り組んだ経験と言うのは、いつか身を助けてくれるものだと信じています。まだまだ、周りのスーパーなエンジニア達に圧倒されていますが、早く自分も力になれるよう精進して参りたいと思います。
稚拙な文章ですが、最後まで読んで頂きありがとうございました。
Happy Elements株式会社カカリアスタジオではエンジニアを募集しています。
興味がある方はこちらからご応募ください。