見出し画像

IT企業の採用担当が知っておきたい基礎知識【開発言語編】

IT企業の採用担当が一番困るのが、どんな人物を採用すればよいのか。

現場から、「Java経験3年以上のやつ」「クラウドわかるやつ」「SQL叩けないとダメね」など、要求が一言で終わる。あるいは「会計システム開発した即戦力以外NG」など、ピンポイントで要求されているのではないでしょうか。

で、採用担当に知識がないから「わかりました」の一言を返し、言われたとおりの要望を求人サイトやエージェントに送る。しかし、レスポンスはない。現場から「なぜ、採用できないんだ」と叩かれる。というデフレスパイラルを繰り返しているはずです。

それは不毛だし、組織にとっても求職者にとっても望ましい状況ではありません。

きちんと現場と調整し、ふさわしい人物を採用することが採用担当の仕事である、と私は考えています。

そのために知るべき知識は数多くあります。

以前もお伝えしていますが、今回はより踏み込んだ「開発言語」について。

開発言語がわかれば開発するシステムがわかり、開発するシステムがわかれば開発言語がわかります。「Java経験3年以上」と言われたら、「え?C#でもアリですか。(Android開発をしているのであれば)Kotlinも代替可能ですよね」ということができます。

■開発言語とは

そもそも開発言語とは、コンピューターに命令をするために記述する言葉(=プログラミング言語)のことです。世の中には数百の開発言語がある、と言われています。しかし、20個ほど覚えれば採用活動では十分です。

<覚えておきたい開発言語>
・Java(ジャバ)
・C#(シーシャープ)
・C、またはC言語
・C++(シープラ、またはシープラプラ)
・PHP(ピーエイチピー)
・Perl(パール)
・JavaScript(ジャバスクリプト)
・Ruby(ルビー)
・Python(パイソン)
・Objective-C(オブジェクティブシー)
・Swift(スイフト)
・Kotlin(コトリン)
・Go、またはGolang(ゴー、またはゴーラング)
・Scala(スカラ)
・COBOL(コボル)
・VB(ブイビー、またはVisualBasic(ビジュアルベーシック))

このほかに、HTML、CSS、SQLを入れたいところですが、現在の開発ではHTML/CSSはほぼ使います。また、SQLもデータベースを扱う場合、使われるため、HTML/CSS、SQLがまったくできないという開発エンジニアは経験者と考えなくてよいでしょう。

■開発するシステムで分ける開発言語

開発するシステムは大きく分けて2つ。「業務系システム」と「Web系システム」です。

「業務系システム」はさらに、基幹業務系システムと情報系システムに分かれるのですが……情報系システムを開発するケースは少なく、業務系=基幹業務系と覚えておけば問題ありません。

さて、肝心の業務系システムとはなにか。一言で言えば、企業の業務で使われるシステムのことです。

<主な業務系システム>
・会計・財務管理システム
・生産管理システム
・販売管理システム
・購買管理システム
・在庫管理システム
・物流管理システム
・人事給与管理システム
・営業支援システム
・マーケティングシステム など

具体的なシステムの名称をあげると、「ああ、管理本部で使われるシステムね」と思えるでしょう。

このうち、「会計管理システム」「販売管理システム」「在庫・購買管理システム」「生産管理システム」「人事給与管理システム」をひとまとめにした(パッケージにした)システムが「ERP」と呼称されます。

そして、業務系システム開発と言われたら、開発言語は限られます。

<業務系システム開発で、よく使われる開発言語>
・Java
・C#(C#.NET)
・VB(VB.NET)
・COBOL
・(まれに)PHP

業務系、かつ大規模な開発と言われたら、ほぼJavaかC#しかありません。金融機関で使われる勘定系と言われたら、COBOLの可能性が高いです。古いシステムの改修と言われたらVBです。

PHP、または上記には上げませんでしたが、CやC++の可能性もなくはないですが、レアケースと言えるでしょう。

VB.NETやC#.NETのように、.NETがついていることがありますが、基本的には同じものです。「Windows環境専門の開発言語」と思ってください。

■Webサービス/スマホアプリ開発の開発言語

さて、さきほど「Web系」と使いましたが、この言葉、人によって定義がバラバラです。ここではWebサービス・スマホアプリの総称として使います。

業務系と異なり、さまざまな開発言語で開発が行われています。というのも、開発言語によって得意/不得意があり、それによって使い分けがされているからです。

<Webサービス開発で、よく使われる開発言語>
・JavaScript
・PHP
・Ruby
・Python
・Go
・Java
・Scala
・Perl
<スマホアプリ開発で、よく使われる開発言語>
◆Android開発
・Java
・Kotlin
◆iOS開発
・Objective-C
・Swift

スマホアプリは簡単です。Android開発ならJavaかKotlin、iOSつまりiPhoneのアプリ開発ならObjective-CかSwiftしかありません。

Webサービス開発ではさまざなま開発言語が使われています。

Webサイトの表示に関わる開発言語はJavaScriptとPHPです。画像が動いたり、動画が流れたり、あのような処理を命令する開発言語のこと(厳密には違いますが)。

今、はやりのAI技術(機械学習や深層学習など)はPythonが多く使われています。

あとは、それぞれのサービスの特性や開発チームの意向などによって決まるので、一概に言えません。

■開発言語どうしの関係性

Javaがほぼすべてに登場していたこと、CやC++が登場しなかったことは気づかれましたか。

現在、使われている開発言語のほとんどは、CとC++をベースとしています。その影響が色濃く出ているのがJavaです。そのため、Javaはさまざまな開発で使われます。

一方、CとC++は組み込みやゲーム開発などで使われ、業務系やWeb系に使われることはかなり少なくなりました。

Javaの影響を受けているのがC#です。文字を見ると、CやC++に近いように思われますが、C++⇒Java⇒C#という流れを組んでいます。また、Javaを改良し、登場したのがKotlinです。

C/C++からObjective-Cが派生し、Appleによって生み出されたのがSwiftです。そのため、Apple製品上で動くシステムと相性がよいわけです。

PerlからPHPが派生し、RubyやPythonに広がっていきます。開発言語のなかでは記述が簡単な部類で、その意味では同系統の開発言語と言えるでしょう。大元のCやC++は記述の仕方が複雑です。

以上のように、開発言語には系統があるので、親しい言語を使っているエンジニアは別の言語を学びやすいのです。

日本人が韓国語を覚えやすいのと同じ理屈です。韓国語は日本語に近い文法構造を持っています。一方、フランス語はまったく違う構造なので、同じ言語でも覚えるのには苦労します。

なので、近しい開発言語を使っていれば、採用ターゲットに入れることが可能です。

■開発言語を見れば、エンジニアが何をやってきたかがわかる

このように開発言語と開発するシステムには関係性があります。そのため、求職者の職務経歴書の扱った開発言語を見るだけで、どんなシステムを開発をしてきたかがわかります。逆もまた然り。

また、自社の求人票を記載するときも、「開発環境:Java、C#、Ruby」と記載したら、「この会社は何をやっている会社だ!?」と求職者から疑問に思われます(派遣系の会社を除く)。

先述の通り、JavaとC#は大規模な業務系システム開発によく使われます。一方、RubyはWebサービス開発です。JavaとC#だけなら「業務系が強い会社かな」と思われ、JavaとRubyなら「Webっぽいのかな」と思われます。

しかし、3つが揃うと「あー、客先常駐でクライアントによって開発するシステムがバラバラなんだ」と思われ、敬遠されるでしょう。プロジェクトごとに開発言語や開発環境を書き分けるならまだしも、開発言語で一緒くたにする企業はエンジニアに対する理解が乏しいと認識されます。

改めて、ご自身の会社の求人票を確認してください。現場から言われたことを、ただ羅列していませんか。それ、エンジニアからの応募が来ない一因です。

よろしければ、サポートをしていただけると嬉しいです。サポートが今後の活動の励みになります。今後、求職者・人事担当などに有益な情報を提供していきたいと考えています。