• トップ
  • ブログ一覧
  • 数学の成績が悪いとプログラミングスキルは身につかないのか?
  • 数学の成績が悪いとプログラミングスキルは身につかないのか?

    メディアチームメディアチーム
    2019.04.04

    エンジニアになろう!

    ミツオカミツオカ
    昔から数学が苦手で…そんな私でもプログラミングはできるのでしょうか…

    にゃんこ師匠 にゃんこ師匠
    ふむふむ…実は、そんなこともあろうかと、今回はある人物に依頼しておる

    ??????
    掲示板を見てまさかとは思ったが…やっぱりあんただったか…

    ミツオカミツオカ
    ま、まさかあなたは…!?

    サイバーリョウ サイバーリョウ
    俺は「町田良助」プログラムの悩みを始末する掃除屋だ。仲間からは『サイバーリョウ』と呼ばれている

    ミツオカミツオカ
    ・・・・・・・

    プログラミングを勉強してみたいと思っても、中々一歩を踏み出すのには勇気がいります。

    つい『自分にできるのか?』と、不安でしょう。

    ミツオカさんのように『プログラミングといえば理系だけど、数学ができなくても問題ない?』という風に、色々と気になる方もいるはずです。

    そこで今回は、プログラミングスキルを身につけるには、高度な数学が必要なのかどうかを解説していきます。

    高度な数学は不要!

    サイバーリョウサイバーリョウ
    基本的なプログラミングに、高度な数学は不要だ!
    ミツオカミツオカ
    え!そうなんですか!?意外だけど少しホッとしました♪

    「数学ができない」と頭を抱える文系の皆さん、安心してください。

    基本的なプログラミングに、高度な数学は不要なのです。

    小学校で習った「算数」が理解できていれば問題ありません。

    基本的には「算数」でOK

    例えば、足し算・引き算・掛け算割り算などですね。

    こんな作業なら、算数だけで十分実行可能です。

    1. 膨大なデータの検索や表示
    2. アンケートシステムを作る
    3. Webサービスのログイン機能を作る
    4. 掲示板を作る

    これくらい作れるなら、算数だけでも十分に感じませんか?

    つまり、一般的なWebアプリケーションを開発するプログラミングであれば、学力を気にする必要はないんです。

    高度な数学が必要な場面

    サイバーリョウサイバーリョウ
    高度な数学が要求される場合も確かにある…そう、オレのようにある分野のプロになればなるほど…
    ミツオカミツオカ
    まあ、確かにそうですよねー。例えば、どんな場面で必要になるんですか?

    一方で、高度な数学が要求される場面もあります。

    具体的には、以下の場合です。

    1. 複雑なゲームのプログラミング
    2. AI(人工知能・機械学習)
    3. 統計処理

    それでは、順に見ていくことにしましょう!

    複雑なゲームのプログラミング

    ゲーム開発では数学的処理が必要です。

    クイズゲームのように、画像表示や正誤判断などの簡単なルールで動くゲームなら問題ありません。

    しかし、キャラクターを動かしたり、戦わせたりする場合は、別です。

    線形代数などのハイレベルな数学はもちろんのこと、動きを自然に見せるために、物理の知識が要求されることもあります。

    AI(人工知能・機械学習)

    人工知能の開発・運用には、数学が得意なバリバリの理系が関わっています。

    ここでは、難解な数学的知識を要求されることを覚悟しなければなりません。

    大量のデータを扱うため、高校で習う微分・積分や、画像認識のためのフーリエ変換など、高度な数学的知識が必要とされます。

    統計処理

    統計学は、数学の一分野です。

    分散」「中央値」「標準偏差」など、中学校で勉強した知識は、もちろん必要になります。

    その他、実際の市場を統計分析する際は、データから規則性を見出す、高度な数学的知識が求められます。

    どのようなモノを作りたいかで数学の知識は変わってくる

    上記に挙げたものは一例ですが、

    自分が何を作りたいかのか?によって、必要な学力も変わってくる訳ですね。

    一般的なプログラマー業務なら、数学が苦手でも問題になるようなことはありません。

    しかし、より専門性の高い分野で活躍したいと考えるのであれば、数学の知識は必須と言えるでしょう。

    サイバーリョウサイバーリョウ
    学生時代は、どこで役に立つのだろうか…と一度は考えたであろう、log指数関数などの数学は、こういうところで生きてくる訳だ
    ミツオカミツオカ
    自分が何を実行できるようになりたいのか考えた上で、中・高の教科書を振り返ったり、専門書を開いたりしてみましょう!

    数学より必要な能力

    では、一般的なプログラマーとして、必要な能力は一体なんでしょうか?

    よく挙げられるのはこの3つです。

    1. 数的処理より論理的思考
    2. 盲点の英語力
    3. コミュニケーション能力

    いかがでしょうか?

    思っていたものと違うものも混ざっていたかもしれません。

    それでは、詳しく見ていくことにしましょう!

    数的処理より論理的思考

    プログラミングの基礎を学ぶには、数的処理よりむしろ、論理的思考が必要となります。

    コンピュータに指示を出して、適切に動いてもらうためには、論理だった考え方が不可欠だからです。

    曖昧な指示を与えると、エラーを起こしてしまいます。

    順序立てて考える力が必要不可欠なのです。

    盲点の英語力

    意外と盲点なのが英語力です。

    プログラミング言語そのものが、英語表記なので、英語が分かっていた方が理解が早いです。

    「color」とか「Controller」とか「background」など、中学生レベルの英語が単語が頻出です。

    ただし、出てくる単語はだいたい決まっています。

    何度も遭遇すれば覚えることができるので、過度に心配する必要はないでしょう。

    また、プログラマーであれば、エラーに必ずといっていいほど遭遇します。

    その場合、海外のサイトに答えが載っている場合も多いため、英語が読めるとより解決が早くなります。

    しかし、現在は、グーグル翻訳などを使えば、ある程度は困らないので、こちらも過度の心配は必要ないと言えます。

    コミュニケーション能力

    プログラミングというと、パソコンと向き合って一人でカタカタ作業しているイメージかもしれません。

    でも、実際の現場では、同期や先輩に聞かないといけません。

    プログラミングスキルを上げるには、数学よりも、周りに質問したり、協力したりしてもらえる力が必要だということができます。

    また、実際の仕事場では、個人で開発することは珍しく、複数のメンバーとチームで作業することになります。

    そのため、意思疎通がうまくできないと作業が進まないため、コミュニケーション能力は必須と言えます。

    さいごに

    サイバーリョウ サイバーリョウ
    まあ、不安な気持ちもあるかも知れないけど、実際に手を動かしてみると、思ってたほど大変じゃないってこともよくある話だ

    ミツオカミツオカ
    そうですね!だいぶスッキリしました!

    サイバーリョウ サイバーリョウ
    そうだ!どーせプログラミングの勉強するならボクと一緒にしたほうがいいって!そうしましょ!!ねっ 決~まり♡

    ミツオカミツオカ
    そ…そんなこと言われても…

    サイバーリョウ サイバーリョウ
    ささ どこ行こうーか!カフェかな?コワーキングスペースかな?それとも…

    ミツオカミツオカ
    (ドン!!!) まっ………~~…たく!!あんたって人は…!

    こちらの記事もオススメ!

    featureImg2020.08.04エンジニアの働き方 特集社員としての働き方社員としてのエンジニアの働き方とは?ライトコードのエンジニアはどんな働き方をしてるのか、まとめたいと...

    featureImg2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...

    ライトコードでは、エンジニアを積極採用中!

    ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。

    採用情報へ

    メディアチーム
    メディアチーム
    Show more...

    おすすめ記事

    エンジニア大募集中!

    ライトコードでは、エンジニアを積極採用中です。

    特に、WEBエンジニアとモバイルエンジニアは是非ご応募お待ちしております!

    また、フリーランスエンジニア様も大募集中です。

    background