理系目線で語る!プログラミングの勉強に数学はどれくらいまで必要?

プログラミングに興味がある人

プログラミングに興味あるんだけど、数学ってやっぱり必要なのかな?
でも、高校生以降はまともに数学なんかやったことないし無理なのかな…

文系人間だけどエンジニアの就職・転職に興味があったり、数学とは無縁だけど副業でプログラミングをやってみたい主婦でこんな感じで悩んでいる方も多いのではないでしょうか?

本記事ではこのような悩みについて理系目線から解説していきます。

本記事を読むとわかること
  • 数学はどれくらいできないとプログラミングはやっていけないのか?
  • 「数学不要」と主張する人やサイトが多い理由
  • 数学ができないことによるデメリット
  • 数学を改めて学びなおしたい場合にすべきこと
  • プログラミングに必要な数学以外の力

僕は京都大学の理系学部に入学し、今は大学院でプログラミングを使ってシミュレーションなどを行っているガチガチの理系人間です。

本記事ではプログラミングに数学が必要かどうかについて、あえて理系目線で考えていこうと思います。

もくじ

【結論】プログラミングには数学が不要な分野と必須な分野がある

最初に結論から申し上げますと、プログラミングは分野によって数学が必要か必要かでないかがキッパリ分かれます。

プログラミングで数学が不要な分野、必要な分野

【数学が不要な分野】

  • web系プログラミング
  • スマホアプリ開発
  • その他、面倒なPC作業の自動化など

【数学が必要な分野】

  • AIや機械学習
  • データサイエンス
  • ゲーム開発

web系のプログラミングやスマホアプリ開発では、小学校で習うような算数の四則演算ができれば十分です。

一方で、AIや機械学習などは数学ができないと話にならないレベルです。

なので、あなたが興味がある分野によって数学の必要性の度合いは変わります

プログラミングには必ずしも数学は必要ない

つまり、プログラミングには必ずしも数学は必要がないということです。数学が苦手な方にはかなりの朗報だと思います(笑)

数学を避けてプログラミングスキルを習得したいという方はweb系のプログラミングやスマホアプリ開発などに手を出すと良いでしょう。

事実、この分野は文系出身のプログラマーの割合も多いです。

とはいえ、数学はできた方が絶対に有利

当然ですが、プログラミングは数学と相性が良いため、数学ができるに越したことはありません。

数学ができると、様々なプログラムが効率よく動く仕組みである「アルゴリズム」を理解できたり、手を出せる分野が増えるからです。

これらについては次章で詳しく解説していきます。

プログラミングをする際に数学ができないことによるデメリット

プログラミングをする際に数学ができないとどのようなデメリットが存在するのでしょうか?

もし、あなたが数学が苦手だけれども、プログラミングに取り組んでみようと考えているなら知っておいた方が良いでしょう。

手を出せるプログラミングの分野が限られる

数学ができる人は、数学が必要となるような分野も取り組む選択肢になりえます。

しかし、数学ができないと、手を出せる分野がweb系やスマホアプリ開発などに限られてしまい、選択肢がせまくなります。

数学が出来る人

web系プログラミングやってみたけど、自分は機械学習とかの方がやっぱり面白そうだと思うから、機械学習を専門に勉強していこうかな

例えば、数学が出来る人なら、このようなことも可能ですが、数学が出来ない人はたとえ機械学習などに興味があっても、機械学習を簡単に学習することができない可能性が高いのです。

プログラムが動く原理やアルゴリズムなどが理解できない

プログラミングをするようになると、既に他の人が作ったプログラム(ライブラリ)などを利用して、新たに自分でプログラムを作ることが多々あります。

このとき、そのプログラムがどのような原理で動いているのか、そのアルゴリズムを理解できるに越したことはありません。

そして、アルゴリズムを理解しようと思うと、よく数学的な知識が要求されるため、数学が苦手な方はアルゴリズムの理解が難しい可能性があります。

AIや機械学習など流行りの技術の詳細を理解しにくい

近年、AIや機械学習、データサイエンスが盛り上がりを見せており、これらに惹かれてプログラミングに興味を持った方も多いのではないでしょうか?

何度も説明していますが、これらの分野はゴリッゴリに数学を必要とするため、数学が出来ない人は安易に手を出してもそう簡単には理解できない可能性が高いです。

数学を使う分野のプログラマの方が年収が高い傾向

プログラミングを使って就職・転職を考えている方は年収についても考えておく必要があるでしょう。

分野 平均年収
web系エンジニア 550~600万程度
機械学習・AIエンジニア 600~630万程度
データサインティスト 600~700万程度

表の数値はあくまでも参考程度に考えてください。サイトや文献・資料ごとに各エンジニアの平均年収の記載が異なるので、だいたいの数値を記載しています。

一般的に、数学を使う分野、つまりAIや機械学習エンジニアやデータサイエンティストなどの分野で働く人の方が、web系の数学を使わない分野のプログラマより年収が高い傾向にあります。

なので、もし数学ができる人であればweb系よりも数学を必要とする分野のエンジニアになる方が、たくさん稼げる可能性があります。

「プログラミングには数学不要」派の声が大きい理由

よくある意見

数学なんかできなくても、プログラミングは余裕で出来るし何も問題はありませんよ!!

ネットではこのように「数学不要」と断言しきっている意見をよく見ませんか?

確かに数学はできなくてもプログラミングはできるのですが、数学はできるに越したことがない以上、数学が不要と自信満々に言い切るのは間違っているように感じています

本章ではこれについて少し踏み込んだお話をしていきます。ただし、僕個人としての意見を多く含んでいることは承知の上で読んでください。

サイトの運営者に数学ができるプログラマがあまりいない説

まず、ネット記事を書いている人間に数学ができるプログラマーがあまりいないのが1つの原因ではないかと考えています。

記事を書いた人間のプロフィールが書かれていることがありますが、たいていwebエンジニアなどの数学が必ずしも必要でない分野の人がかなり多いと感じています。

したがって、数学は不必要だという意見に偏ってしまっているのではないか?と考えています。

数学が必要だと思わせることは都合が悪い説

そもそも、サイト運営者がサイトを運営する目的は、できるだけ多くの人間にプログラミングの勉強を始めさせることです。

基本的に、数学は苦手な人の方が多いので、「数学はできた方がいい」とか「数学が必要」と書くと、みんな怖がってプログラミングを始めなくなるのです。

これも、ネット記事などで「数学は別に必要がない」と無駄に強調されている1つの原因なのではないかと考えます。

【分野別】プログラミングにはどんな数学の知識がどの程度必要か?

AI・機械学習・データサイエンスに必要な数学

  • 線形代数
  • 微分積分
  • 確率・統計

AI・機械学習とデータサイエンスでは主に以上の3つの数学の知識が必要です。これら3つは一般的な理系の大学では1~2年生の間に習うことが多いです。

ゲームプログラミングに必要な数学

  • 線形代数
  • 微分積分
  • 四元数(複素数を拡張した概念)

ゲームプログラミングでは主に以上の3つの数学が必要となる上、加えて物理学の知識も必要とされます。

上記は3Dゲームを作る場合を想定していますが、2Dゲームの場合だともう少し簡単になり高校レベルの理系数学の知識のみでゲームを作れることも多いです。

プログラミングのための数学の勉強法

「現段階では数学はできないけど、ゲームとかAIとか作ってみたいから数学の勉強したい」

このように考えている方に向けて、数学の勉強法について具体的に説明していきます。

数学の勉強方法

数学を学ぶ場合、どんな教材を使うにしても内容を定着させるための勉強方法は決まっています。

数学の勉強方法
  1. 定義・定理を覚える
  2. 例題などを通して定理の使い方などを学ぶ
  3. 何も見ないで練習問題などを解き、知識を定着させる

中学や高校などの数学の勉強方法と基本的には同じ感じで勉強していけばOKです。最も重要なことは自分の手で実際に問題を解くことです。

経験がある方もいるかもしれませんが、定理や問題の解き方を見て理解するだけでは、知識は定着しません。定着しなければ、プログラミングでも役立てることは難しいです。

プログラミングのためのオススメの数学教材

数学の勉強方法がわかったところで、数学の勉強に適した教材をいくつかピックアップして紹介していきます。

参考書で数学を勉強する

学べる範囲:高校数学~大学数学(線形代数・確率統計・微分積分)の初歩

高校数学の学びなおしであれば、「Pythonで学びなおす高校数学」をオススメします。

プログラムを書きながら数学を学べるので、難しいと感じる数学でもしっかりイメージを掴みながら理解することができます。

さらに、データサイエンスや機械学習・AIに興味がある場合なら、どうせPythonを使うのでここで慣れておいて損はないはずです。

次におすすめするのが「マセマ」シリーズの数学の参考書です。高校生や大学生から解説が丁寧で分かりやすいと評判のシリーズで、僕自身使っていたことがあります。

同シリーズでは高校の範囲である数学Ⅰ・A・Ⅱ・B・Ⅲを扱った本はもちろん、線形代数や微分積分など大学範囲の数学を扱ったものもあります。

どうせ大学数学も勉強するならスムーズにステップアップでき、かつ解説も丁寧なマセマシリーズをオススメします。

動画で数学を勉強する


>>Udemyで勉強してみる

例えば機械学習やAI・データサイエンスを勉強する場合、Udemyにはプログラミングと同時に数学を学べるような講座があります。

動画で解説してもらえるためわかりやすく、かつ、不明点は動画の投稿者に質問することもできるため、数学が苦手な人でも学びやすい内容となっています。

次に紹介するのはYouTubeで無料で学習する方法です。

「ヨビノリ」という高校数学や大学数学のトピックについてかなり丁寧に解説されているチャンネルです。

ただし、残念ながら高校数学の内容をすべて網羅されている訳ではなく、自分で勉強していてわからないところがあれば視聴する補助教材として使うのが良いかもしれません。

数学力以外でプログラミングに必要な適性

プログラミングを始める際、もちろん手を付ける分野によっては数学力は気にしないといけない項目の1つです。

しかし、他にもプログラミングをやっていく上で大切な適性があり、本章ではこれについて紹介していきます。

プログラミングをやろうか迷っている方は自分には適性があるのかチェックしてみてください。

【プログラミングへの適性】向き・不向きやその見極め方を徹底解説

2021年12月23日

【大前提】プログラミングをしている時間が苦痛でない

結局のところ、最重要なのはプログラミングをしている時間が苦痛でないかどうかです。なので、一度手を動かしてプログラミングをやってみてください。

なぜなら、プログラミングを実際にやってみることが、適性があるかどうか判断する最も手っ取り早く、間違いのない方法だからです。

確かに、例えば「集中力が続く」ことが適性だと言われても、好きなことなら集中は続くし嫌いなことなら続かないし、プログラミングが好きかどうかわからないから集中続くかわからないよね。

だから、プログラミングに適性があるかどうかは、実際にやってみて判断するのが一番よさそうだね。

そこで、初心者が実際にプログラミングをやってみる方法としておすすめなものを以下で紹介ます。

プログラミングスクールの無料体験を利用する

>>テックアカデミーをみてみる

実は、プログラミングをするまでのPCの設定などでつまずいてしまい、実際コードを書くに至らず挫折してしまう初心者はかなり多いです。

そこで、プログラミングスクールの無料体験をおすすめします。

スクールなら、挫折しやすいポイントを徹底的にサポートしてもらえるため、コードを書く前までに挫折するというような失敗は高確率で防げるだからです。

別にプログラミングスクールの講座を取る必要はなく、無料なので、体験してしまえるだけ体験してしまえばよいのです笑

↓↓プログラミングの適正を見極めるのにもってこい↓↓

独学で少しコードを書いてみる

progate」などのオンラインのプログラミング学習サービスを使って独学でプログラミングをやってみる方法もあります。

progateの良い点としては、環境構築不要で、ブラウザだけでコードを書き始められるということです。

無料プランと有料プランがありますが、とりあえずは無料プランで試してみればいいと思います。

プログラミングへの適性:自分の頭で考えることや試行錯誤が好き

プログラマー
  • この機能を実装するには何と何が必要で、どういう風にコードを書けばいいんだろう?
  • このエラーやバグの原因はそもそも何で、どうやったら解決できるんだろう

という感じで、プログラミングでは自分の頭を使って考えることがたくさんあります。

また、同じような場面で、「これがうまくいかなかったら、あれをやってみよう、それでもだめなら別の手段を試してみよう」と試行錯誤することも多いです。

このように、プログラミングでは自分の頭で考えたり、試行錯誤することが嫌いな人には苦痛になる可能性が高いです。

プログラミングへの適性:粘り強く、根気強い

プログラミングではエラーやバグなどが頻繁に発生します。

簡単に修正できるエラーやバグもあれば、原因不明で下手すれば1日以上考えたり調べても解決できないエラーやバグも出てきます。

エラーやバグが簡単に解決できないからと言って、諦めてしまえば前に進めず、また知識やスキルも身につきにくいです。

このように、エラーやバグに対する粘り強さや根気強さがプログラミングには重要です。

プログラミングへの適性:好奇心旺盛で探求心がある

  • 「ここがどうなっているのか知りたい」
  • 「どういう仕組みで動いているの?」
  • 「根本的にこのエラーはなぜ起こるの?」

のように貪欲な知的好奇心や探究心はプログラマーとしての成長に直結します。

自分が疑問に抱いた「なんで?」や「どうして?」を追求することが結局1番の勉強になりますし、頭にも定着しやすいからです。

プログラミングへの適性:集中力がある

集中力を保ちながらコードを書く能力は必須です。

プログラミングをしていると、やはりパソコンに向かい合ってコードを書いている時間が長くなります。

集中力があまり保てない人は作業効率が悪く、コードを書くのにかなり時間がかかってしまうため挫折したり、仕事にならない可能性が割とあります。

プログラミングへの適性:コミュニケーション能力がある

プログラミングは、特に仕事などになると、1人でなく複数人のチームで開発したりすることも少なくないです。

その場合、やはりプログラマー以外の普通の職業などと同じく、コミュニケーション能力が必要とされます。


この記事ではプログラミングの適性については、重要なものをかいつまんで紹介しました。

もし、「プログラミングの適性について他にどんなものがあるか詳しく知りたい」という方がいらっしゃいましたら、下に紹介する関連記事も一緒に読んでみてください。

【プログラミングへの適性】向き・不向きやその見極め方を徹底解説

2021年12月23日

まとめ:プログラミングの勉強に数学はどれくらい必要?

長くなってしまいましたので、最後におさらいをしておきましょう。

まとめ

【分野によって数学の必要性が変わる】

web系プログラミング(バックエンド・フロントエンド・webデザインなど)やスマホアプリ開発は小学校で習う程度の算数の知識で十分。

一方、機械学習・AIやデータサイエンス・ゲームプログラミングがやりたい場合は理系の大学生が習うレベルの難しい数学の知識が必要。

【数学ができないことによるデメリット】

  • 数学が必要な分野のプログラミングにはなかなか手を出せない
  • プログラムが動く原理やアルゴリズムを理解しにくい
  • AIや機械学習などの流行りの技術について理解しにくい
  • 数学を使えるプログラマーの方が年収が高い傾向にある

「機械学習・AI・データサイエンス・ゲームプログラミングなどの数学が必要な分野に興味があるけど、数学ができない」という人に勉強は辞めておけという気はありません。

もともと数学ができなくても、自分で勉強して数学が必要な分野で活躍されているプログラマーもいます。

ですが、「やりたいという熱意」と「数学が理解できるかどうか」という2つを天秤にかけて慎重に考えるべきです。

考えても分からない場合は、1つ教材を買ってみて、自分に勉強できそうか試してみるのもいいと思います。

    プログラミングの向き不向きは「やってみないと」分からない

    数学以外にもプログラミングには必要な能力・適性がありそうで、興味はあるけれどプログラミングをやろうか悩んでいる方も多いのではないでしょうか?

    自分の頭で考えて悩むことは意味のあることですが、実際に行動して経験してみないと分からないことも多いです。

    なので、悩んだりネットで情報を集めるだけでなく、失敗や挫折をしてもいいので1度プログラミングを勉強するという「行動」をしてみることをオススメします

    記事の中盤当たりでも紹介しましたが、スクールの無料体験を利用したり「progate」という学習サイトを使ってみると安く経験できます。

    >>テックアカデミーをみてみる

    基本的に、スクールの無料体験は現役エンジニアのメンターがついてくれて、初心者に手とり足取り教えてくれます。

    なので、とりあえずプログラミングを始めたいけど、何をしていいか、何から始めていいかわからないという人に超オススメです。なんせ無料なのでね(笑)

    ↓↓プログラミングの適正を見極めるのにもってこい↓↓

    スポンサードリンク

    コメントを残す

    メールアドレスが公開されることはありません。