採用ノウハウ(業界別)
2023.04.19

採用担当者のためのエンジニア基本知識

株式会社ダイレクトソーシングの安井です。
「採用のためのエンジニア知識」と言ってピンとくる方がどれだけいるかは分かりませんが、もし自社でエンジニアの採用を強化しようとしている場合、かならず必要になってくるものです。
この記事では、自社でエンジニアを採用しようとしている人事採用担当者が「エンジニア知識を学ぶメリットとゴール」から「エンジニアの職種別に実際必要であろう知識」「記事を読み終えた後の情報収集方法」までを理解出来ます。
弊社はダイレクトリクルーティングの支援に特化した専門企業ですが、スカウト送付先の候補者を選定する上でエンジニア系知識をインプットする必要があり、社内の研修にも組み込まれています。
ダイレクトリクルーティングに限らず、どんな採用経路でも募集中のポジションの理解は必要です。
非エンジニアである人事採用担当者がエンジニア知識を学ぶ上でのはじめの一歩となれば幸いです。

エンジニア知識を学ぶメリット

この記事では基本的に「エンジニア学習」を以下の3つの分類で解説していきます。
エンジニア知識記事挿入_この記事の構造3つの分類
まずは、この3つそれぞれを学ぶメリットについてみていきましょう。

技術の仕組みを学ぶメリット

「技術の仕組みを知る」はここでは以下のようなものを指しています。
・コンピューターがWEBサイトを表示する仕組み
・大規模なトラフィックを処理する分散処理システムの仕組み
このような「そもそもこのシステムはどうやって動いているのか?」という部分を理解することで、エンジニアが実際に行っている仕事のイメージがつきやすくなります。
この記事では、後述の「エンジニア基礎知識」の章で基礎的な「技術の仕組み」を解説していきます。

エンジニア用語を理解するメリット

「エンジニア用語」を理解することは「プラグラミング言語を学ぶ」こととイコールでは有りません。
この記事では、後述の「エンジニア知識学習基礎編:ポジション別知識」「エンジニア知識学習基礎編:プログラミング言語編」で基本的な用語(エンジニアの職種・プログラミング言語)について解説していきます。

エンジニア業界構造を把握するメリット

「エンジニアの業界」を理解することで、各エンジニアが仕事上でどういった関わり方をしているのか、どういった会社があるのか。同士の関わり方であったり、特定のスキルを持った人材が見つかりやすい業種などが分かるようになります。
この記事では、後述の「エンジニア採用市場の最新動向」で少しだけ触れますが、基本的には様々な外部メディアやSNS・会社の情報などを収集しながら把握していくことになります。

エンジニア知識を学ぶ上でのゴール

エンジニア基礎知識

早速「そもそもエンジニアってどんな仕事をしているのか」という部分について、大枠から説明していきます。

エンジニアのイメージ

まずは身近なものでイメージを掴みましょう。
家の建築を行う時、完成まで1人で行うのが不可能に近いことはイメージできるかと思います。
また、実際に家の建築をサービスとして販売する場合は営業やセキュリティ業者等、様々な職種の方が関わることがイメージできると思います。
家を建てる際には営業、設計士、インテリアデザイナー、現場監督、大工、外構業者、電気配線、水道、セコム etc…いろんな役割の方が集まり一つのプロダクト(家)を完成させます。
WEBサービスやシステム開発の際も全てを一人で完成させることは不可能に近いため、様々な職種の方が関わってきます。
フロントエンドエンジニア、バックエンドエンジニア、デザイナー、品質(QA)、インフラエンジニア etc…様々な役割の人が集まって一つのプロダクトを完成させます。
また、目的によって最適な道具(プログラミング言語)も違うため、それぞれの役割に沿った言語が存在します。
実際に採用ターゲットとしてエンジニアを探す際も「この言語を使える人を探そう」という基準になることも多いですが、同じ言語でも使用目的が同じとは限りません。

WEBアプリケーションの基本構造

エンジニア知識記事挿入_技術の仕組み
エンジニアの職務内容を理解するための最も基礎的な「技術の仕組み」を説明していきます。
「WEBアプリケーション」とひとことに言っても非常に様々なものがありますが、ここでは例として以下のようなものを想像してください。
■例1:iPhoneのゲームアプリ
■例2:WindowsPCのChromeから見るYoutube
■例3:Macbook上のTeamsアプリ
基本的なWEBサービスのほとんどは「手元のデバイスに情報を表示してくれる側(クライアントサイド)」「様々な情報処理の結果を送ってくれる側(サーバーサイド)」に分かれて機能しています。
例えば上記「■例2:WindowsPCのChromeから見るYoutube」では、Youtubeで見る動画のデータがすべて手元のPCにあるわけではなく、Youtubeのサービスを提供しているサーバーサイドから送られてきたデータ手元のクライアントサイドで表示している、という流れになります。
以下かんたんに図示をしました。(図A)
左側が手元のデバイス右側が情報処理をしてくれるサーバーです。 エンジニア知識_サーバークライアント図
図A(人事エンジニアリング勉強会_基礎学習コンテンツ-Webアプリケーションの基本的な構造/株式会社LAPRAS を参考に作成)

リクエストとレスポンス

WEBアプリケーションのサービスは基本的に「図A」に示した「リクエスト」と「レスポンス」によって成り立っています。
サーバーサイドが情報処理をする際は、多くの場合クライアントサイドからの指示・要求によって情報処理をします。
このクライアントサイドからの指示・要求リクエストと呼びます。
例えば上記「■例2:WindowsPCのChromeから見るYoutube」で考えると、
「動画Aをユーザーがクリック」した際に「クライアントサイド(この場合はWindowsのPC・Chrome・Youtubeの表示画面までを含む)」から「動画Aの再生データを送ってください」というリクエストが送られます。
クライアントサイドからリクエストを受けると、それに従って情報処理を行った結果をクライアントサイドに返します
このサーバーサイドからの情報の返答レスポンスと呼びます。
例えば上記「■例2:WindowsPCのChromeから見るYoutube」でのリクエストを元に考えると、
「動画Aの再生データを送ってください」というリクエストに従い、動画Aの再生データをデータベースから探し出してクライアントサイドに送る、というレスポンスを返します。
この段階では「基本的にはこの繰り返しによってWEBアプリケーションが出来ている」という理解をしていただけばと思います。

デバイス(ハードウェア)とOS

ここまでは「図A」の「ソフトウェア」側がどのような動きをしているかを解説してきました。
図示しているとおり、これらのソフトウェアを動かす上で必ず必要なのが「デバイス(ハードウェア)」「OS」です。
「デバイス(ハードウェア)」に関して、サーバーサイドには必ず物理的なサーバーがあります
近年は「クラウドサービス」の登場で実感しにくいですが、自社で物理的なサーバー機器を所有・管理する「オンプレミス」と呼ばれるサーバーや「レンタルサーバー」「クラウドサーバー」等からどの種類を選ぼうと、自社で所有するか・大規模なサーバーの一部を借りて使うか の差であり、物理的なサーバーが存在しています。
「OS」はクライアントサイド・サーバーサイド共に必ず必要なものであり「高度なソフトウェアを動かすために必要な、土台となるソフトウェア」と考えてください。

アプリケーションとブラウザ

エンジニアの基本的な分類

 

エンジニア採用市場の最新動向

経産省が2016年に出したレポート「IT人材の最新動向と将来推計に関する調査結果」では、「2030年には約59万人のIT人材が不足する」と見込まれています。
継続的なITエンジニア人材の不足が予測される中で、エンジニア業界の採用市場はどうなっているのでしょうか。

エンジニア業界の採用が難しい理由

エンジニア知識記事挿入_業界構造を把握する
IT人材の転職採用市場には一定の傾向があります。
大きな特徴として「転職への抵抗感が少ない」というもがあります。
以下の図は「IT人材需給に関する調査(経済産業省)」の中での調査結果です。IT企業に属しているIT技術者は、半数近くの人材が一回以上の転職を行っている事がわかります。
エンジニアの転職回数
歴史の長い日本企業では、終身雇用の概念を持っている会社もまだ多くありますが、IT系企業では転職が普通に行われる事が多いです。
また「転職すると年収が上がる」という事例も増えてきているため、IT技術者自身が転職をキャリアプランの中に組み込んでいることが多いです。
これらの情報から、エンジニア業界においては以下のようなことが言えそうです。また、これらの理由が直接エンジニア採用が難しい理由になっていると言っていいでしょう。
・エンジニア業界では転職のハードルが低い
・資金力のある企業は、優秀なエンジニアを保持するためにますます高待遇化していく
・転職が容易な分、エンジニア目線で魅力的でない企業はさらにエンジニア不足が加速

エンジニア採用にお困りの方はこちらから

エンジニア知識学習基礎編:ポジション別知識

ここまでは、エンジニアの前提知識や周辺知識をみてきました。
ここからは、実際のポジション名プログラミング言語について採用の目線を交えながら解説していきます。
また、文中で「WEBアプリケーションの基本構造」の章でも使用した以下の例を使用します。
■例1:iPhoneのゲームアプリ
■例2:WindowsPCのChromeから見るYoutube
■例3:Macbook上のTeamsアプリ
エンジニア知識記事挿入_用語を理解する

フロントエンドエンジニアの採用に必要な知識

フロントエンドエンジニアとは

WEBアプリケーションの「見た目」と「クリック等で実際に操作する部分」の開発を担うエンジニアです。
クライアントサイドをメインで担当するエンジニアです。
基本的には「デザイナーが作成したWEBアプリケーションの見た目」を、後述のプログラミング言語で表現できるようにコーディングを行います。
ただ実際には、会社またはポジションによって、デザイナー的なスキルが求められたりUI・UX系のスキルを求められることもあります。
例えば上記「■例2:WindowsPCのChromeから見るYoutube」で考えると「画面の左端には各ページに遷移するボタンが一覧で表示される」「画面右側には動画の検索結果一覧が表示され、タイトルの文字が◯◯pxで表示される」「画面をスクロールすると次の動画が表示される」といったような「画面の表示」に関わる部分を担うのがフロントエンドエンジニアです。

フロントエンドエンジニアが使う言語は?

  • HTML
  • CSS
  • Javascript
  • Typescript
  • PHP

サーバーサイドエンジニアの採用に必要な知識

サーバーサイドエンジニアとは

WEBアプリケーションの最もコアな処理を行う部分、メインの機能の開発を担うエンジニアです。
名前の通り、サーバーサイドをメインで担当するエンジニアです。
基本的には、後述のプログラミング言語でクライアントサイドからのリクエストに答えるレスポンスの処理を作りますが、レスポンスの作成に伴って開発しなければならない機能はかなり膨大です。
例えば上記「■例2:WindowsPCのChromeから見るYoutube」で考えると「『エンジニア』というワードで動画を検索」というリクエストがあった際「データベースから『エンジニア』のワードが含まれた動画を検索」「動画を関連度順に並び替える」「各動画の再生データ・タイトルなどをクライアントサイドに送信」と言った処理を作成します。
そのため、殆どの場合データベースの知識が求められ、また場合によってはフロントエンドや後述の「インフラエンジニア」的なスキルを求められる場合もあります。
実際にサーバーサイドエンジニアの採用を行う際は特に、何のスキルがどこまで求められているのかをしっかり現場メンバーからヒアリングする必要がありそうです。

サーバーサイドエンジニアが使う言語は?

  • Python
  • Java
  • PHP
  • C#
  • C++
  • Ruby
  • node.js/JavaScript
  • SQL

モバイルアプリエンジニアの採用に必要な知識

モバイルアプリエンジニアとは

名前の通りモバイル(主にスマートフォン)アプリケーションの開発を担うエンジニアです。
基本的にはAndroidとiOSで使用するハードウェア・プログラミング言語も変わるため「iOSエンジニア」「Androidエンジニア」と別の名前で呼ばれることも多いです。
実際にモバイルアプリ開発経験のあるエンジニアを探しても、iOSかAndroidどちらか一方の経験を持った方も多く、両方のスキルを持った方は多少母数が減ります。
また、サーバー側の開発も同時に行うことが多いため、サーバーサイドの経験も頻繁に求められます。

モバイルアプリエンジニアが使う言語は?

  • Android
    • Kotlin
    • Java
  • iOS
    • Swift
    • Objective-c

データエンジニアの採用に必要な知識

データエンジニアとは

他のエンジニアが使いやすいようなデータベースの設計・開発を担うエンジニアです。
「データベースエンジニア」と言われることもあります。
基本的にはSQLに精通していて、データベース関連の様々なスキルや知識が求められるポジションです。
「サーバーサイドエンジニア」の説明で例に出した「データベースから『エンジニア』のワードが含まれた動画を検索」という部分は、既に「動画のデータベース」が完成している状態を前提としています。
データエンジニアはこの「動画のデータベース」を構築する上で、どう構築すれば検索性に優れるか?/今後の管理の手間が減るか?/新たなデータの追加がしやすいか?等、他のエンジニアがデータベースを扱う上で最適な形に構築していく役割があります。
後述の「データサイエンティスト」と混同されがちですが、実際に行う業務はかなり違います。

データエンジニアが使う言語は?

  • Python
  • Java
  • Scala
  • プログラミング言語以外に求められるスキル
    • Hadoop
    • SQL
    • クラウドプラットフォーム(AWS/GCP/Azure)

データサイエンティストの採用に必要な知識

データサイエンティストとは

大量のデータを統計的に分析することで、ビジネスの成功に繋がる要素を数字的に導き出すエンジニアです。
名称としては前述のデータエンジニアと混同しやすいですが、データエンジニアの目的は「使いやすいデータベースの構築」で、データサイエンティストの目的は「データに基づいた課題や知見の発見」です。
キャリアとしては、マーケティングを担う人材がデータからビジネス課題を発見するために、RやPythonなどのビッグデータを扱うのに適した言語を学びデータサイエンティストになることも多いです。

データサイエンティストが使う言語は?

  • R
  • Python
  •  プログラミング言語以外に求められるスキル
    • SQL
    • BIツール

AIエンジニア・機械学習エンジニアの採用に必要な知識

AIエンジニア・機械学習エンジニアとは

大量のデータを元に「予測」を行うアルゴリズムを開発するエンジニアです。
近年最も活発になってきている分野で、企業毎にこのポジションの定義・業務内容が変わることもありますが、基本的には「予測のためのアルゴリズム」構築が目的と言えることが多いです。
実際の中身は「大量のデータを元にした数値予測」なのですが、できることには様々な幅があります。
例えば「車のパーツの3dCADデータから壊れやすい部位を予測する」「過去の売上データを参考に来年度の需要予測をする」「入力された言葉に基づいた画像データを生成する」などのアルゴリズムを作成します。

AIエンジニア・機械学習エンジニアが使う言語は?

  • Python
  • R
  • Julia
  • JavaScript

インフラエンジニア/クラウドエンジニアの採用に必要な知識

インフラエンジニア/クラウドエンジニアとは

WEBサービスの基盤となるサーバー自体(ハードウェア)やサーバーOSを構築・管理するエンジニアです。
オンプレミスサーバー・クラウドサーバーどちらを使用しているかで業務内容は変わりますが「サービスの安定供給」が目的なことは代わりありません。
以前はオンプレミスが殆どであったため、会社で物理的なサーバーを購入し運用できる状態までの環境を作りあげるような業務を担うことが多く「インフラエンジニア」という名称で呼ばれていましたが、近年はクラウドサーバーを使用することが増えているため「クラウド環境のインフラエンジニア」を「クラウドエンジニア」と呼称しています。

インフラエンジニア/クラウドエンジニアが使う言語は?

  • Shell
  • TTL
  • BAT

プログラミング言語以外に求められるスキル

  • クラウドプラットフォーム(AWS/GCP/Azure)

採用のためのエンジニア知識の学び方

エンジニア採用のために読んでおくべき本

作るもの・作る人・作り方から学ぶ 採用・人事担当者のためのITエンジニアリングの基本がわかる本
非エンジニア人事のためのエンジニア採用の教科書~ダイレクトリクルーティングの始め方

エンジニア採用に役立つサイト

  • 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
    • サイト名の通り、ITやビジネスで使われる言葉を「ざっくり」説明してくれるサイトです。
      技術の具体的な説明まではありませんが、「その技術でどんな事が出来るのか」「関連した技術はなんなのか」という部分までをかんたんなイメージ図解と共に解説してくれます。
    • 「知らない用語が出てきたらまずここで調べる」という使い方がおすすめです。Google検索でもよく読めば概要は把握できますが、どこよりも平易な解説をしてくれるので表層の理解にとても役立ちます。
  • 採用担当者向けのエンジニア採用勉強会を開いた/ころちゃん-note
    • 株式会社Casterのエンジニアの方が、社内のエンジニア採用担当社向けに作成した資料をnoteにて公開していただいています。
      まさに今回のテーマと同じ目的で作成されたものなので、非常に参考になる部分が多いです。
      また、今回の記事とは別角度で深堀りされている部分なども有るので、この記事の内容を併せて理解度を深めるのに役立てば幸いです。
  • 【エンジニア採用】 人事向けエンジニアリング勉強会の資料を公開します!/中島佑悟-note
    • エンジニア採用特化型メディア「LAPRAS」に所属する方が、人事向けにエンジニア知識をまとめたものです。
      こちらのスライドは、今回の記事を作成するにあたり非常に参考にさせていただきました。クライアントサイド/サーバーサイドの説明等、一部この記事の内容と重複している箇所もありますが、記事に含めていない部分も多くあるので、こちらもぜひ全スライドを通して見るとより理解度が深まると思います。

「採用担当者のためのエンジニア基本知識」まとめ

以上、弊社がダイレクトリクルーティングにおいてエンジニアのスカウト対象選定をする前にインプットしている情報をまとめてきました。
「採用のためのエンジニア知識の学び方」の章でもまとめたように、この記事の内容はあくまで「採用のために必要なエンジニア知識の導入部分」です。
真に採用に役立つ知識を得るには、SNSや様々な媒体を活用しながら最新の情報を常に獲得していくことが重要です。
また、弊社は複数のエンジニア出身者が在籍する「ダイレクトリクルーティング支援専門企業」です。ダイレクトリクルーティングを行う上で、エンジニア知識不足や成果不足等課題を感じている方は以下フォームからお気軽にお問い合わせください。

エンジニア採用にお困りの方はこちらから

45分の気軽な相談会を
開催しています

安井

安井

飲食系ITベンチャーにてマーケティングを担当後、株式会社ダイレクトソーシングに転職。 カスタマーサクセスとしてコンサルティング業界やエンジニア業界を中心にダイレクトメディアを活用した調査・スカウトを実施。 現在は前職の経験とカスタマーサクセスにて顧客との対面で得た知見・市場感を元に、マーケティング業務全般を担当。