「広く浅く学んでいるが、専門領域がなくて不安」という相談をもらう機会があった。
過去の自分もまったく同じ事を考えている時期があった。
この悩みに対して、今どう考えているかを自分なりに書こうと思う。
当時の悩み
学生時代はハードウェアの研究をやっていており、趣味としてRuby on Rails、React、Flutterなどを使い、Webアプリケーションやモバイルアプリなどの開発をしていた。
当時はアプリケーションを作るために調べながら開発を進めていた。そのため、特定の言語、フレームワークに精通しているわけではなかった。
その結果、「使ったことはある技術だが、それが得意と言われたら得意ではない」→ 「広く浅く学んでいるが、専門領域がなくて不安」という状態になった。
今はこの悩みを克服しているわけでないが、この悩みに対して今どう考えているかを書いていこうと思う。
エンジニアとしてのキャリアのVSOP
同期が書いた「エンジニアとしてのキャリアのVSOP」が、当時の悩みの解決の助けになった。
この記事では、エンジニアとしてのキャリア以下の4段階まとめられている。
V: ジュニアエンジニア バラエティ = いろいろ技術領域の知識・経験を身につけよう
S: アソシエイトエンジニア スペシャリティ = 特定の技術領域をマスターし、課題解決ができる状態になろう
O: シニアエンジニア オリジナリティ = 自分だけの発想で技術自体に新しい価値を産み出そう
P: プリンシパルエンジニア パーソナリティ = 確立した専門性や独自性の上に人間力を積み上げよう
20代では「バラエティ = いろいろ技術領域の知識・経験を身につけよう」という段階にある。
個人開発からチーム開発、趣味の小規模サービスから商用の大規模サービスとなっていく中で同じ技術でも別の観点が見た時には別の面白さがあるかもしれない。
エンジニアとは
エンジニアリングは「実現」の科学
と書かれている。さらに、
「理学」が物理学や化学のように世の中の自然の原理を見つけて、説明していく学問であるのに対して、
「工学」はそれらに依拠しながらも、「何か役に立つものを」「実現していく」学問です。
とまとめられている。
すなわち、エンジニアは何らかを実現していくという目的があり、そのために技術やテクノロジーという道具を使う。
だからこそ、ジュニアの時からさまざまな技術に触れ、道具としての技術を増やしていくことが必要だと考える。
専門領域を作るために
この悩みをメンターに相談したところ、チーム開発で活躍するために、自分の庭を作れると良い - hitode909の日記
という記事を教えてもらった。
庭は、どこに何があるか分かっていて、地図を見なくても安心して歩いていって活動できる場所。そういう、守備範囲というか、足場がチーム開発においてもあるとよい。
好きな分野、得意な分野で庭を作ってもいいし、自分はデジタルコンテンツ検索とOG合成が庭になったと思っている。
庭をさらにを良くするために必要なライブラリの導入や、庭に関する質問や相談を受け、ドキュメントを調調査などといったことを通じて、さらに理解が深まった。
ただ、庭を自分のものとして扱い権威的に振る舞うことだけは避けたい。
まとめると
「広く浅く学んでいるが、専門領域がなくて不安」に対する、自分の回答は「ジュニアの時に広く浅く学び、いろいろ技術領域の知識・経験を身につける。それと同時に、ここならわかるというエリアを作る。そして最終的にどこを専門領域にしたいか決めていく」としたい。
おわりに
こまで全て個人の考えで、絶対的な解決策ではない。
この記事を参考に自分が納得できる答えを見つけてもらうことができれば嬉しい。
この記事で引用した記事と影響をもらった記事を列挙しておく