みなさん、「プログラミングを身に着けて将来の選択肢を増やしたい!でも、数学が苦手な自分にはプログラミングは向いてないのかな」って悩んでいませんか?
しかし、じつはプログラミング学習には、数学の知識が不要な場合が多いんです!
なぜなら、高度な数学の知識が求められるのは、プログラミングを使った仕事の中でも一部だけだからです!
ここでは、数学の知識なしでもプログラミングを始められる理由とその方法をお伝えします。
ぜひこの記事をお読みいただき、プログラミング学習を始めるかどうかの参考にしてもらえれば幸いです。
プログラミングに数学の知識は必要なのか
数学の知識が必要になることは少ない
まず一般的に、プログラミングには高度な数学の知識が必要と考えられていますが、どうしてなのでしょうか?
「コンピュータとかプログラミングとかは理系の範囲でしょ??」や「大学では理系の学部でプログラミングが学べるから!」といったような理由が多いと思います。
このイメージはある意味正解です。
たしかに、高度な数学の知識を用いたプログラミングが要求される分野もあります。
しかし、そういった分野を除けば、プログラミングに高度な数学の知識は必要とされません。一例ですが、もしあなたが「自由に働けるって噂のWeb系のエンジニアに興味がある!」と思っているなら、その分野は高度な数学の知識は不要なので安心してください。
数学を使わない分野や職業の例については後ほど紹介します。
数学とプログラミングは無関係なのか?
数学とプログラミングは無関係ではありません。
数学の問題を解く際に必要になる論理的思考力は、プログラミングでも大きく役に立ちます。そのため、数学が得意な人はプログラミングもすぐに習得できる傾向があります。ただ、これは数学が苦手だからプログラミングに向いていない、プログラミングができないというわけではありません。
また、プログラミングにも高度な数学の知識が必要になる分野はいくつかあります。具体的にプログラミングで高度な数学の知識が必要となる分野は以下の通りです。
・3Dのゲーム開発
・AI(人工知能分野)
・データ分析・解析
上記の分野では、物理や高校・大学レベルの数学、統計学などの知識が必要となるので、プログラミングとは別に勉強する必要があります。
一方、上記以外の分野には高度な数学の知識が求められることは無く、数学の知識がない方や苦手な方でも取り組むことができます。
数学を使わない分野や職業の例については後ほど紹介します。
文系出身でも活躍している人が多くいる
文系出身の方は高校や大学で数学に触れる機会が少なく、高度な数学の知識がない方も多いはずです。のではないでしょうか
しかし、プログラマーとして採用される方の学部別の割合としては、文系学部出身の学生が高い割合を占めているのです。
「IT人材白書2017」によると、IT企業のIT技術者の最終学歴は全体で約30%が文系学部、20代で見ると約40%が文系学部です。(情報処理推進機構 「IT人材白書2017」https://www.ipa.go.jp/files/000059087.pdf)
このことから、AI・3Dゲーム開発などの分野を除いたIT企業では、「理系か文系か」「数学が出来るかできないか」といった違いは重要でないことがわかります。これは、プログ路グラミングに数学の知識が必ずしも必要ではないことを表していると考えられます。
プログラミングで求められる能力
プログラミングには数学の知識が必要な分野とそうでない分野があることを紹介しました。それでは、分野を問わず求められる能力とは何があるのでしょうか。
そこで、ここではプログラミングに一般的に必要とされている能力をご紹介します。
論理的に考えていく力
この論理的に考えていく力はプログラミング的思考とも呼ばれていて、プログラミングを実際にやっていくうえでは大事な力です。
具体的には、問題解決に向けて、大量の情報の中から必要な情報を選び、それらを基に筋道を立てて物事を考える力です。
プログラミングは、希望通りのプログラムを完成させるために必要な処理を選び、組み立てていく作業です。
この作業に、論理的に考える力が必要となるわけです。
ちなみに、これは数学的な考え方に似ているため、数学ができるほうがプログラミングに向いていると思われがちです。
しかし、国語が苦手な人でも文章の読解ができるように、数学が苦手な方にこの力がないというわけではありません。
粘り強さ
プログラミングでは、エラーやバグが起きることはたくさんあります。
これに対処する作業は少し面倒で、、つまらない作業だなと感じてしまうことも多くあります。
しかし長年プログラミングをやっている方でも、エラーやバグは頻繁に起こります。
実際の現場では、エラーやバグにかかる時間のほうがコードを書く時間よりも長くなることもあります。
そのためプログラミングを行う上では、このエラーやバグと戦う粘り強さが大切なのです。
英語力
ここでいう英語力とは「難しい英文法」とか「専門的な英単語」とかではありません。
では何か。それは簡単な単語力です!
プログラミングの中で使うコードには簡単な英単語が使われていることがあります。
なので、英単語をあらかじめ知っておくと使いやすいというレベルの話です。
実際に、プログラミングをやっていく中で学んでいこうという気持ちでも良いと思います。
モチベーションを高く維持する力
プログラミングの世界は頻繁にアップデートが行われ、日々変化しています。
この変化に合わせて自分も成長しようと高いモチベーションを持ち続けることは、プログラミングを続けるなら必要になります。
IT関連の情報を集めたり、最新のスキルを身に着けて実践したりする。
これを続けるモチベーションを維持し続けられれば、将来もしプログラミングを仕事にしたときにも大きな武器になるはずです。
数学の知識を用いないプログラミングの可能性
ここまでで、プログラミングをするにあたって高度な数学の知識がいらないということはなんとなくお分かりいただけましたでしょうか?
それでも、「高度な数学の知識が不要なプログラミングではできることも少ないのでは?」と感じているかもしれません。
ここからは、プログラミングで高度な数学の知識が不要な分野や職業をいくつか紹介していきます。
数学いらずのプログラミングでできること
webサイト作成
みなさんもおそらくよく利用しているwebサイト。
じつは、webサイトの骨組みやデザインは高度な数学の知識を必要としないプログラミングによって作られています。
自分でwebサイトを作って、実際にインターネット上で公開することも比較的容易なので、プログラミングをとりあえずやってみたい人や自分で世の中に何かを発信したいと考えている方にはおすすめです。
webアプリ作成
webアプリって何?という方もいるかもしれませんが、我々の日常に欠かせないものとなりつつあるwebアプリ。
簡単に言うと、Googleなどのwebブラウザで操作できるアプリのことです。
具体的に何があるかというと、twitterやFacebook、食べログです。
これも、高度な数学の知識がないプログラミングで作ることができます。
数学いらずのプログラミングで就ける職業
webプログラマー
webプログラマーとはwebサイトやWebアプリを作るために必要なプログラミングを行う職業です。
例えば、webサイト内で利用者がwebサイト内検索を行った時にその検索結果を正しく表示させるようなプログラムを作ったり、webサイト内のメールフォームを作ったりします。
どの企業も自社のwebサイトを持つようになったことで、このようなwebサイトの裏側のシステムを構築する仕事は今後も需要が増えていくでしょう。
なので、web制作会社といった一般企業で活躍することもできますし、フリーランスとして活躍することもできます。
中には年収が1000万を超える人がいるほど、高い収入が見込める注目のお仕事の一つです!
webデザイナー
webデザイナーはwebプログラマーのようにwebサイトの裏側のシステムの構築というよりは我々が普段見ているwebサイトの表側の部分をデザインする仕事になります。
単にwebサイトのレイアウトだけでなく、webサイトの更新の容易さや使い勝手も考慮して設計します。
これをHTMLやCSS等のプログラミング言語を使って、企業や個人からの依頼を受けてプログラミングを行います。
webデザイナーもwebプログラマーと同じく、今後ますます需要が大きくなるお仕事だといえますし、働き方も多様です。
例えば、企業に勤めて、その会社のwebサイトのデザインを行う働き方やフリーランスとしての働き方があります。
webデザイナーも、スキルを磨けば磨くほど仕事の幅が広がり、将来性のあるおすすめの職業です!
プログラミングを用いた職業はこちらの記事で詳しく紹介しています。ぜひ参考にしてみてください。
数学が苦手な人におすすめの言語
ここまでで、実際に高度な数学の知識なしでのプログラミングでもできることは多く、就ける職業もあることを紹介してきました。
しかし、いったい何から始めればいいのか分からないという方も多いはずです。
そこで、まず必要になるのはプログラミング言語の知識です。
プログラミング言語とはコンピューターに指示を出すための言語のことで、これを使ってプログラミングを行っていきます。
プログラミングにプログラミング言語の知識は欠かせません。
そこでここからは、数学が苦手な方向けにおすすめのプログラミング言語を紹介します。
HTML/CSS
HTMLとCSSは厳密にいうと、プログラミング言語ではなく、マークアップ言語と呼ばれています。
しかし、プログラミング言語として扱われることも多いので紹介します。
HTMLは見出しの位置などのwebサイトの骨組みを決定するために使われます。
CSSは文字や背景の色のようなwebサイトの装飾を決定するために使われています。
これら二つの言語を使うことで静的な(動きのない)webサイトを作ることができるので、webサイト作りには欠かせない言語となっています。
なので上記で紹介した、二つの職業でも必ず使う言語となります。
この二つの言語は、他のプログラミング言語とも関係していることが多いため、最初に勉強しておくと良いでしょう。
JavaScript
次におすすめするのはJavaScriptというプログラミング言語です。
JavaScriptを使うことでwebサイトに動きを加えることができます。
例えば、HTMLとCSSだけだとただ文字が表示されるところを、JavaScripによってその文字をアニメーションのように動的に表示することができます。
また、JavaScriptは非常に人気が高いため、この言語を使えるだけで受けられる仕事も増えます。。
そのため、非常に注目度の高いプログラミング言語で、学び方もたくさんあるので始めやすい言語であるといえるでしょう。
ちなみに、Javaというプログラミング言語もありますが、JavaScriptとは関係がないので注意してください。
こちらの記事で、難易度別にプログラミング言語を紹介しています。ぜひ参考にしてみてください。
プログラミングに活きる数学の参考書3選
ここでは、プログラミングと数学の関係を深く勉強したいという方向けに、お薦めの参考書を3つ紹介します。
プログラミングのための数学
著者 :Paul Orland
翻訳 :松田晃一
出版社:マイナビ
出版日:2021/6/23
線形代数や微分積分、機械学習といった高度な数学の知識をPythonを用いて分かりやすく説明している参考書です。これらの知識は、近年注目度の高いデータサイエンスの分野で活きるため、この分野を目指すのであれば必ず身に付けておくべきです。
また、Pythonは初心者でも学びやすく、汎用性も高いので入門の言語としても最適です。ぜひプログラミング学習も、数学の知識も不足しているなと感じる方に使っていただきたい参考書です。
プログラマの数学第2版
著者:結城 浩
出版社:SBクリエイティブ
発売日:2018/1/17
こちらは、プログラミングでよく使う基本的な仕組みを数学的な観点から解説してくれている本です。例えば、プログラミング的な処理である「if文」は数学の場合分けと考え方が共通しており、この本ではこれらの考え方を詳しく解説してくれています。
そのため、プログラミングを実際に始めたものの、書いてるコードの意味が分からないという方はぜひこの本を読んでいただきたいです。また、第2版では機械学習などの注目度の高い技術の解説もされています。この本一冊で、数学とプログラミングの関係への理解がとても深くなるでしょう。
アルゴリズム図鑑 絵で見てわかる26のアルゴリズム
著者:石田 保輝、宮崎 修一
出版社:翔泳社
発売日:2017/6/6
こちらは、先に紹介した2冊と違い、プログラミングの学習には欠かせないアルゴリズムを図解で覚えることができる参考書になります。
アルゴリズムとは、特定の問題を解決するための計算や処理のやり方のことを指します。例えば、ランダムにたくさん並べた数字を昇順や降順に並べ替える方法などです。
これらのアルゴリズムの理解には、高度な数学の知識が必要というわけではありません。しかし、数学的な考え方が必要になることもあるので、この図解で分かりやすく解説している本で学習することをお勧めします。
まとめ
今回は高度な数学の知識がなくてもプログラミングができることを紹介してきました。
プログラミングと数学の関係性が全くないというわけではありません。しかし、数学の知識がないことや数学が苦手なことでプログラミングをあきらめる必要は全くないのです。
むしろ、高度な数学の知識がいらないプログラミングでできる職業はこれからもどんどん増えていくでしょう。なので、プログラミングをやってみようかなと考えているのであれば、とりあえず始めてみることをおすすめします。
本記事が、あなたがプログラミングを始めるきっかけになれば幸いです。