- プログラミングやってみたいけど、数学は学生時代から苦手…。
- 数学嫌いな文系出身者でもプログラマーを目指せる?
- 最低限知っておくべき数学の範囲って?
プログラマーというと「数学が得意な理系人間」というイメージを持っている人もきっと多いでしょう。
「キャリアアップのためにプログラミングが気になっているけど、数学が苦手なのでやってみるかどうか迷っている」
という方は多いのではないでしょうか。
しかし、結論からいうとプログラミングに数学はほぼ必要ありません。
あえていうなら、中学生レベルの数学が理解できる人であれば、
仕事で必要なレベルのプログラミングを身につけることは十分可能です。
実際、私が働いている会社のプログラマの3分の1は「数学が苦手…」という文系学部出身者です。
もちろん、将来的に高度なプログラミングをやっていく人は数学知識があるにこしたことはないですが、
「未経験からプログラマーに転職を目指すレベル」なら、数学はほぼ必要ないといえますよ。
以下では、これからプログラミングの勉強を始める初心者の方向けに、
プログラミング学習を進めていくために必要な数学知識の範囲について解説します。
プログラミングは、今後まちがいなくビジネスマンに必須の知識になっていきます。
ぜひ参考にしてみてくださいね。
プログラミングに最低限必要な数学=中学生レベル
プログラミングの学習をスムーズに行う上で必要な数学知識は、ごく初歩的な範囲で十分です。
どのぐらい初歩的か?というと、四則演算(足し算・引き算・掛け算・割り算)ができるのを大前提として、
↓以下のレベルの数学がわかっていれば十分です。
- 関数
- 変数
- 三角関数
教科書の範囲でいえば「中学生の教科書レベル」の数学が理解で聞いていれば十分でしょう。
こうした範囲であれば「社会人の学び直し」というテーマの本がたくさん売っていますので、1冊読めば十分だと思いますよ。
↓※個人的にわかりやすかった学び直し本はこちら。
中学レベルの数学についても、
「ちょっと知識があいまいになっている…」という人は多いと思いますが、心配はありません。
関数・変数・三角関数について「意味さえ理解できていればOK」です。
テストを受けるためにプログラミングを学ぶわけであはりませんから、
高度な計算問題で正解が出せないといけないわけではないからです。
数学の勉強にあまり時間をかけないことが大切
プログラマーを目指すのであれば、
数学の勉強にあまり多くの時間をかけないようにしましょう。
具体的な実務で役立つプログラミング知識の勉強に時間をあてた方がはるかに合理的です。
「数学の勉強ばかりしていて、いつまでたってもプログラミングの具体的な学習が始められない…」
では何をやっているかわかりませんから、注意してくださいね。
数学が苦手な文系でもプログラマになれる!
高校~大学とずっと文系できたという人は、
「数学の知識がごっそりと抜け落ちてしまっている」
という人も多いかもしれません。
しかし、実際には「文系のプログラマ」として活躍している人(働いている人)はたくさんいます。
プログラマだからといって、数学の知識を熟知している必要ありません。
「仕事で数学の知識が必要になったときに勉強する」というスタンスで問題ないのです。
なお、「IT人材白書2-17」という統計によると、
「IT企業で採用された社員の36.1%は文系出身」というデータがあります。
プログラマというと「数学が得意な理系人間」というイメージがありますが、実態は必ずしもそうではないのです。
より高度なプログラマーになるために必要な数学
上では「プログラミング学習を始めるために必要な数学は、それほど高度なものではない(中学レベル)」というお話をしました。
しかし、これはあくまでも「まったくの初心者〜かけ出しのプログラマーとして仕事を始めるレベルの人」の話です。
より高度なプログラミングを応用した仕事につきたいのであれば、
当然ながらある程度の数学知識は必要になることを知っておきましょう。
(というか、高度なプログラマーとして働く現場では、
みんな数学が得意な人ばかりなのです。
こうした人たちと円滑にコミュニケーションしながら仕事をやっていくためには、数学知識が必要になるというわけです)
例えばAIの開発など、複雑な数値解析を行う必要があるプログラミングを学ぶためには、
↓以下のような範囲の数学を身につけておくのが理想的です。
高度なプログラマーに必要な数学
- 虚数
- 行列
- 線形代数
- 微分積分
- 確率・統計
↑これらも高校レベルの数学ですが、
もともと数学が苦手な人が勉強しなおすには、かなりの時間がかかるかもしれません。
なので「まずは数学を身につけてからプログラミング学習を始める」という考え方ではなく、
とりあえず初歩的なプログラミング学習を始めてしまい、
必要に応じて数学の知識補充を同時進行で進めていく。
という学習の進め方がおすすめです。
プログラマーとして仕事をやっていく上で、数学知識が必要になるたびに、そのつど補充していくという感じですね。
とりあえずプログラミングの勉強をスタートするなら、こちらのWEBスクールがおすすめです。
月額のかたちで受講料を負担するシステムなので、
高額なスクールにお金だけ払ってぜんぜん学べなかった…なんてリスクを避けることができますよ。
↓初心者におすすめのプログラミングスクール
現役エンジニアに質問し放題!オンラインプログラミングスクール【Freeks】
そもそもなぜ「プログラミングに数学が必要」といわれるのか?
プログラミングの目的は、もともと人間がしていた作業を自動化することです。
しかし、コンピュータは人間の言葉を理解できません。
そのため、人間の言葉をプログラミング言語に「翻訳」してコンピュータに伝える仕事が必要になります。
これがプログラマーの仕事です。
このとき、コンピュータというのは、数学の原理に従って動いていますから、
「人間の言葉→コンピュータの言葉」
への翻訳作業を行うためには、
数学的な処理が要求される機会が多いのです。
コンピュータは「計算機」=数学のルールで動いている
コンピュータへの命令は、数式によって行われます。
「複雑な計算」や「単純かつ膨大な量の計算」を人間がするとミスが出やすいですよね。
その点、コンピュータなら一瞬で解がはじき出されます。
そのような仕組みをプログラミングするには、最低限の数学の知識が必要です。
例えば、ロボットアームの軌道を計算するときには円の方程式を使います。
ゲームでキャラクターを動かすにも、座標を使うといった具合ですね。
プログラミング学習に必要な数学はそれほど高度なものではない
「プログラミングやるなら、最低限の数学知識が必要」といわれるのには、このような理由があります。
ただし、すでに解説したように、
初心者がプログラミング学習を始める上で必要な数学知識はそれほど高度なものではありません。
「学生時代、数学だけは大嫌いだった…」
という人でもプログラマーを目指すことはできますので、安心してくださいね。
まとめ
今回は、プログラミングの勉強をしていく上で必要な数学知識について解説いたしました。
初心者がプログラミングの勉強をスタートするなら、
四則演算と中学レベルの数学知識があれば大丈夫です。
そのうえで、ゲーム開発・AI開発などの高度なプログラマーを目指していくなら、
「仕事を覚えながら、必要に応じて、必要な量の数学知識を補充していく」というやり方が良いでしょう。
まちがっても、
「まずは高校レベルの数学を全部やり直してからプログラミングの勉強を始めよう」
なんてことはやめてください。
これではプログラミングの楽しさに気づく前に挫折してしまいます。
文系で数学が大の苦手だったという人でも、
未経験からプログラマーになることは十分に可能ですよ。
プログラマーへの転職を検討しているという方は、ぜひチャレンジしてみてくださいね。