ITエンジニアも幅広い世代に広がり、世代間によって意識の差が出始めています。世代ごとに受けてきた教育や仕事観など様々な要素が違うので当たり前ですが、最近では求人募集の中にメンターがついてサポートするものも見受けられます。
ひと昔前では基本的に独学が当たり前の時代でしたが、現実的にはどれが現状の最適解になるのでしょうか。
Contents
世代による独学の意識の差
最近の初心者世代のITエンジニアは、スクールや大学などで事前に勉強し、インターンでメンターに教育や指導を受け、さらには入社後もメンターがついて実務にあたっているケースが見られます。
考え方は人によって異なりますが、こういった教育環境の充実からか若いエンジニアの間では「エンジニアを教育して育てるのは企業の責任」という考え方を持っている方が少なくありません。
一方で、ある一定以上の年代では、仕事を始める前までは大学や専門学校で学びつつも、入社後は独学で新しい言語を習得するのが当たり前になっていました。
そういった世代は、「エンジニアはスキルアップのために当然独学すべきだ」という考え方が多く、業務外のプライベートな時間で勉強したり、会社に希望を出して新しい分野に挑戦し、実務経験を積んでスキルアップを図っています。
プライベート時間で独学すべき?
まず前提として、企業は業務に必要なスキルであれば、業務時間を使って従業員の教育を行わなければなりません。また、スキルアップを従業員の独学に全て頼ってしまうのは、企業として問題があるでしょう。
プライベートな時間で独学などせずとも、実務の中でスキルアップを果たせるのであれば最良ですが、目指すスキルやキャリアプランは人それぞれであり、それらを個別に教育することは企業としては難しいのが実情です。そのため、現実的には新しい言語や技術の習得は、各個人の独学に任せる形が少なくありません。
プログラミング言語は構文が違っても考え方は似ている部分があるため、経験者の中には、今までの開発経験を活かせば、知識無しで新しい言語の実務を始めて、その中で身に着けられる人もいます。しかし、習得速度は人によって異なるため、独学の必要性はゼロにはなりません。
IT業界の進歩は早い
IT技術の進歩は早く、最新と思っていたスキルも10年後には陳腐化し使えなくなる可能性もあります。メインストリームから外れた言語やフレームワークでは、開発案件も減り、最悪の場合だとできる仕事がなくなる可能性もあります。
例えば 、JavaのWebフレームワークである「Struts」は、一昔前までは多くの開発案件がありましたが、今では現行システムの保守や改修案件など一部の需要があるものの、新規開発で「Struts」使った開発案件は見られません。
会社は業務に必要なスキルは社員に教育しますが、従事している業務が「Struts」などの古い技術の場合、業務内で新しい技術を習得することは難しいでしょう。
独学する人ほど市場価値が高い
日々の業務で、新しい言語や技術に触れられているなら良いのですが、基本的には適度に業界動向を見て新しい技術を身に着ける方が望ましくなります。
ITエンジニアに限らずどの業界にも言えることですが、高度なスキルを持つ人材の方が単価が高くなる傾向にあり、当然にして市場価値も高くなります。そうなると必然的に、企業もそういった「利益を生み出す人材」を積極的に採用します。
勉強を自己投資としてスキルアップに努めている人と、何もしない人とで差が付くのは当たり前です。プライベートを勉強に使わないエンジニアは待遇面で差がついていく、という必然の結果を受け入れる覚悟をしておきましょう。
ITエンジニアの独学は難しい?
前述のように、ITエンジニアとして市場価値を高めるためには、ある程度の独学が必要となります。勉強方法や当人の理解度による判断は人それぞれで、人によって独学の向き不向きがあるでしょう。
理解の速さは当然ながら人に依存するため、理解が遅いからといって決してエンジニアに向いてないわけではありません。逆に時間をかけて熟知した知識は、さまざまな場面で応用が効いて有利に働く場合もあります。
自身が独学に向いているのかどうか、独学でどこまで知ることができるか、自分に向いている勉強法は何かなど、試行錯誤をしながら独学をどう行うか考えましょう。
教えてもらえるに越したことはない
IT業界の仕事は「知識」も重要ですが、ただ知っている知識を使うだけでなく、様々な事象から答えを導いたり、急な仕様変更やトラブルに対処したりする「応用力」が求められます。
物事を多面的に捉える意味では、独学ですべてを知ろうとするのではなく、分からないことや曖昧な点を誰かに聞いて教えてもらうことも重要です。
その「誰かに聞ける・教えてもらえる」環境は、誰にでも得られるものではないため、社内だけでなくコミュニティやプログラミングスクール等で助けを求められる環境を作っておくと、スムーズに勉強を進められるでしょう。
ちなみに自分で調べることせずに、最初から全部教えてもらおうという考えの場合、プログラミングスクール等でお金を掛けた相手であれば丁寧に教えてくれるでしょう。しかし、それ以外の相手に期待することは難しいでしょう。
社内のメンターといえども、他にメインの業務を抱えながら新人の指導をするケースが多いため、分からないことを質問される程度なら答えてくれるでしょうが、最初から教えてもらうのは、相手も時間的な余裕もなく、なかなかOKできないはずです。
コミュニティに質問する場合は、回答率が高い「teratail」などのプログラミング専門のQ&Aサイトをおすすめしますが、「JavaのDateクラスの使い方を教えてください」のような、自分で何も調べてないような質問には誰も答えてくれません。実際に自分で試した結果、うまくいかなかった部分だけを、相手が分かりやすく説明して質問するといった使い方を心掛けましょう。
キャリアプランは誰が立てる?
結論としては、自分のキャリアプランは自分で立てるべきです。
メンターについてもらってエンジニアとしての技術・知識を積み上げてキャリアを作っていく場合、そのキャリアは会社が望むものや、その会社で出来ることになりやすく、キャリアの選択肢は限定的になるのは必然です。
エンジニア未経験で就職または転職し、右も左も分からない状態では、ある程度は会社が選択肢やキャリアプランを立ててくれるのは悪いことではありません。しかし、終身雇用も無くなろうとしている現状や、技術の移り変わりが激しいIT業界において、会社にキャリアをすべて依存することはリスクです。仮に、キャリアプランが失敗したり、最悪のケースで会社が倒産したとしても、会社は責任を取ってなどくれません。
将来の転職も見据えた、今後のキャリアプランを自身で考えて選び、会社に依存しないキャリアプランを歩んでいくことが、エンジニアとして、社会人として一番大事なのではないでしょうか。