プログラミングを勉強する上で、数学も勉強すべきか悩んでいませんか?
実は数学の知識は、プログラミングの勉強においては、最低限の知識だけあれば良いのです。
この記事では、プログラミングの勉強における数学の必要性とどのように役立つのかについて解説します。
※この記事は現役エンジニアによって監修済みです。
この記事の目次
プログラミングに数学の知識は不要なのか
まずは、プログラミングの勉強における数学の必要性について以下の流れで説明します。
- プログラミングと数学の関係について
- プログラミングは数学が苦手でも問題ない
- 数学はアルゴリズムの理解に役立つ
- ただし特定の分野プログラミングでは数学の知識が必要
プログラミングと数学の関係について
プログラミングと数学は、論理的思考力が必要という点でよく似ています。
論理的思考力は、事実に基づいて物事を筋道立てて考える能力を指し、問題解決、コミュニケーションの円滑化に役立ちます。
プログラミングは「このような結果を得たい」という課題に対して、結果を得るための筋道を立てるときに論理的思考力が必要です。
同様に、数学も公式、定理、途中計算の結果に基づいて答えを算出、証明するために論理的思考力が必要になります。
そのため、数学が得意な人ほどプログラミングも得意な傾向があります。
プログラミングは数学が苦手でも問題ない
上述の通り、論理的思考力が必要という意味で、プログラミングと数学は関連性があります。
しかし、実際にプログラミングをする上で、難しい数学の知識は必要とされないことがほとんど。
基本的には四則演算などの基礎がわかれば問題ないため、数学が苦手であってもプログラミングを勉強するのは可能です。
文系出身でITエンジニアやプログラマーなど、プログラミングを使う仕事に就いている人もいます。
この記事もオススメ
数学はアルゴリズムの理解に役立つ
では、数学の知識がプログラミングにどのように役立つのかというと、アルゴリズムを理解するのに役立ちます。
アルゴリズムとは、ある問題を解決するための手順、計算方法を指します。
そのため、プログラムを作成することは、アルゴリズムを構築すると言い換えられます。
アルゴリズムはいくつか種類がありますが、その中でも特に利用されるのが「ソート」と呼ばれるアルゴリズム。
ソートとは、複数あるデータをある規則に基づいて並べ替えるアルゴリズムを指します。
このソートにもいくつか種類があり、それぞれ計算にどれくらい時間がかかるのか、またどのくらいメモリを消費するのかが変わってきます。
それらを調べる時には、指数関数、対数といった数学の知識が必要です。
このように、数学を理解すればアルゴリズムの性質を理解するのに役立ちます。
この記事もオススメ
ただし特定の分野プログラミングでは数学の知識が必要
基本的にはプログラミング学習には、数学の知識はなくても問題ありません。
ただし、ゲーム開発、AI(人工知能)を使った画像認識などの分野においては、プログラミングする上で高度な数学の知識が必要です。
ゲーム開発においては、プレイヤーがより現実的な動きをとるように物理計算を駆使する必要があります。
これらの特定の分野に関わるプログラミングをするときは、数学、物理の基本知識を押さえることが大事です。
数学の知識がどれくらい必要?よくわかる具体例を解説
では、数学の知識はどれくらい必要なのでしょうか。
ここでは、3つの具体的な例を挙げて数学の必要性を解説します。
- 条件式を考える
- 座標を表す
- 時間を計算する
条件式を考える
条件式を考える時に必要な数学の知識について解説します。
条件式とは、プログラム中に現れる式の1つでおもに条件分岐、反復処理の可否で用いる式で、ある2つ以上の値の関係について、記号を用いて表現します。
例えば、あるゲームにおいて「攻撃力が10以上か」を判定する場合、条件式で表せば「攻撃力 >= 10」と表現できます。
「>」(不等号)は、数学において数の大小を表現するときに用いられ、「=」(等号)は、数が等しいことを表現する時に用いられます。
上記の条件式では、等しい数字が含まれるので「以上」を表しています。
不等号は他にも「A <= B」「A > B」「A < B」があり、それぞれ「AはB以下」「AはBより大きい」「AはBより小さい」を表現しています。
このように、条件式を考える上で不等号は大事な役割を果たしているのです。
座標を表す
中学校の数学で比例、反比例を勉強した時に、グラフ上の点の位置を座標で表したことがあるのではないでしょうか。
この座標の知識も、プログラミングで必要になることがあります。
例えば、画面のサイズを取得したときは、そのサイズが「x=100,y=200」といった座標で表されるのがほとんどです。
プログラミングにおける座標は、数学の場合とは異なり、画面の左上端を原点とします。
数学の場合と表し方が異なることに最初は戸惑いがちですが、慣れてしまえば問題ありません。
また、座標を取得するだけなら、グラフの知識、方程式の知識は必要ありませんので、そこまで数学を意識しなくても良いです。
時間を計算する
時間を計算する場合、秒を分に換算するといったように、時間換算の知識が必要になることがあります。
例として、「時間:分:秒」の形式で表示されるストップウォッチを作成するとします。
通常、プログラム内においては、時間経過をミリ秒で取得することがよくあり、「時間:分:秒」の形式で表示させるために、換算処理をしなければなりません。
数学の知識が必要な分野について
ここでは、数学の知識が必要となる4つの分野を説明します。
- ゲームプログラミング
- AI(人工知能)開発
- 統計処理
- ロボット開発
ゲームプログラミング
先述したようにゲームプログラミング、とりわけ3Dのゲームにおいて数学の知識が必要になります。
3Dゲームにおいては、キャラクターの動作をはじめとして、さまざまな物体の動作がよりリアルに表現されなければなりません。
また、物体の動きを扱うには、三角関数といった数学の知識の他に物理の知識が必要になります。
この記事もオススメ
AI(人工知能)開発
近年、発展が顕著なAIの開発では、微分積分、線形代数、数理統計学といった大学数学の知識が必要です。
AIの開発では、膨大なデータを取り扱い、そこから予測するために微分積分などの理論を応用しています。
そのため、微分積分、線形代数、数理統計学の知識がないと、AIの開発に携わるのは難しいでしょう。
この記事もオススメ
統計処理
統計処理ではその名の通り、統計学の知識が必要です。
統計処理は、膨大なデータを分析して何かしらの傾向、規則を見出すこと。その結果をマーケティングなどに役立てます。
この統計処理において、標準偏差などの数値を求めたり、確率分布を表したりといった統計の知識が必要なのです。
ロボット開発
ロボットのハードウェア・ソフトウェア開発においても、ロボットの制御・センシング・画像処理などの分野において数学が活用されます。
例えばロボットの制御・動作解析・センサーデータの処理では、変換行列・ベクトル・行列の積などの線形代数の要素が重要になるでしょう。
また運動学・動力学のモデリングでは微積分、センサーデータの推定などでは確率と統計の知識などが求められるでしょう。
数学以外のITエンジニアに求められる能力とは
プログラミングにおいては、中学校程度の数学知識が必要であることがわかりました。
ここでは、数学の知識以外にエンジニアに求められる能力を説明します。
- 論理的思考力
- コミュニケーション能力
- 英語力
- 粘り強さ・根気
- ITの知識や興味
論理的思考力
必要な能力の1つ目は、論理的思考力(ロジカルシンキング)。
先述した通り、ある問題を解決する上で直感に頼るのではなく、事実に基づいた筋道を立てる能力のことです。
論理的思考力があれば、プログラムのバグ除去における作業効率が向上します。また、論理的思考力に基づいてコミュニケーションすれば、説得力も向上するでしょう。
そのため、論理的思考力はエンジニアになるために最低限必要な能力と言えます。
この記事もオススメ
コミュニケーション能力
必要な能力の2つ目は、コミュニケーション能力。
エンジニアは、顧客からの要望のヒアリング、メンバー間の打ち合わせなど、周囲とのコミュニケーションが必要になり場面が多々あります。
周囲とのコミュニケーションにおいては、先述したように論理的思考力に基づいて、他人に理解できる話し方を心がけることが必要。
個人の感情で押し付けるのではなく、事実を提示して相手を納得させるコミュニケーションが重要なのです。
この記事もオススメ
英語力
必要な能力の3つ目は、英語力。プログラミングは基本的に英語で表記されます。
そのため、プログラム中には「if」「for」といった構文や変数名も英単語で記述されることが多いです。
そのため、その英単語の意味を理解するという意味で英語力が必要になります。
この記事もオススメ
粘り強さ・根気
必要な能力の4つ目は、粘り強さ・根気。
プログラミングでは、バグを除去することに膨大な時間を費やさなければならない場面に出くわします。
これは非常に地味かつ地道な作業で、途中で飽きたり、投げたしたりしてはプログラムは完成しません。
そのため、ITエンジニアには粘り強さ・根気を持って取り組む姿勢が重要なのです。
ITの知識や興味
必要な能力の5つ目は、ITの知識や興味。
これは当然のことですが、IT業界に関わる身としてITの知識を持つことや興味を持つことは、前提条件といっても過言ではありません。
また、ITのトレンドは目まぐるしく変化し、そのたびに自身のスキルとするために継続的に勉強に取り組む姿勢も求められます。
逆に考えると、ITに対する知識や興味があれば、プログラミングに取り組んだり、それに必要な数学の知識・論理的思考力・コミュニケーション・英語力を学んだりといったベースとなるでしょう。
新しいITトレンドを楽しめることは、ITエンジニアにとって大きな武器となります。
この記事もオススメ
数学ができない文系でもITエンジニアに就職・転職はできる
プログラミングは理系のイメージが強く、文系には難しい分野に思われがちです。しかし、プログラミングには必ずしも豊富な数学な知識が必要ではありません。
つまり、文系でもITエンジニアとして就職・転職することは可能だということです。
先述したように、プログラミングで必要な数学の知識は、四則演算といった初歩的な知識で十分。
したがって、特定の分野を除けば、高度な数学知識を要求されることはなく、文系でも安心してプログラミングを習得できるのです。
この記事もオススメ
はじめての転職、何から始めればいいか分からないなら
「そろそろ転職したいけれど、失敗はしたくない……」そんな方へ、テックキャンプでは読むだけでIT転職が有利になる限定資料を無料プレゼント中!
例えばこのような疑問はありませんか。
・未経験OKの求人へ応募するのは危ない?
・IT業界転職における“35歳限界説”は本当?
・手に職をつけて収入を安定させられる職種は?
資料では、転職でよくある疑問について丁寧に解説します。IT業界だけでなく、転職を考えている全ての方におすすめです。
「自分がIT業界に向いているかどうか」など、IT転職に興味がある方は無料カウンセリングにもお気軽にお申し込みください。