LoginSignup
1
0

More than 1 year has passed since last update.

そろそろSE・PG採用は理系卒がいいのか決着をつけよう。

Posted at

はじめに

本記事は当方の主観に基づくものであり、特定の個人や団体を誹謗中傷する意図はありません。

「この人はこんな風に思ってるんだ~」ぐらいの感覚で見ていただければ幸いです。

テーマ

『SE・PG1の新卒採用において、文系卒よりも理系卒がいいのか』

結論

「SE・PG」と聞くと一般的には理系のイメージを持っている人が多い印象があります。

確かに、自分も初めてSEやPGといった職業を知った時は「The・数学!」といったイメージを持っていました。

エディタやターミナル上に羅列された英単語や数式を見ると、どうしても理系のイメージが定着してしまいます。

よく洋画の中で、ハッカーが小難しいことを言いながら高速でタイピングしている様子もSE・PG = 理系と思わせる要因の一つだと思います。

しかし、実際に触れてみると一概に理系とは言えないようです。

先に結論から申し上げます。
ほぼ理系・文系関係ありません。

「え、関係ないの?"ほぼ"って何?」と思った方に向けて、以降はこの結論に至った理由を定量的に見ていきましょう。

前提条件

SE・PGと言っても業種によって、多岐にわたって枝分かれしています。

例を挙げると、アプリケーション開発やWebサイト開発、ゲーム開発、データベースの設計・管理、インフラ、etc...

本記事では書ききれないほどの種類があるわけですが、結論を出す上では「どの職種に就くか」といった前提を決めることが必須になります。

先述した"ほぼ"という表現を深掘りしていきます。

業種における比較

例えば、Webサイトを開発する場合、HTML、CSS、JavaScriptといったプログラミング言語2を用いて開発を進めますが、仕組みや言語の記法・文法を覚えてしまえば開発に問題がないため、覚えるといったプロセスが最初に重要になります。

もちろん数学的な要素が全く必要ないわけではありませんが、幸いにも言語を開発した先人のおかげで難しく考えることなく実装できます。

より具体的に言うと、平方根を求める場合、一から考えなくても最初から備わっている組込関数を使うことで簡単に実装できます。
※実際のWeb開発で平方根を求めるような処理をすることは少ないです。
 レイアウトに基づいてコンテンツを配置していくことが圧倒的に多いです。

//JavaScript
// 16の平方根を求める。
Math.sqrt(16);
>> 4

簡潔に書くことができました。

このように最低限の数学的な知識を具現化することは、さほど苦ではありません。
この点においては文系だろうが理系だろうが有利不利はありません。

では、次に顔を認証するシステムを開発する場合の一部を見てみましょう。

# Python

import insightface
import cv2 
import numpay as np
#省略

cascade = cv2.CascadeClassifier('****/haarcascade_frontalface_alt2.xml')

ret, frame = capture.read()
frame = cv2.resize(frame, (int(frame.shape[1] * 0.6), int(frame.shape[0] * 0.6)))
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

#省略
similarity = np.dot(feat1, feat2) / (np.linalg.norm(feat1) * np.linalg.norm(feat2))

#まだまだ続く...

これはほんのごく一部ですが、Webサイト開発同様に覚えることはもちろん、ロジックが一番に重視されます。
一つ一つを分解して読み解くとシンプルな構成になっていますが、なぜその処理が必要かという裏側には数学を理解していなければなりません。

上記のプログラム内にはコサイン類似度を実装している箇所がありますが、なぜコサイン類似度を使うのかというと、下記の流れがあったためです。

・カメラに映った顔が登録されている人かどうか知りたい。
 →どれくらい似ているかを算出して閾値を超えた場合、本人とみなす。
  →どれくらい似ているかを算出するためにコサイン類似度を使う。

といったように、その数式がなにを表しているかという数学そのものの考えに基づいています。

このように開発対象によって数学的な知識が必要か否かは分かれると言えます。
そういった意味で言うと、理系が有利と言えるでしょう。

しかし、文系が全く不利というわけではありません。

あくまでも私が言いたいことは

既に理解していることは有利だが、後からであっても理解すればそれでいい。

ということです。

おわりに

本記事を執筆した背景として、文系卒の方から情報系の職種に就きたいけど、
ハードルが高く感じるとの相談を受けることが多々あったため、
これから情報系の職種に就きたい方の励みになれば幸いと思い執筆しました。

 
 

注釈

  1. SE:システムエンジニア、PG:プログラマーを指す。

  2. 筆者が思う一般的なフロントエンドの言語。
    PHPやJavaでもできるだろ!とお考えの方もいるかもしれませんが、説明を煩雑にしうるので省きました...あしからず。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0