2023年9月29日
|2023年10月5日
「数学は苦手だけどプログラミングに興味がある」「文系出身だけどプログラミングの仕事がしたい」という方も多いのではないでしょうか?結論としては、数学が苦手でもプログラミングはできます!今回は、数学が苦手でもプログラミングができる理由や、簡単な数学知識を使う場面など、具体的に解説していきます。プログラミングで数学以外に必要といわれる能力についても説明いたしますので、ぜひ参考にしてください。
この記事の目次
プログラミングというと数学や物理が得意な理系の仕事というイメージがあるかもしれません。しかし、プログラミングをする上で、数学が苦手という方でも問題ありません。数学が得意な人がプログラマーに向いていることはありますが、その理由は単に「数学が得意だから」というわけではありません。プログラミングに数学の知識が必要でない理由について、実際にプログラミングで必要な知識や場面を紹介しながら、詳しく解説していきます。
以下でひとつずつ解説していきます。
プログラミングに詳しい計算式は不要です。必要な数学の知識といえば、四則演算(足し算、引き算、掛け算、割り算)と小数が扱えれば問題ありませんので、「中学校レベルの数学力」があれば十分プログラミングができます。
実際にIT業界で多くの文系出身者が働いています。「IT人材白書2020」によれば、IT職種の最終専攻分野で、先端IT従事者の30.2%が文系出身です。
(引用:https://www.ipa.go.jp/archive/publish/hjuojm0000007e6n-att/000085255.pdf)
また、プログラマーは常に人手が不足しているにも関わらず、需要が高い職種です。そのためプログラマーを採用する際に、文系理系を問わずに採用する企業が最近では増えています。
数学的な処理はコンピューターが大方やってくれるので、論理的な流れを考えてコンピューターが正しい方向に動くよう指示すればプログラミングは可能です。細かい計算をするよりも、正しい計算式を入力することが必要になってきます。
数学の詳しい知識は必須ではありませんが、中学校レベルの簡単な数学の知識が必要な場面があります。
実際に数学を使う例を、これから具体的に紹介していきます。
座標とは、画面上の場所をX軸とY軸を使って表す指標のことです。中学の数学で学ぶ座標はプログラミングでも必要です。数学ではX軸とY軸の交点を原点とし、Y軸は上方向が正の向き、X軸は右方向が正の向きとなっています。しかしプログラミング上では画面左上を原点とし、Y軸の下方向が正の向き、X軸は右方向が正の向きとなります。
座標を使うことで、画像やオブジェクトなどの位置を決めることができます。
プログラム中で、ある条件が満たされているかどうかによって、次に実行するプログラムを変更させることを条件分岐といいます。条件分岐は、<や=といった等号、不等号を使った条件式が成立したかどうかで次の動作が変化していきます。
上記の画像の例でいうと、年齢が「15歳以下か?」どうかで次の動作が変化します。それを以下の条件式を使ってコンピューターに指示します。
if(age <= 15)
こういった場合に、<や=といった最低限の数学の知識が必要になります。
数学の知識が深ければ、プログラマーとしての幅が広がります。
特定のプログラミング分野では数学が必須となるので、その道に進むためには数学が得意なことはメリットといえます。数学に詳しい必要がある分野について、これから詳しく解説いたします。
AIを仕組み部分からきちんと理解して作るエンジニアを目指すのであれば、数学が得意でなければいけません。Pythonというプログラミング言語には、頻繁に使うコードや機能を簡単にまとめたライブラリというものがたくさんあります。ライブラリを使えば、中身をちゃんと理解していなくても少しの手間で一見高性能なAIをプログラミングすることができます。
しかし、製品レベルの開発を行うのであれば、ライブラリはあくまでプログラミングの効率を上げるために利用するもので、細かい作業には詳しい数学の知識が必須となります。
AIエンジニアに必要な数学の知識は幅広く、特定の分野を指定することはできませんが、専門書籍や教科書が前提としている数学の知識は下記です。
ゲームプログラマーは、ゲーム開発のプログラミング部分を担当します。
AIエンジニアと同様に、ライブラリやゲームエンジンを使用すれば、数学・物理に詳しくなくても簡単なゲームは作れます。しかし、より独自性のある機能を作るときや、ライブラリ、ゲームエンジンが使えないときは詳しい数学の知識が必要になってきます。
基本的な部分でいうと、オブジェクト(対象の物)を動かしたり、衝突の判定をしたりする際に詳しい数学の知識を使います。
ゲームのプログラミングでよく使われる数学の知識は次の通りです。
データサイエンティストは何かしらのデータを原料に、経営に役立つ情報を抽出したり、ヒントや気付きになる新しい事象を発見する仕事です。適切なデータ分析やデータの解析は、機械学習や統計学などのさまざまな知識を組み合わせて行います。そのためにはより詳しく数学を理解している必要があります。
データサイエンティストが使うと言われている数学の知識は次の通りです。
画像処理とは、デジタル画像技術に関する課題分析、開発、運用を行う仕事です。その画像処理には、周波数解析を行うためのデータ変換アルゴリズム「フーリエ変換」を使用します。
周波数成分ごとに様々な処理を使い分け、ノイズ除去やぼかしを実現しています。
信号処理とは音声、画像、ビデオなどのアナログ信号を、コンピューターで処理するためにデジタル信号に処理する仕事です。このプロセスには数学的な概念や手法が関連しており、複素数、z変換、逆z変換関連、ディジタルシステム関連、フーリエ関連などが使われています。
大量の文章データから有益な情報を取り出すことをテキストマイニングと言います。企業はテキストマイニングで取り出した有益な情報を使い、マーケティングや業務効率化を行います。
テキストマイニングはデータサイエンスの一部なので、データサイエンティストと同様に機械学習や統計理論を理解している必要があります。
プログラミングでは中学校程度の数学の知識があれば十分ですが、分野によっては詳しい数学の知識が必要ということがわかりました。
ここからは、プログラミングにおける数学以外で必要な能力を5つ紹介いたします。
論理的思考力とは、「ある成果を出すために最も効率的で安全な方法とはなにか?」を導き出す思考のことです。プログラミングは「あるボタンを押す」→「指定された計算をする」→「計算結果を表示する」など細かい指示の連続で行われます。
コンピューターに誤解なく伝わるように、細かくて正確な指示を行わなければいけません。どのように伝えれば効率的かつ正確にコンピューターが理解するのかを、論理的に思考する必要があります。
プログラミングにおいてコミュニケーション能力は必要ないと思っている方もいるかもしれませんが、コミュニケーション能力はプログラマーにとってかなり重要視される能力です。
ソフトウェアの開発ではクライアントとの打ち合わせでニーズの聞き取りをしますし、チーム内の会議では認識のすり合わせ、スケジュール調整、進捗の報告が必要です。ポジションによって異なりますが、プログラマーはコミュニケーションをとる機会が多く、コミュニケーション能力は必須となります。
英語力は必須ではありませんが、英語ができれば効率的にプログラミングをすることができます。
プログラミングのコードはすべて英語ですが、難易度の高い英語は使われませんので基礎的な英語力があればプログラミングをすることができます。またプログラミングをしていくうちに、コード自体を覚えていきます。
ただし、プログラミングに関する最新情報はほとんどが英語です。そのため海外から発信される英語の最新情報を読むことができれば、他のプログラマーより一歩先に動くことができるというメリットもあります。
プログラミングは長い学習時間が必要になります。実際に仕事としてプログラミングができるようになるには、最低でも600~800時間ほどの学習時間が必要だと言われています。さらにプログラミング学習は約90%の人が挫折するとも言われています。
短期学習では終わらず、継続して学習に取り組める能力がプログラミングには求められます。
プログラマーは自分の市場価値を高めるために、常に情報収集を行い、最新の知識やスキルをアップデートする必要があります。IT関連の技術は日進月歩であり、プログラマーとして第一線で活躍するためには、常に情報収集を行って新しい情報を吸収していくことが不可欠です。
最新の情報を得るために、常にニュースサイトやブログ、学習サイトなどを使って情報収集する能力が必要となります。
既にお伝えした通り、仕事としてプログラミングができるようになるためには、長期的な学習が必要です。
独学だと比較的安く学ぶことができますが、ほとんどの人が途中で挫折してしまいます。プログラミングの知識がない文系出身者が独学で学ぼうとすると、「何をすればいいのかわからない」「わからないことを解決するために時間がかかってしまう」「ひとりで勉強するのでモチベーションが続かない」などの理由で途中で諦めてしまいます。
一方プログラミングスクールに通えば、次のようなメリットがあります。
プログラミングスクールに通えば独自の学習プランが用意されているため、専門的な講師から効率的にプログラミングを習得することができます。さらに講師がいればすぐにわからないことを質問できますし、他の受講生といっしょに勉強するのでモチベーションも維持しやすいです。
さらに就職サポートを受けることもできるので、受講後にスムーズに就職することができます。
これまで説明したように、数学が苦手でも問題なくプログラミングを仕事にすることができます。ただし、詳しい数学の知識が必要なプログラミング分野もあるため、数学が得意であることがメリットになります。
実際に現在のIT現場では文系出身の方が多く働いています。数学が苦手な方でも、コミュニケーション能力や論理的思考などがあればプログラミングが向いている仕事になることもあります。
数学が苦手でもプログラミングに興味のある方は、ぜひ挑戦してみることをおすすめします。
最新記事
プログラミング学習に暗記は不要!未経験から効率的に学習する方法
2024年4月18日
この記事の目次1 【結論】プログラミング学習に暗記は必要ない1.1 【理由1】すべて暗記するのは不可能なため1.2 【理由2】カンニングしてもいいため1.3 【
プログラミングに必要なパソコンのスペックとは?初心者向けの選び方
2024年4月18日
プログラミングには、最低限のスペックを備えたパソコンが必須です。とはいえ、初心者の人は「プログラミングに必要なパソコンのスペック」を把握していないでしょう。今回
インフラエンジニアのやりがい5選!向いている人や一日の仕事の流れも解説
2023年10月20日
ITエンジニアのなかでもインフラエンジニアに興味を持っており、「どのようなやりがいがあるのだろう?」と気になっている人もいるのではないでしょうか。 type転職