【全エンジニア必見】必須スキル6選(学習ロードマップ付き)
はじめまして、ますみです!
株式会社Galirage(ガリレージ)という「生成AIに特化して、システム開発・アドバイザリー支援・研修支援をしているIT企業」で、代表をしております^^
この記事では、私が考える「エンジニアの必須スキル」を厳選して6つ紹介します。
さらに、各スキルの「オススメ学習法(学習ロードマップ・オススメ資格・本・動画・アクションプラン)」も紹介します。
この記事(もしくは動画)を最後まで見れば、「エンジニアとしてさらにスキルアップするための道筋」が見えてくると思います。
第1位:GRIT力
GRIT力とは?
- GRIT力とは、「責任感をもってやり抜く力」です。
- 次の4つの単語から構成されます。
- Guts:度胸
- Resilience:復元力
- Initiative:自発性
- Tenacity:執念
アクションリスト
1. 情熱の持てることを見つける。
- GRIT力を身につけるために、まずは「情熱の持てることを見つける」ことが大切です。
- そして、情熱の持てることが見つかったら、「SMARTな目標」を立てましょう。
- SMARTな目標とは、次の5つの要素を満たした目標のことです。
- Specific:具体的
- Measurable:測定可能
- Achievable:達成可能
- Relevant:有意義
- Time-bound:期限が明確
2. 目標に集中し、余計なことは絶対にやらない。
- やりたいことがたくさんあって、全て中途半端になってしまうという方もいると思います。
- やりたいことがたくさんあることは非常に良いことですが、「時間とエネルギーが分散」により、本当にやりたいことが達成できなくなります。
- そこで、「もっともやりたいことに集中し、それ以外の余計なことは絶対にやらない」ということが大切です。
- 「選択と集中」を行い、「目指すに値する1つの目標に集中する」ことをオススメします。
3. 泥臭い努力を継続する。
- 本当に成し遂げたいことがあるなら、「泥臭い努力を継続すること」が大切です。
- 「自分にできると信じることが大切」という考えがありますが、それは「泥臭い努力を継続したとしたら、自分にできると信じる」と捉えた方が正確でしょう。
- 「努力を怠ってしまったことにより、本来できたはずのことができなかった」という結末にならないことを願っています。
本の紹介
1. やり抜く力 GRIT
2. 実践版GRIT やり抜く力を手に入れる
3. やり抜く人の9つの習慣 コロンビア大学の成功の科学
4. やりきる力
第2位:コミュニケーション力
コミュニケーション力とは?
- コミュニケーション力とは、「他者と情報共有や意思疎通を円滑に行う力」です。
- グロービス経営大学院の記事によると「伝える力・聴く力・読み解く力」に分類することができます(参考)。
アクションリスト
1. 最初にメッセージを伝える。
- 自分の話が終わった後に「結局、何が言いたいの?何をすればいいの?」と聞き返されたことはありませんか?
- 誰かに情報を伝えたいと時は、必ず「最初に結論となるメッセージ」を伝えましょう。
- とくに、相手へコミュニケーションする意図が「共有か?要望か?質問か?」を明確にしましょう。
- この点を意識するだけで、コミュニケーションはかなり円滑になるでしょう。
2. 相手の話を傾聴する。
- あなたは相手の話を遮ってしまうことはありませんか?
- 私も自分に余裕がない時は、時々やってしまうことがあります。
- 相手との信頼関係を築き、円滑にコミュニケーションを取るためには、相手の話を「最後まで聞ききりましょう。」
- そして、聞いている時は、次の3つを意識して傾聴しましょう。
- 笑顔で聞く。
- 声に感情を乗せる。
- 身振り手振りで反応する。
3. 他者理解に努める。
- 他者理解とは「相手の気持ちや考え方を理解する」ことです。
- 完全に理解することは難しいですが、理解する「努力」はできます。
- そのためには、次の3つを意識しましょう。
- 相手の言動や行動を観察する。
- 相手の立場や状況を知る。
- 相手に質問する。
- 他者理解をすることで、相手の意図を汲み取ったり、合理的な配慮をしたりできます。
本の紹介
1. 人は話し方が9割
2. 東大作文
3. 書く技術・伝える技術
4. 1日1トレで「声」も「話し方」も感動的に良くなる
5. 優れたリーダーは、なぜ「傾聴力」を磨くのか?
第3位:問題解決力
問題解決力とは?
- 問題解決力とは「根本的な問題を解決する力」です。
- 私が駆け出しのエンジニアだった時に100万円で受注した案件では、要件定義通りに開発・納品できた一方で、その後システムが公開されなかったことを知りました。
- その時、私はエンジニアとして一人前ではなかったなと痛感しました。
- このように世の中には「使えないシステムを指示通り開発するエンジニア」と「問題解決できるシステムを提案し、開発するエンジニア」がいます。
- 食べていけるエンジニアになるために、問題解決力を磨くことをオススメします。
アクションリスト
1. 「良質な問題」を見極める。
- 問題解決において、もっとも重要なことは「良質な問題を見極めること」です。
- では、良質な問題とはどのような問題なのでしょうか?
- 私が愛読している「イシューからはじめよ」という本では、次の3つの条件が紹介されています。
- 本質的な選択肢である。
- 深い仮説がある。
- 答えを出せる。
- たとえば、ある30階建てのタワーマンションで「エレベータが来るのが遅い」というクレームが来ていたとします。
- この時、多くの方は「エレベータが遅い」ということが問題だと考え、多額のお金を使って高速なエレベータに変えたり、増設したりすると思います。
- しかし、ここで「エレベータを待っている時間が退屈である」という「良質な問題」を見極めることで、各階に「姿見の鏡を置く」という方法で、低コストかつ迅速に解決できる可能性があります。
- このような良質な問題の見極め方については、より詳しく知りたい方は「イシューからはじめよ」という本をぜひご一読ください。
2. 「関係者が腹落ちできる仮説」を構築する。
- 良質な問題が定義できたら、次はその問題を解決するための仮説を構築します。
- ここでいう仮説とは、先程の例における「姿見の鏡を置けば、解決できるだろう」というような「仮に設けられた説」になります。
- しかし、自分が良いと思う仮説であればなんでもいいわけではありません。
- 大抵の仕事は、個人ではなくチームで遂行するため、「関係者全員の協力が必要不可欠」です。
- そのため、「自分だけではなく、関係者全員が腹落ちできる仮説を構築する」ことをオススメします。
3. 「ユーザーへの共感」を大切にする。
- 開発者視点のプロダクトを制作すると、ユーザーに使ってもらえないことが多々あります。
- そのため、プロダクトを制作する時は、「必ずユーザーを理解し・共感しましょう」。
- 共感するための具体的なアクションは次の3つです。
- ユーザーを「観察」する。
- ユーザーと「同じ体験」する。
- ユーザーへ「質問」する。
- ユーザー視点に立ち、ユーザーに使いたいと思ってもらうプロダクトを制作しましょう。
- そうすることで「解決できたはずの問題が解決まで至らなった」ということを防げるでしょう。
- この考え方は、「スタンフォード式 デザイン思考」という本で詳しく解説されているため、もっと学びたい方はこちらもご一読ください。
本の紹介
1. コンサルを超える 問題解決と価値創造の全技法
2. イシューからはじめよ
3. 解像度を上げる
4. スタンフォード式 デザイン思考
5. 問題解決見るだけノート
第4位:プログラミング力
プログラミング力とは?
- プログラミング力とは、「システムを設計し構築する力」です。
- 開発をするエンジニアはもちろんのこと、マネージャーにとっても重要なスキルです。
- チームをマネジメントする時に、様々なメリットがあります。
- つまづきそうなポイントを予測し先手を打てる
- 適切なスキルを持ったエンジニアを選択できる
- そのため、「自分はマネージャーだから」と思わず、最低限のプログラミング力は身につけることをオススメします。
「プログラミング力」の学習ロードマップ
ここでは、学習段階を「入門編・基礎編・応用編」に分けたため、自分のレベルにあったところからお読みください。
入門編
アクションリスト
「まだプログラミングをしたことがない方」は、次の3つのアクションを取ることをオススメします。
1. Progateの「JavaScript I」と「Python I」のコース完了
- Progateとは、「ウェブプログラミングを学べるサイト」です。
- JavaScriptとは、「Webサイトを動かすために使われるプログラミング言語」の一つです。
- Pythonとは、「機械学習やデータ分析を行うためのプログラミング言語」の一つです(Webアプリケーションの作成も可)。
- どのプログラミング言語から入るかは人によって様々な意見がありますが、学習コストの低さと流行という観点から、この2つから始めることを私はオススメします。
- 一つのプログラミングのみを入門しても良いのですが、複数の言語を知っておいた方が、言語間の共通点や違いが見えてくるため、あえて二つの言語を入門することをオススメします。
- もしも金銭的・時間的余裕がある場合は、I以降のコース受講もオススメしますが、少々時間がかかるため『3.「シンプルなウェブサイト」の制作』まで先に走り切ることをオススメします。
また、私自身も、Pythonの教材をZennで無料公開しているの、もしもよろしければ、こちらもご一読ください^^
2. Progateの「HTML 初級編」のコース完了
- HTMLとは、「Webページを作るためのマークアップ言語」の一つです。
- HTMLは、プログラミング言語ではない一方で、ウェブシステムを作る際に必要な知識なため、習得することをオススメします。
3. 「シンプルなウェブサイト」の制作
- サクッと始めるウェブ開発【HTML / CSS / Firebase】というZennの無料教材を用いて、シンプルなウェブサイトを制作することをオススメします。
- この教材は、コードの模写をしながら、シンプルなウェブサイトを制作し、公開する方法を学ぶことができます。
本の紹介
1. JavaScriptふりがなプログラミング
2. Pythonふりがなプログラミング
3. Webとプログラミングのきほんのきほん
基礎編
アクションリスト
「駆け出しエンジニアの方(目安:実務経験が2年未満)」は、次の3つのアクションを取ることをオススメします。
1. 「Git・Docker・Shell」の使い方の学習
- Git・Docker・Shellは、「エンジニアになる上で必須のツール」と言っても過言ではありません。
- Gitとは、ソースコードの「バージョン管理」をするためのツールです。
- Dockerとは、開発する上での「実行環境」を管理するためのツールです。
- Shellとは、パソコンへ「処理を指示」するためのツールです。
2. 「プログラミング言語大全」の一読
- 世の中には、たくさんのプログラミング言語があります。
- 全てを理解する必要はありませんが、有名な言語の概要だけでも網羅的に知っておくと、技術選定を行う際に役立ちます。
3. 「自分が欲しいなと思うサービス」もしくは「ポートフォリオ」の制作
- 少しレベルが高いかもしれませんが、「自分が欲しいなと思うサービス」もしくは「ポートフォリオ」を制作することをオススメします。
- このアクションは、調べながらやる必要があり、とても時間がかかり大変です。
- しかし、自分を裏切らないだけの力を身につけることができます。
本の紹介
1. プログラミング言語大全
2. Git&GitHubの教本
3. Docker&Kubernetesのきほんのきほん
応用編
「プログラミングに少しだけ自信のある方(目安:実務経験が2年以上)」は、次の3つのアクションを取ることをオススメします。
アクションリスト
1. ひたすら「実務」で場数を踏む
- プログラミング力を鍛えたい場合、「場数を踏む」ことが非常に重要です。
- まだまだ独学で学べることは多いと思いますが、低い単価でもいいので、実務に挑戦してみましょう。
- 場数を踏むための具体的なアクションとして次の3つがあります。
1.エンジニアを必要としてそうな知人に仕事がないか聞いてみる
- エンジニアを探している知人を見つけることは難しいかもしれません。
- しかし、すでに信頼関係があるため、条件が合えばスムーズに成約できます。
2. 「Lancers」や「クラウドワークス」で案件を探す
- 仲介手数料はかかってしまいますが、案件をたくさん探すことができます。
3. 「SNS」で案件を探す
- 私は実際に行ったことはありませんが、Twitterで案件を探す方もいます。
- もしも具体的にスキルアップしたいことがある方は、私にご連絡いただいても大丈夫です(もしも条件が合えば、業務委託で仕事をお願いしたいです)。
2. 「リーダブルコーディング」の学習
- リーダブルコーディングとは、「自分も他人も読みやすいコードを書くためのコーディング手法」です。
- ソースコードの可読性は、保守性を高める上で非常に重要です。
- 「ただ動くコード」が書ける人から、「読みやすいコード」が書ける人へステップアップすることをオススメします。
3. 「セキュアコーディング」の学習
- セキュアコーディングとは、「Webアプリケーションの脆弱性(サイバー攻撃を受けるリスク)を防ぐためのコーディング手法」です。
- セキュリティもしっかりと意識したコーディングができると、お客様や上司から信頼されるでしょう。
本の紹介
1. リーダブルコード
2. 安全なWebアプリケーションの作り方
番外編(その他)
アクションリスト
1. 「レビュー」による学習
- 優秀なメンターを見つけ、コードレビューを依頼しましょう。
- 自分に足りていないところや弱いところがピンポイントで知れるため、短時間で一気に成長することが可能です。
- 一方で、メンターからするとレビューは非常に時間のかかる作業なため、しっかりと感謝を伝えましょう。
2. 「競技プログラミング」への参加
- 競技プログラミングとは、「複数の人で競うプログラミングコンテスト」です。
- ゲーム感覚で学べる上、上位に入れるとそれ自体がスキルの証明になります。
- グローバルで有名なTopCoder・Codeforcesや日本で有名なAtCoderなどがあります。
3. 「ハッカソン」への参加
- ハッカソンとは、「短い期間で開発するイベント」です。
- 時間制限があるため、非常に効率よくスキルを磨くことができます。
- また、チームで参加することで、仲間とのコミュニケーション能力やチームワーク能力も身につけることができます。
- 身内で開催することもできますし、Connpassというエンジニア向けのイベント掲示板サイトで募集されているものもあります。
- 私自身も今後ハッカソンを開催する予定なため、興味のある方はTwitterをフォローいただけますと幸いです。
4. 「自作ライブラリ」の制作
- 自作ライブラリとは、「自分で作ったライブラリ」です。
- 自分だけが利用する目的で制作してもいいですし、公開して他の人に使ってもらうこともできます。
5. 「OSS活動」(公開ソフトウェアへのコミット)
- OSS(Open Source Software)とは、「誰でも無料で利用できるソフトウェア」です。
- GitHubで公開されているソフトウェア(もしくはライブラリ)に新規機能を追加したり、バグ修正をしたりすると、そのソフトウェアの開発者によってマージされることがあります。
第5位:探索行動力
探索行動力とは?
- 探索行動力とは、「知らないことにも興味を示し、知るための行動をする力」です。
アクションリスト
1. 余裕を作る。
- まずは余裕を作りましょう。
- 目の前のことで精一杯な状況下で新しい探索行動を取ることは難しいことはことは想像に難く無いでしょう。
- 余裕を作るための具体的なアクションリスト
- 必要十分な睡眠を取り、身体を整える。
- 瞑想をし、精神を整える。
- 瞑想とは、「呼吸に集中し、湧き上がってくる感覚や感情を認知する行動」です。
- 瞑想により、不安やストレスが軽減することが知られています。
- 定常作業を自動化し、時間の余裕が生まれる仕組みを整える。
2. すぐ調べ、すぐ試す。
- あなたが今知らない技術に遭遇したとします。
- その瞬間、迷わず、すぐ調べましょう。
- そのような習慣をつけましょう。
- 10分だけでもいいです。途中でやめてもいいです。とりあえず動きましょう。
- 「やる気はやり始めてから出る」ということが知られているため、最初に動き出すことが重要です。
- お金がかかったとしても、自分の中で高額でなければ、まず試してみましょう。
- 新しいことへの試行を、自分への投資だと考えましょう。
- その投資が見合わないと判断すれば、すぐやめればいいです。
- 最初の一歩の投資は、いつか仕事に役立ち、人生を豊かにする財産となるでしょう。
- 私がオススメする具体的なアクションは次の通りです。
- 本屋で気になる本があれば、すぐ手に取る。
- 新しいプログラミング言語を習得する必要性が少しでも発生したら、入門記事を調べ、とりあえず"Hello World"する。
3. 新しい情報に触れる仕組みを作る。
- 「日常の中で新しい情報に触れる機会がそもそもないんだよね」という方もいると思います。
- 確かに、生活の中で、新しい情報に触れる機会を作ることは難しいです。
- そのため、「新しい情報に触れる仕組みを作る」ことをオススメします。
- 私がオススメする具体的なアクションは次の通りです。
- Qiita / Zennの新着記事を読む習慣をつける。
- 「SmartNewsやNewsPicks」などのニュースアプリを通して、ニュースを読む習慣をつける。
- 定期的に本屋へ立ち寄る。
第6位:コンピュータサイエンス力
コンピュータサイエンスとは?
- コンピュータサイエンスとは、「コンピュータやインターネットの仕組みなどに関する学問」です。
- 「計算機科学 / 情報科学 / 情報工学」と呼ぶこともあります。
- 英語のComputer Scienceを略して、「CS」と呼ぶこともあります。
- 複雑で安全なシステムを開発する上で、重要な知識の一つです。
「コンピュータサイエンス力」の学習ロードマップ
ここでは、学習段階を「入門編・基礎編・応用編」に分けたため、自分のレベルにあったところからお読みください。
入門編
アクションリスト
「ITに関してまだ知識がない方」は、次の3つのアクションを取ることをオススメします。
1. 「IT用語図鑑」の一読
- IT用語図鑑とは、「ITの基礎的な用語を図解でわかりやすくまとめた一冊」です。
- 他者とコミュニケーションを取る上での必須教養であり、一読することをオススメします。
2. 「ITパスポート」の資格取得
- ITパスポート(IP)とは、「ITを利活用するすべての社会人・これから社会人となる学生が備えておくべき、ITに関する基礎的な知識が証明できる国家試験」です(ホームページより引用)。
- この試験は、IPA(Information technology Promotion Agency、情報処理推進機構)というIT分野の発達を目的とした独立行政法人が主催しています。
- すなわち、この資格を取得すれば、最低限のIT知識を獲得し、証明できます。
3. 「テクノロジー系(IT系)ニュース」の視聴
- SmartNewsやNewsPicksなどのニュースアプリを通して、テクノロジー系ニュースを視聴することをオススメします。
- さらに、もしも知らない単語が出てきたら、すぐ調べましょう。
本の紹介
1. 「IT用語図鑑」開発・Web制作で知っておきたい頻出キーワード256
2. ITパスポート 20223度(TAC出版)
ちなみに、TAC出版を私がオススメする理由は下記の通りです。
- フルカラー
- 情報量の多さ
- 他のIPA試験本の充実性
- このフォーマットでの学習に慣れることで、他の試験を受けるときの学習コストを抑えられるというメリットがあります。
基礎編
アクションリスト
「ITエンジニアとして活躍したい方」は、次の3つのアクションを取ることをオススメします。
1. 「コンピュータサイエンス図鑑」の一読
- この本は、IT用語図鑑よりもさらに「コンピュータサイエンスの理論に踏み込んだ一冊」です。
- 元日本マイクロソフト社長の成毛眞(なるけ まこと)さんもオススメする一冊です。
2. 「基本情報・応用情報」の資格取得
- 基本情報技術者試験(FE)は、「ITエンジニアの登竜門とも言える非常に有名な国家資格」です。
- 応用情報技術者試験(AP)は、「さらにワンランク上のITエンジニアを目指している方にオススメな国家資格」です。
- 基本情報技術者試験までで十分と言う方もいますが、私は応用情報技術者試験まで取得することをオススメします。
- なぜなら、基本情報を合格しても知識の定着は難しく、応用情報に向けてもう一度学習する過程で定着する所感があったからです。
3. 「実務」への挑戦
- ここまで座学を習得できたら、コンピュータサイエンス力に関しては問題なく実務で通用すると思います。
- これより先の深い知識は、実務で知っていくことをオススメします。
本の紹介
1. 基本情報技術者 2023年度(TAC出版)
2. 応用情報技術者 2023年度(TAC出版)
3. コンピュータサイエンス図鑑
応用編
「他のITエンジニアと知識量で差別化したい方」は、次の3つのアクションを取ることをオススメします。
アクションリスト
1. 「ハーバード大学の講義CS50」の視聴
2. 「情報処理安全確保支援士」の資格取得
- 情報処理安全確保支援士試験(SC)とは、「セキュリティに関する国家資格」です。
- かなり高度な内容が問われますが、こちらの資格を取得する過程で、より安全なシステムの作り方を知ることができます。
3. 「自作パソコン」の制作
- かなり難しそうと思う方もいますが、制作キットなどを使えば、手軽にできます。
- 実際にCPUやメモリなどのやコンピュータの中のパーツをリアルで感じて、組み立てていく経験は、これまで身につけてきた知識をより定着させることができます。
本の紹介
1. オールインワン パーフェクトマスター 情報処理安全確保支援士(TAC出版)
2. 自作パソコン
番外編(その他)
アクションリスト
1. コンピュータサイエンスの「学士号・修士号・博士号」の取得
- より専門的な知識を体系的に学びたい場合は、大学や大学院で学ぶという選択肢もオススメします。
- また、アメリカの大学の学位だとなお良いです。
2. 「MIT Open Course Ware」の視聴
- MITが出している講義「MIT Open Course Ware」から学ぶこともオススメします(全て英語)。
3. 「TED-Ed」の視聴
- TEDが出している教育教材「TED-Ed」から学ぶこともオススメします(全て英語)。
4. 「技術系の雑誌」による学習
- 「日経ソフトウェア」などの技術系の雑誌による学習もオススメします。
5. 「技術系のウェブ記事」による学習
- 「QiitaやZenn」などのウェブ記事による学習もオススメします。
6. 「セキュリティコンテスト」への挑戦
- 「SECCON(Security Contest)」と呼ばれるセキュリティの大会に挑戦することもオススメします。
- 気になる方は、著者自身が2022年に参加した時の解説記事をご覧ください。
本の紹介
1. コンピュータシステムの理論と実装
2. マルウエアの教科書
3.セキュリティコンテスト CTFで学ぶ脆弱性攻略の技術
アクションリストまとめ
- GRIT力
- 情熱の持てることを見つける。
- 目標に集中し、余計なことは絶対にやらない。
- 泥臭い努力を継続する。
- コミュニケーション力
- 最初にメッセージを伝える。
- 相手の話を傾聴する。
- 他者理解に努める。
- 問題解決力
- 「良質な問題」を見極める。
- 「関係者が腹落ちできる仮説」を構築する。
- 「ユーザーへの共感」を大切にする。
- プログラミング力
- 入門編
- Progateの「JavaScript I」と「Python I」のコース完了
- Progateの「HTML 初級編」のコース完了
- 「シンプルなウェブサイト」の制作
- 基礎編
- 「Git・Docker・Shell」の使い方の学習
- 「プログラミング言語大全」の一読
- 「自分が欲しいなと思うサービス」もしくは「ポートフォリオ」の制作
- 応用編
- ひたすら「実務」で場数を踏む
- 「リーダブルコーディング」の学習
- 「セキュアコーディング」の学習
- 番外編
- 「レビュー」による学習
- 「競技プログラミング」への参加
- 「ハッカソン」への参加
- 「自作ライブラリ」の制作
- 「OSS活動」(公開ソフトウェアへのコミット)
- 入門編
- 探索行動力
- 余裕を作る。
- すぐ調べ、すぐ試す。
- 新しい情報に触れる仕組みを作る。
- コンピュータサイエンス力
- 入門編
- 「IT用語図鑑」の一読
- 「ITパスポート」の資格取得
- 「テクノロジー系(IT系)ニュース」の視聴
- 基礎編
- 「コンピュータサイエンス図鑑」の一読
- 「基本情報・応用情報」の資格取得
- 「実務」への挑戦
- 応用編
- 「ハーバード大学の講義CS50」の視聴
- 「情報処理安全確保支援士」の資格取得
- 「自作パソコン」の制作
- 番外編
- コンピュータサイエンスの「学士号・修士号・博士号」の取得
- 「MIT Open Course Ware」の視聴
- 「TED-Ed」の視聴
- 「技術系の雑誌」による学習
- 「技術系のウェブ記事」による学習
- 「セキュリティコンテスト」への挑戦
- 入門編
最後に
最後まで読んでくださり、ありがとうございました!
この記事を通して、少しでもあなたの学びに役立てば幸いです!
宣伝:もしもよかったらご覧ください^^
『AIとコミュニケーションする技術(インプレス出版)』という書籍を出版しました🎉
これからの未来において「変わらない知識」を見極めて、生成AIの業界において、読まれ続ける「バイブル」となる本をまとめ上げました。
かなり自信のある一冊なため、もしもよろしければ、ご一読いただけますと幸いです^^
参考文献
Discussion