公開日:2023.02.15
- プログラミング
- 数学
プログラミングは数学が苦手でもできる?関係性や必要なスキルなども解説します
プログラミングを始めようと思っている方の中には「数学が苦手だからプログラミングも自分には向いていないかも」といった不安を抱いている方もいるのではないでしょうか。
実は、プログラミングには数学の専門知識は必要なく、最低限の数学の基礎知識があれば始めることができます。
実際に、最終学歴で数学を専攻していなかった人もIT分野で多数活躍しています。
この記事では、数学が苦手でもプログラミングができる理由や、プログラミングと数学の関係性、プログラミングに必要なスキルについて解説していきます。
プログラミングは数学が苦手でもできる?
プログラミングには数字や数学のイメージがあり、苦手意識が強い方も多いかもしれません。
しかし数学が苦手でも、プログラミングははじめることができます。
たしかにプログラミングと数学には関連性や共通点がありますが、あくまでも数学はプログラミングの中の一要素にすぎません。
また、プログラミングを学んでいく中で、必要に応じて数学の知識を身につけていくこともできるでしょう。
実際に、プログラミングに携わる仕事をしている人の中には、数学を専攻としていない人も多くいます。
IPA(独立行政法人情報処理推進機構)が出している「IT人材白書2020」のデータでは、IT人材うち最終学歴の専攻分野がIT・情報系以外の文系だったという人が、先端IT従事者(※)のうち30.2%もあることを報告しています。
つまり、初歩的な数学の基礎知識があれば、誰でもプログラミングをはじめることができるといえるでしょう。
※先端IT従事者とは、先端IT分野(AIやIoTなど)の知識やスキルが求められる業務を担当している人をいいます。
プログラミングと数学の関係性とは?
プログラミングは、数学と考え方に共通点があります。
例えば下記のような点が挙げられます。
数値処理
プログラミングの中で、足し算や引き算などの数値処理をすることがあります。
数学の証明問題などを解いたことがある人はイメージがつきやすいかもしれませんが、数学で使用する「数式」というのは、目的の処理ができるよう順序立てておこなった計算をまとめた結果です。
そのような数値処理をおこなう際には、数式をそのまま使います。
例えば、コンビニで商品を買う際の支払い額の計算方法を、プログラミングで示してみましょう。
# 支払い額(payment_value)の計算: 価格(price)×数量(count)
payment_value = price * count
これに割引・値引などを追加したり、支払いに対するポイントバック額などを計算したりするには、数式を理解する必要があります。
足し算や引き算などの四則演算が基本ですが、ある程度数式を読み解く力が必要になってきます。
論理的思考力
論理的思考力と呼ばれる「物事を道理に沿って筋道を立てて考える力」は、数学の答えを導く際に必要です。
プログラミングも同様に、目的の処理ができるよう順序立てて命令を考えるため論理的思考力が必要になります。
数値処理や論理的思考力は、プログラミングを通して身につけられるスキルでもありますが、数学が得意な方はこれらに慣れていることが多いため、プログラミングの理解が比較的早い場合が多いと言われています。
こういったスキルをどのように身につけたらいいかについては、こちらの記事で詳しく紹介しています。
数学の知識が必要になるプログラミング分野もある
プログラミングは数学が苦手でも問題なくできることを前述しましたが、プログラミングの分野によっては専門的な数学の知識が必要になるものも存在します。
数学の知識が必要になるプログラミング分野
数学の知識が必要になる分野を紹介します。
データサイエンス・データアナリティクス(データ分析・統計)
統計学の専門的な知識が必要になります。その統計学には、専門的な数学の知識が必要です。
難しい計算式を直接自分でプログラミングに書き込んだりすることはあまり多くはありませんが、プログラミングの内部処理としてどのようなことがおこなわれているのか、というものを理解するために数学の知識が必要といえるでしょう。
AI(人工知能)
ロボット掃除機や音声アシスタント機能、自動運転車など、現在急スピードで発展している分野で、数学の理論から考えられています。
微分・積分などといった専門的な数学知識が必要になります。
ゲーム開発
3Dゲームなどのリアリティを求めるゲームを作る場合には、物理・数学の知識が必要になります。
例えば、人間がジャンプをする場合、上に上がるスピードと下に下がるスピードは違います。
こういった動きを実際の動きに即して作るためには、物理演算などといった専門的な数学知識を使って動きを再現していく必要があります。
数学の知識が必要でないプログラミング分野
次に、高度な数学の知識が不要な分野を紹介します。
インフラエンジニア
インフラエンジニアとは、サーバーやネットワークなどIT基盤・環境を整えるエンジニアのことです。
基盤を扱うインフラエンジニアにはインフラの専門的な知識を覚える必要はありますが、数学などの知識はほとんど使用しません。
Webアプリ開発
SE(システムエンジニア)と呼ばれる職種で一番多いのがこのWebアプリ開発の分野かと思いますが、数学の知識は必要ないケースが多いです。
四則演算をプログラムの中に組み込む必要がある場合もありますが、おこないたい目的の処理の流れをしっかり順序立てることができれば、問題なくアプリ開発などのプログラミングは可能です。
プログラミングに必要なスキルとは?
プログラミングに必須のスキルはありません。
しかし、身についているとプログラミングに活かすことができるスキルは存在し、数学の知識もその一つです。
プログラミングをはじめるにあたって、活かせるスキルの一例を紹介します。
これらは、プログラミングをしていくことによって身につけられるスキルでもあります。
論理的思考力
目的の処理を達成するための機能分解する力、それを明確に順序立てて考える力がプログラミングには必要です。
例えば、店の人が会計でお客にお釣りを渡すというケースをプログラミングに置き換えて考えてみましょう。
- まず受け取ったお金を集計
- 次に支払いに必要な金額との差分を計算
- その差分をお釣りとして渡す
というように、目的の行為は細かい処理単位に分解できます。
プログラミングで同様の処理をする場合には、細かい処理単位を順序立てて考える必要があります。
上記の例に、追加でレシートを出力する機能を付け加えたらどうでしょうか。
1商品ずつの金額や合計金額、受け取った金額とお釣り金額などを全て記録し、最終的にレシートに印字する必要が出てきます。
このように、処理を細かい単位に機能分解して、順序立てて組み立てる考え方ができるようになるためには、論理的な思考力を身につける必要があります。
情報収集スキル
プログラミングをしていると、処理がうまくいかず手が止まってしまう場面に立ち会うことはよくあります。
そういった際に重要になってくるのが、情報収集のスキルです。
自分がつまずく箇所は、誰かも同じようにつまずいている可能性が高く、インターネット上には参考になる文献が多く存在しています。
プログラミングの知識全てが頭に入っている人はほとんどいません。
仕事でプログラミングを使っている人のほとんどが、参考になるソースコード(プログラミング言語で書かれた命令文)を調べて参考にし、自分のケースに置き換えて作るといった作業をしています。
初心者は特に、つまずいた時は考えるのではなく調べることを意識してプログラミングをすると、作業が進みやすいでしょう。
英語の読解能力
プログラミングのエラー内容も基本的には英語で示されます。
プログラミングの処理を記述するための「エディター」と呼ばれるプログラミング編集ソフトには、英語版しか無い場合もあります。
また、プログラミング言語によっては、日本語の文献が少なく英語で調べる必要がある場合もあります。
ですので、さまざまな場面で英語を読む力があるとプログラミングに活かすことができます。
Webサイトをそのまま翻訳などもできるため、英語が読み取れないことがプログラミングをすることにおいてそれほどマイナスには影響しませんが、英語を読む力があると作業の効率が格段に上がります。
プログラミングと数学についてまとめ
プログラミングと数学には関連性がありますが、数学が苦手かどうかとプログラミングができるかどうかは、直接的な関係はありません。
足し算や引き算などの初歩的な数学の基礎知識があれば、誰でもプログラミングをはじめることができます。
実際にプログラミングに携わる仕事をしている人の中には、数学を専攻としていなかった人も多く活躍しています。
数学に苦手意識がある方も、まずはプログラミングを始めてみてはいかがでしょうか。
高校生までのプログラミングならLITALICOワンダー
高校生3年生までの方なら、LITALICOワンダーでプログラミングを学ぶことができます。
LITALICOワンダーでは一人ひとりに合わせた授業をおこなっており、スキルに合わせて楽しく学ぶことが可能です。
3DゲームやWeb制作ができる「ゲーム&アプリエキスパートコース」では、JavaScriptやC#、HTML、CSSなどを使ったプログラミング学習をすることができます。
無料体験も実施しているため、独学に不安がある方やプログラミングに興味がある方はぜひ一度無料体験にお越しください。