そもそもありがたい人って何
私が携わっているのはすべてベンチャー企業なので、ある程度オールラウンダーな属性をエンジニアに求めている点に注意。- スクラム/ウォーターフォールを問わず要件に応じて自分である程度実装に関して設計が行えること(形式知として資料化する経験、あるいは誰かの資料を用いて実装を行った経験)
- 要件がファジーであっても、設計のプロセスを踏んで不明瞭な点があれば関係者と適切にコミュニケーションが取れること
- 担当分野に関する技術に対して「関心を持っている」こと
- QiitaやStackOverflow、技術ブログ等を「玉石混交」のものとして向き合えること
- 英語のドキュメントを読むことに抵抗がないこと
- 数ある言語・ライブラリ・ミドルウェアに対して自分の頭の中である程度地図を描けること
つまるところ「どれだけ自立して業務が出来るか」と言えて、教育に手のかけられない中小企業ほど、この属性をより重要視しているはず(=即戦力)。
何をすればありがたい人になるのか
上で挙げた要素は向き不向きの要素はあれどすべて経験値によるものです。じゃあ実務を通じてしかレベルアップできないじゃんっていう真実もあるのですが、結局「どれだけ良いものを多く作り、手戻りが少ないか」によって定量的な評価がなされるので、そつなく出来なくても特定の業務に対して上手に振る舞えるのもまた貴重な人材ではある(but 採用においては評価が難しい……)
「昔の無垢だった頃の自分に向かって言うなら」という予防線を張った上で挙げるならこんな感じ。
- 時間感覚と生産性に注意する。
- 自分の書いたコードを見直してセルフでコードレビューをして、改善できそうな箇所は分からなくてもTODOに入れて後で誰かに聞いたり、プライベートの時間を捧げてひたすら調べる
- 設計でも実装でも常に「手戻り」を意識する
- 斜に構えてはいけないけれど、時には斜に構えなきゃいけない
- 他人を巻き込んで自分の生産性を最大化するか、他人に協調する
でも未経験からだと効率よく経験するのは困難では?というのは一つの悩み。
実務以外で出来る成長手段
- 読書
- マイナーだったり新しいライブラリのチートシートを作ってQiitaのLGTMを稼ぐ
- AWSに登録して無料枠を最大限活用して1年間提供できるサービスを作る
- 公開APIに触れてみる(LINE, 仮想通貨取引系, GCP等)
- あえてメチャクチャ難しい領域を触ってみる(AtCoder, 機械学習)
何事もやりきる(達成する)ことは別に重要じゃなくて、とりあえず触るだけでも意味あるんじゃないかなあというのは最近よく思うところ。
エンジニアとして働く90年生まれ。Web系技術を追っかけたり、PCガジェットや自転車いじりが趣味。オーディオオタク。