皆さん、こんにちは!今日は、エンジニアとして技術を学習する上で、多くの方が抱えているであろう不安や疑問について、少し考えてみたいと思います。
- エンジニアの心に潜む「よくある?」疑問
- 色々考えて出た3つの答え
- 1. 他社で通用するかどうかは、他社の人が決めるものだから気にしてもしゃーない
- 2. まずは「自社で求められる技術」を習得することが最優先やんな、やっぱり
- 3. 結局、総合力と専門力をバランス良く学ぶ習慣を作ることが大事よね
- まとめ
エンジニアの心に潜む「よくある?」疑問
技術の世界は日々進化し続けていますよね。そんな中で、こんな思いを抱いている方も多いのではないでしょうか?
- 「今学んでいる技術、数年後も役立つのかな...?もっと幅広く勉強すべき?」
- 「自社では頑張ってるけど、他社でも通用するスキルなのかな...(市場価値ってどうなんだろう)」
- 「新しい技術がどんどん出てきて、もう追いつけない...頭がパンクしそう!」
- 「生成AI、データ分析、IoT...注目の技術についていけてない自分にモヤモヤ...」
こういった不安や疑問を皆さんも持ったことがあるのではないでしょうか?
エンジニアになって5年、かくいう私も半年に1回くらいは同じようなことを考えて堂々巡りしており、1人で勝手に不安になっていますw
本ブログではこのような不安ループから少しでも脱却するために、私が色々考えたことをツラツラと書いてみます。
色々考えて出た3つの答え
色々考えた結果、シンプルな答えが3つ出てきました。以降はそれぞれについて深堀っていきます。
1. 他社で通用するかどうかは、他社の人が決めるものだから気にしてもしゃーない
2. まずは「自社で求められる技術」を習得することが最優先やんな、やっぱり
3. 結局、総合力と専門力をバランス良く学ぶ習慣を作ることが大事よね
1. 他社で通用するかどうかは、他社の人が決めるものだから気にしてもしゃーない
技術の世界は日々進化していて、次々と新しい技術が登場します。しかし、私たちが使える時間に限りがあるので、学習する技術は取捨選択する必要があります。
ここで改めて認識しておくべき点としては、「自社で求められる技術」と「他社で求められる技術」が必ずしも一致しないという点です。私たちはついついこのことを忘れてしまいます。
「他社でも通用する技術力」とは曖昧で、移ろいゆく概念
「他社でも通用する技術力(図中の赤塗り部分)」とは、実は非常に曖昧な概念です。この基準は、評価する人や時代の技術トレンドによって変わります。
「評価する人」という観点だと、たとえば、オンプレミスに詳しい面接官ならクラウドの技術は高く評価されないかもしれませんが、クラウド移行中の企業では逆にAWSやGoogle Cloudの知識が重要視される可能性が高いです。つまり、評価する人次第で基準が変わってしまいます。
「技術トレンド」という観点だと、数年前はVMwareやCiscoに詳しいエンジニアが重宝されていたかもしれませんが、今では多くの企業がクラウドへ移行しており、求められるスキルも変化しています。つまり、技術のトレンドによって評価基準は変わってしまいます。
このように「他社でも通用する技術力」とは、いつ、誰が、評価するかによって変わるものなので、「自分の技術力が他社で通用するのか?」と悩んでも一生答えは出ないので、いくら考えても仕方ないです。
2. まずは「自社で求められる技術」を習得することが最優先やんな、やっぱり
ということで、「私の技術力は他社でも通用するのだろうか...」と数時間、数十時間も悩んでいるくらいであれば、今自分が所属している会社で組織から、顧客から求められている技術の学習に集中した方が確実に良い結果(価値)を生むはずです。
技術力を向上させるシンプルな3つのSTEP
上図は「エンジニアに求める技術力」を組織ごとに数値化してグラフにしたものです(数値の正確性は気にしないでください)
現状の「自身」の技術力を20とした場合、以降で紹介する3つのSTEPを踏むことで「20→40」「40→60」「60→80」と少しずつ技術力を高めていきます。
STEP 1: 自組織で求められる技術を身につける
最初のステップは 「自組織で求められる技術を身につけること」 です。これが基本であり、最も大切な第一歩です。 では、具体的にどうすれば良いのか、3つのポイントに整理してみます。
1. 自組織で求められる技術を把握する
技術は常に変化しますが、まずは 「今」 自分の組織で必要とされている技術を把握することが重要です。
例えば、セキュリティ対策、コンテナ技術、Infrastructure as Code(IaC)など、組織や業務に応じて異なる技術が求められるはずです。まずは、自分の業務や自組織で求められる技術を把握しましょう
2. 興味のある技術を選ぶ
自組織で求められる技術を把握したら、次は自分が 「やってみたい!」「興味がある!」と思える技術を選びます。
セキュリティ対策、コンテナ技術、Infrastructure as Code(IaC)など全てができるようになるに越したことはないですが、いきなり全てとなるとハードルが格段に上がって始める前から億劫になってしまいます。
でも、自分がやってみたいことや興味のあることであれば「技術を学習するのが自然と楽しくなる」→「楽しいから技術学習が捗る」→「技術学習が捗るから、仕事でも成果として現れやすくなる」ので一石三鳥です
3. 選んだ技術への学習にコミットする
選んだ技術を学び始めたら、よそ見をせずに技術学習にコミットしましょう!自組織で必要な技術であれば、上司に掛け合ったり、自主的に勉強会を開けば業務時間内に学ぶことが許容されるかもしれませんし、そうすれば結果として顧客への価値提供に直結する可能性も高まります。
もし業務内での学習が難しい場合でも、自分が興味のある技術分野なので、自己学習のモチベーションも高まります。私個人としては、エンジニアとして成長し続けるためには、 業務時間外の自己学習も重要だと考えています。
STEP 2: 自社のなかでも「できるエンジニア」を目指す
STEP 1で「自組織で求められる技術」を身につけたら、次のステップは 「一歩背伸びして、さらに技術を深掘り」 してみます。この段階では、単に技術を実践できるだけではなく、より幅広い視点から学習した技術について考えていきます。
STEP1で学んだ個々の技術を「視点」と捉えると、STEP2では「視座」を上げて幅広い「視野」で技術を見渡せるようになるイメージです
1. 学んだ技術について、多角的に考えてみる(視野を広げる)
STEP 1で学んだ技術について、例えば以下の観点から考えてみます。
- 性能: システムのパフォーマンスを最大限に引き出そうと思ったら、どの部分を最適化できそうか?
- 費用: コストを抑える方法はないか?
- 運用: 長期的な運用やメンテナンスの負荷を軽減するために、どういった工夫ができそうか?
- 代案: 現在採用しようとしている方法以外に、もっと良い方法(代替案)はないだろうか?
このように考える癖が付いてくると、例えば AWSのインフラを設計する際、単にEC2インスタンスを構築するだけではなく、Auto Scaling + Spot Instance を設定してコスト削減を図る等、といった発想ができるようになるのではないかと思います。
2. 抽象的な思考で新たな視点を取り入れる(視座を高くする)
技術を深めるためには、「具体的なスキル」と「抽象的な思考」をバランスよく使うことが大事です。たとえば、AWS上で何かリソースを作成する際に以下の観点から設計を考えてみます。
- 作成しようとしているAWSリソースの設計内容セキュリティ運用ルールに則ったものだろうか?
- マルチアカウントに横展開することを考えるとどのような点を考慮すべきだろうか
このように考える視座をスライドする、言い換えるとより抽象的なレイヤーと具体的なレイヤーのそれぞれの視座から全体像を俯瞰してみると、様々な観点からシステムに対する考慮が可能になると思います。
優秀なPMの方は、「具体と抽象」のピラミッドの幅が縦にも横にも広く、なおかつ高速に具体と抽象の思考を行き来しているからこそ、プロジェクト全体を見渡せるのだと思います。
要件定義やプロジェクトマネジメントといった、自分よりも上位工程で仕事をしている先輩が読んでそうな本に少し目を通してみる「あ〜、PMってこんなことを考えてるんか」と先輩の気持ちが分かるかもしれません。
STEP 3: 自組織や自社では扱っていない未知の技術に挑戦する(他社で求められる技術の習得)
エンジニアとしての成長の次のステップは、 「自組織や自社では扱っていない未知の技術に挑戦する」 ことです。自社の枠を超えて、他社や業界で求められている技術に挑戦することで、エンジニアとしての可能性を広げることができます。
これらの技術は、自身が属する組織で直接使われない場合が多いので、必然的に学習する優先度は低くなります。しかし、未知の技術を触ってみたいというエンジニアの知的好奇心は抑えがたいので、一人のエンジニアとして長期的に成長するためには非常に有益です。
自組織や自社では扱っていない技術は通常、自己学習がメインとなり実務経験を積むことは難しいです。そのため、転職をして新しいチャレンジをするという選択肢が浮上してきますが、転職活動はめちゃくちゃパワーを使うので大変です。
サーバーワークスでは、「サバラボ制度」という社内制度があるため、転職活動をせずとも新しいチャレンジができるのは嬉しいところです。
3. 結局、総合力と専門力をバランス良く学ぶ習慣を作ることが大事よね
総合力と専門力のバランスが生む「価値」
私たちはエンジニアである前に、一人のビジネスパーソンです。ビジネスパーソンとして価値を発揮するためには2つの力が必要です。 それは「総合力」と「専門力」です。この2つが合わさることで、最終的に「顧客に価値を提供する」という目的を達成できると考えています。
総合力とは?
総合力とは、 職種や業種に関係なく必要な能力 を指します。たとえば、 コミュニケーションスキル 、 マネジメントスキル 、 タスクマネジメントスキル などが含まれます。これらの能力はどの仕事においても重要であり、これが欠けていると、いくら専門的なスキルが高くても、ビジネスの現場では力を発揮する際に支障をきたしかねません。
専門力とは?
専門力は、 特定の職種や業種に特化した能力 です。エンジニアであれば 技術力 がこれに当たります。営業職なら営業スキル、マーケティング担当ならマーケティングの知識や経験が専門力となります。
価値を提供するためのバランス
再掲になりますが、エンジニアは技術者である前にビジネスパーソンです。そのため、専門力だけでなく、総合力も重要です。
専門力がめちゃくちゃ高くても 「タスク漏れが多い」「顧客との約束を守らない」「コミュニケーションが苦手」 といった場合、そのような人が顧客相手に仕事を成功させるのは難しいでしょう。つまり、いくら専門力が高くても、総合力が致命的に欠如しているとビジネス現場での活躍は難しいということです。
結局のところ、 総合力も専門力も、仕事を通じて顧客に価値を提供するために必要です。どんなに専門力を磨いても、顧客にその価値を届けられなければ、それは「仕事としては失敗」 です。
だからこそ、 総合力と専門力をバランスよく伸ばすことが重要です。
PMであれば「総合力 + 専門力 = 60 : 40」のバランスかもしれませんし、自社開発エンジニアであれば「総合力 + 専門力 = 30 : 70」かもしれませんが、適切なバランスを正確に測ることは難しいです。
なので、1つの方法としては「社内で活躍しているエンジニア」や「尊敬しているエンジニア」を対象にして、その人がどれくらいのバランスで仕事をしているのかを観察してみたり、実際に本人に聞いてみるが良いかもしれません。
結局、俺は何をどう勉強したらいいん?
色々考えた結果、以下の4つの学びを習慣にすることで総合力も専門力も着実に積み上げることができるのではないか、という結論に至りました。
1. 学び方を学ぶ(最小の時間で、最大限の学びを得るーエッセンシャル思考)
自分に合った学習方法を早く見つけることは非常に重要だと思います。社会人になるとまとまった学習時間を確保することは難しく、スキマ時間を上手く活用することが求められます。
加えて、年齢を重ねてライフステージが上がっていくごとにワークライフバランスでいうところの「ライフ」の割合が少しずつ増えていきます。
つまり、「限られた時間、限られた集中力を、時間対効果が高い分野に効率的に分散投下」する必要に迫られるわけです。
人によって効率的な学び方は異なります。 動画学習(視覚 + 聴覚)、読書(視覚)、とにかく手を動かす実践(触覚)、どの感覚を活用するのが得意か など、自分に合った方法を見つけ、それを日々の学習に取り入れてみましょう。学習スタイルが確立されることで、時間を無駄にせずに新しい技術や知識をどんどん吸収できるはずです。
2. IT基礎知識を学ぶ
どんな技術も基礎知識があってこそ応用が効きます。私が大好きなボクシング選手である「井上 尚弥」選手は世界のトップを走る今でも基礎練習をめちゃくちゃ大切にしています(どうでもいい)
IT基礎知識を学ぶことはまさに基礎練習です。例えば、基本情報技術者試験の「テクノロジー分野」をしっかりと理解することで、新しい技術を学ぶ際にその基礎知識を応用し、学習効率を高めることができるのではないかと思います。
3. 自社で求められる技術を学ぶ
先述した通り、まずは自組織や自社で求められる技術を習得することが最優先です。自社での実務に直結するため、学んだ知識をすぐに使う機会が増え、結果として習得も早くなります。
4. ビジネススキルを学ぶ(まずは月1冊ビジネス書を読んでみる)
これは総合力を身に付けるための学習です。コミュニケーション力やタスクマネジメントスキルは、エンジニアとしてプロジェクトを円滑に進めるために不可欠な能力です。まずは、月に1冊でいいのでビジネス書を読み、読んだ内容を実務で実践してみましょう。
まとめ
ということで、本ブログの冒頭に書いた疑問に対する私なりの答えは以下の通りです
- 「今学んでいる技術、数年後も役立つのかな...?もっと幅広く勉強すべき?」
- 今学んでいる技術が数年後も役立つかなんて誰にも分からん。せやから、まずは自組織で求められる技術をちゃんと学ぼう
- 「自社では頑張ってるけど、他社でも通用するスキルなのかな...(市場価値ってどうなんだろう)」
- 「他社でも通用するかどうか」なんて、いつ、誰が、俺を評価するかによって変わるから考えるのはやめよ
- 「新しい技術がどんどん出てきて、もう追いつけない...頭がパンクしそう!」
- 新しい技術全てに追いつく必要とかないやん。追いつく必要が出た時に、効率良く追いつけるように学び方を学んだ方がええな
- 「生成AI、データ分析、IoT...注目の技術についていけてない自分にモヤモヤ...」
- 世間的に注目されている技術と、自組織や目の前の顧客が求めている技術は必ずしも一致せーへんよね。だから、求められるようになってからモヤモヤしよっと
エンジニアとして不安や疑問を抱えるのは、誰にだってあります。技術の世界は常に変化していますが、だからこそ 「今、自分にとって何が必要か」 をしっかり考えて、見極めることが大切だと思います。
まずは、自社や自組織で求められる技術を着実に学んでいく。焦らず、今できることを一つひとつ積み重ねていきましょう!
山﨑 翔平 (Shohei Yamasaki) 記事一覧はコチラ
2019/12〜2023/2までクラウドインテグレーション部でお客様のAWS導入支援を行っていました。現在はIE(インターナルエデュケーション)課にて採用周りのお手伝いや新卒/中途オンボーディングの業務をしています。2023 Japan AWS Top Engineers/2023 Japan AWS Ambassadors