- プログラミングって数学が必要なんでしょ?
- 数学ができない人はプログラミングをやらない方が良いの?
- 数学が使えたらメリットはあるの?
プログラミングを始めようか気にはなっているけど、何となく理系っぽいイメージがあって、数学ができないとプログラミングもできないんじゃないか?と不安な方が多いと思います。
私は、高校生からプログラミングを独学で始めて約10年以上、IT企業にも数年勤めたことがあるので、その経験を元に解説していきます。
結論から言うと、
プログラミングで作るものによって、数学が必要かどうか分かれる。
必要の無い場合でも簡単な四則演算(+,-,×,÷)レベルは必要。
解説する中で、少しプログラミング用語も出てくるので、適宜補足を入れつつ進めていきます。
他にもプログラミングを始める上で知っておくべきことを解説しているので、ぜひ参考にして下さい。
≫ 関連記事:プログラミング独学は何から始めれば良いのか手順を解説【独学歴約10年】
目次
プログラミングに数学が必要か?
プログラミングを聞くと、理系っぽいイメージから数学が必要と思われがちですが、そのようなことはありません。
企業にもよりますが、IT企業でエンジニア・プログラマーとして働いている方の3~4割ぐらいは、文系出身です。
ケンさん
理系大学生が学ぶような数学的知識はおろか、高校で学ぶような微分・積分とか、その辺りも使いません。
正確には使う分野もありますが、使わない分野もあるので、そういう分野でプログラミング学習をして、将来的にIT企業に入ることができるので、数学ができなくてもOKです。
数学が必要かどうかは開発するもので分かれる。
数学が必要かどうかは、開発するものによって大きく違います。
例えば、ゲーム制作、AIやデータ分析、理系大学の研究室でやるような科学計算であれば、数学は必要になってきます。
これらは、プログらミグの中でも比較的難しい分野で、これからプログラミングを始めようと思っている方が、最初に手を出すには難しい分野でもあります。
一方で、Web制作(ホームページ・ブログ)やスマホアプリ、Windowsアプリであれば、数学は使いません。
使ったとしても、四則演算ぐらいのレベルですね。
数学が必要な場合、不要な場合については、後程詳しく解説していきます。
数学が不要な場合でも四則演算(+,-,×,÷)は必要。
数学が不要な場合は、+、-、×、÷と言った四則演算ができれば問題ないです。
ケンさん
もちろん開発するものによっても異なってきますが、例えば、
- お金の計算でいくつかの項目の合計金額を計算するとか
- 税込みを計算するために掛け算をするとか
この程度でなので、中学レベルの数学ができれば問題ないんじゃないかなと思います。
基本的にプログラムが計算してくれる。
基本的に計算自体はプログラムが計算してくれますし、仮に、高度な数学等の知識が必要な場合でも、ライブラリ(※)を使うことで計算式や計算自体を行ってくれる場合も多いです。
※ライブラリとは、汎用性の高い複数のプログラムをまとめたもので、例えば画像系ライブラリであれば、モザイクやモノクロ変換などの画像処理を簡単にできるようにプログラムをまとめたもの。
自分が組み立てた計算式が実際に合っているかは、別途テストする必要はありますが、それ以外はプログラムが計算してくれるので、計算するのが苦手という方でも問題はありません。
また、画像をモザイクやモノクロにするプログラムを作りたいという時でも、1から自分でプログラムしようと思うと複雑な計算が必要になってきます。
ですが、OpenCVなどの画像系ライブラリを使うことで、複雑な計算をライブラリ内のプログラムが計算してくれます。
計算はやってくれるので、プログラミングする際は、ファイルパスで画像の指定をしたり、どの範囲をどの程度の強さでモザイクをかけるかを指定したりするだけでモザイクをかけることができます。
画像系だけでなく、他にも色々な分野のライブラリがあるので、数学ができなくてもライブラリを使うことで、簡単に数学が必要な難しいプログラムも作ることができます。
プログラミングで数学が”不要”, “必要”な分野
プログラミングでは、数学を使う分野、使わない分野で分かれます。
数学が苦手という方は、数学を使わない分野でのプログラミング勉強をおすすめします。
数学が”不要”な分野
数学が不要なものは、Web制作(ホームページ・ブログ)やスマホアプリ、Windowsアプリ、VBAなどです。
どういうものを作るかによっても変わってきますが、数学はほとんど使いません。
また、一見必要そうな場合でも、ライブラリやCMS(※)を使うことで、難しい処理の大部分を任せることができるので、自分で数学的な知識を使ってプログラミングをすることはほぼありません。
※CMSとはコンテンツ・マネジメント・システム(コンテンツ管理システム)の略称で、簡単にいえばHTMLなどのWeb専門知識がない方でも、簡単にホームページの作成・更新・運営ができるシステムのことです。
例えば、
画像処理 ⇒ ライブラリ(openCVなど)でOK
通販サイトのお金の計算などの会計処理 ⇒ CMS(EC-CUBEなど)でOK
ライブラリによって複雑な処理を簡単に実装できたり、CMSによって根幹のシステム部分を簡単に実装できたりするので、作りたいものが決まったら、ライブラリ等を探すのも良いですね。
数学が”必要”な分野
一方で、データ分析系のツールやAI、ゲーム制作、組み込み系で数学が必要になってきます。
例えば、株式市場の株価データを分析したい場合に、どういうツールにするかにもよりますが、企業情報の数値やテクニカル指標など色々と計算する必要が出てきます。
AIに関しても、大部分はライブラリによって簡単に実装できるのですが、それでもちょっとした計算は必要です。
また、組み込み系(※)プログラムの場合は、プログラミング言語自体が難しい上、様々なセンサーなどから得られる情報を元に、ハードウェアをどのように制御するかをプログラムする必要があります。
※組み込み系とは、家電製品や機器などの機械の中に組み込まれたコンピューターを制御するためのシステムのこと。
例えば、車に搭載される車載システム、炊飯器やエアコン、冷蔵庫を制御するためのシステムなど
その際に、数学的な計算を必要とするので結構難しいです。
まとめ:数学ができなくてもプログラミングは全然できる!
数学をほとんど使わない分野であれば、数学が苦手な方でもプログラミングの勉強は可能です。
そのため、プログラミングに興味がある方で、「数学が苦手だから、プログラミングなんてどうせできないよな…」と考えている方は、ぜひ数学の使わない分野でプログラミングの勉強をしてみてはいかがでしょうか?
私は10年以上、様々なものを開発してきましたが、基本的に数学は使いませんし、仮にあったとしてもライブラリなどに頼っている部分も多いです。
唯一、データ分析で色々計算したいことがある時に、数式を立ててプログラムに落とし込むことはありますが、こういうことをしない方であれば、数学はできなくてもOKです。
コメントを残す