就活生・若手社員

SEに数学は必要か|微分積分をやったことがないSEが答えます

数学

皆さんは「システムエンジニア」と聞いてどんなイメージを持ちますか?

  • 難しいことをやってそう
  • パソコンでなんでもできそう
  • 残業多い
  • IT土方
  • 理詰めされそう

そんなイメージがあるかと思います。(最後の方は個人的な意見)

マイナビの調査でも「高収入」「頭良さそう」などがあるようですね。

特に「難しいことをやってそう」の中には、▼を画面に映しているイメージがあるからではないでしょうか。(さすがにこれはコードの書き方が酷すぎるけども汗)

「英語」や「数式」の羅列から連想される「数学」。

これがチラつくのでプログラム未経験の方は難しく感じるんですよね。

結構、数学が嫌いだったり苦手意識を持ったまま社会人になっている人も多いようですし。

この記事の概要
  • SEは数学は必要か?実はそうでもない?
  • SEに求められるもの
  • 力不足を感じるなら勉強すべき

「数学」を使っているイメージ

例えば、Javaというプログラミング言語で、

int a, b , c;
a = 100;
b = 25;
c = a / b;
System.out.println( “回答:” + c );

と書いたとしましょう。これ、何をやっているかわかりますか?

これは算数でいう「100÷25=4」と同じことをしてます。

そして「System.out.println」という最後の「おまじない」で「回答:4」を画面に出力するようにしているだけです。

日頃行っている算数などをすこーしだけ面倒なことを増やしたりしているだけであり、実際にはこんなことをひたすらに続けたりしているだけです。

分岐処理(if)、ループ処理(for)や抽象化、インタフェース、配列など覚えることは沢山ありますが、「数学を使っているか?」と言われれば、「そうでもない」が回答になります。

数式、関数、「=」 などの記号がそう感じさせるのかもしれませんね。

また、仮に使うとしても、既にそういった関数などが用意されていて、それを使うだけで求めていた結果を出力してくれたりする「ライブラリ」というものは結構用意されていたりします。

昔ほど、自力で全てを何とかやるようなことはないと思っていいかと思います。

「数学」は必要?⇒ 「まぁ出来るに越したことはない」程度

出来るのであればそれに越したことはないと思いますが、数学が出来ないからと言ってSEやプログラマーが全くできないかというとそんなことはないですね。

ただし、数学が得意な方はプログラミングの覚えがいい事実もあったりはします。

プログラミングに出てくる「関数」などは数学と同じ考え方なので。

先程も数学とプログラミングの例を出してはいましたが、

■数学の場合

  f(x) = x² +2 x+1 
   ↓ xに3を入れる
  f(3) = 9 + 6 + 1 = 16

■プログラミングの場合
  private static int f(int x)
  {
    int i = x * x + 2 * x + 1;
    return i;
  }

  private void output()
  {
    int x = f(3) //xに3を入れる

    System.out.println( “回答:” + x );
    //ここで「回答:16」と出力される
  }

書き方が違うだけでやっていることは同じです。

ただ、数学の例の解き方を知らないからと言ってプログラミング側が出来ないというわけではなく、数学が出来た人の方が感覚的に覚えやすいよね!っていうぐらいのメージです。

SEに求められているものとは?

この記事を見ているということは、

「数学が苦手だけどプログラミングってできるのかな…」と悩んでいたりする方ではないでしょうか。

(違ったらすんません)

SEに求められるものがわかれば「数学が苦手なんだけどどうすれば…」なんて悩んだりすることはないかと思いますので、知っておきましょう。

  1. 論理的思考
  2. コミュニケーション能力
  3. プロジェクト管理能力
  4. 文章・資料作成能力

SEに求められるもの1:論理的思考

SEは顧客要望に対して論理的に「仕様」「スケジュール」を決めていく必要があります。

顧客への説明についても論理的に行うことで、スムーズに進めることが可能となります。

SEに求められるもの2:コミュニケーション能力

ここで言うコミュニケーション能力とは「伝達力」「傾聴力」「洞察力」を指します。

SEは顧客やプログラマーなどと調整しながら案件を進めていく立ち位置ですので、

  • 人に伝える(伝達力)
  • 人の話を聴く/聴き出す(傾聴力)
  • 人が求めることを察する(洞察力)

のような能力が必要となってきます。

全て完璧である必要はありません。「一般的」という言葉に押し込めるのはあまり好きではないですが、一定の会話ができれば仕事をしていくことは可能です。

ただ、能力が高ければ高い程に活躍できるSEになれることは確実かと思います。

IT知識がない方でもこの能力が高いだけでやっていけてしまう方はいそうですが、そういう方は営業職のほうが良いような気がしてしまいます。

SEに求められるもの3:プロジェクト管理能力

プロジェクト管理能力とは、「目的(プロジェクト)を達成する為の管理ができる」能力です。

この能力は、いわば「ビジネスマンの総合力」や「ビジネスマンのバランス感覚」と言い換えてもいいかもしれません。

「問題解決力」「問題提起力」「チーム牽引力」「リスク管理」などのビジネスや会社において重要である様々な能力がこの一言に詰まってます。

こればかりは経験値がモノを言う部分があり、学生時代から何か組織的に取り組んできた方などでないと新人の時から高いということはないです。

ただし、日々の業務をただ熟しているだけで身につくものでもないので、「プロジェクト管理能力が高い」と思う、または周りに言われている人を参考にしながら仕事の経験を積んで下さい。

その人をメンターと言えるぐらいに関わりを持てれば最高です。

SEに求められるもの4:文章・資料作成能力

自分も含めてですが、文章書いたり資料作成したりするのが苦手だと思っている方は結構多いです。

大手企業の方から頂いた資料などでも結構アラがあったり読みにくかったりすることもあり、必ずしも「給料を多くもらってる」=「全ての能力が高い」という訳ではなかったりするのですが、文章や資料作成が正確で早いとどこに行っても重宝されます。

SEはプログラムを上手く書けるよりも資料を上手くかける方が評価が高いようにも思います。

力が足りないと感じるなら勉強すべき

SEに必要だと思う能力を4つ程挙げましたが、全て揃ってないと仕事ができないというわけではないです。

ただ、各々の能力が高いSEこそが評価されているSEだというのも事実です。

周りに少しでも「認められたい!」「負けたくない!」と思うのであれば、今すぐにでも勉強すべきです。出来る人の真似をすべきです。頑張るべきです。

ただ私もわかってます!

上で挙げた4つの能力。急に挙げるのは正直難しいですよね。(自分も急には無理!!)

そうなると、4つの能力は少しずつ経験を積む中で覚えていきながら得意分野を見つけるべきです。

そこでオススメしたいのは「AI」分野!

理由は下へ。

「AI」分野を勧める理由

何もAIをイチから作り出せるエンジニアになれ!とは言ってません。

私が提唱する「得意分野」と言えるレベルは、あくまで「AIを説明できて活用できる!」レベルです。

数学が苦手なあなたが入社できたということは、そこまで専門的に数学などを必要としていない会社ではないですか?

もしくは参画している、これから参画するプロジェクトや会社においては、あなたの数学力で太刀打ちできているのではないですか?

つまり何が言いたいかというと

「あなたの周りに数学を必要とするAI分野に知見の広い人はいないですよね?」

ということです。

文系出身の未経験エンジニアが入れる会社などでは、特にそういった専門的な分野で強い人はほとんどいません。なので少し知っているだけで周りに勝てます。

さぁ、今からAIの勉強しよう!・・・といっても難しいかと思います。

AI分野の理解には数学の「微分積分」「線形代数」「確率統計」が最低限必要です。

先程までは数学は不要!だとか言ってましたが、結局のところ・・・

これからのSEは数学を勉強しておくべき!!

意見変えてゴメンね

まずSEの場合は、自身で開発する場合を除いて、どれだけ顧客と良いシステムであるかの話をして、社内ではどれだけ簡単かつ問題ない仕様とするのかを説明する必要があります。

そんな中、AI関係の案件があった、または提案できるタイミングになった時、あなたは一躍ヒーローになれるかもしれません。

そうです。SEは作れなくても知っていれば仕事はできます!

一定層のエンジニアに怒られそうな発言ですな

その為に数学とAIの勉強をしよう!!!そうしよう!!

「今後SIerで注目されるスキル」の「AI(人工知能)」でも説明してますが、Udemyが本当に最強です。勉強する方は是非オススメ!!

多彩な講座から自分に合った講座を探そう!

まとめ

「数学を勉強しよう!」とは言ったものの、必須であるとは考えてません。

現に文系出身のプログラム未経験であったあいまいねこが数年も働けている。昇格も順調(同期では最速)です。(プチ自慢)

ただし、SEは関わる案件によって必要な知識が変わってくる業種です。

自身の立場や状況に応じて、数学が必要になってしまう場面が出てくることも十分に考えられるでしょう。

また、AIでなくても新しい分野の案件に関わることもあるでしょう。

あくまでビジネスとして動いている以上は成果を出す必要があります。

その為にも、頑張っていきましょう!

歳を重ねてから勉強するのは大変なのを体感している30歳超えのSEが言ってるんです。

若手のうちにどんどん勉強していこう!!ファイト!!