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

エンジニアになろう!








プログラミングを勉強してみたいと思っても、中々一歩を踏み出すのには勇気がいります。
つい『自分にできるのか?』と、不安でしょう。
ミツオカさんのように『プログラミングといえば理系だけど、数学ができなくても問題ない?』という風に、色々と気になる方もいるはずです。
そこで今回は、プログラミングスキルを身につけるには、高度な数学が必要なのかどうかを解説していきます。
高度な数学は不要!


「数学ができない」と頭を抱える文系の皆さん、安心してください。
基本的なプログラミングに、高度な数学は不要なのです。
小学校で習った「算数」が理解できていれば問題ありません。
基本的には「算数」でOK
例えば、足し算・引き算・掛け算割り算などですね。
こんな作業なら、算数だけで十分実行可能です。
- 膨大なデータの検索や表示
- アンケートシステムを作る
- Webサービスのログイン機能を作る
- 掲示板を作る
これくらい作れるなら、算数だけでも十分に感じませんか?
つまり、一般的なWebアプリケーションを開発するプログラミングであれば、学力を気にする必要はないんです。
高度な数学が必要な場面


一方で、高度な数学が要求される場面もあります。
具体的には、以下の場合です。
- 複雑なゲームのプログラミング
- AI(人工知能・機械学習)
- 統計処理
それでは、順に見ていくことにしましょう!
複雑なゲームのプログラミング
ゲーム開発では数学的処理が必要です。
クイズゲームのように、画像表示や正誤判断などの簡単なルールで動くゲームなら問題ありません。
しかし、キャラクターを動かしたり、戦わせたりする場合は、別です。
線形代数などのハイレベルな数学はもちろんのこと、動きを自然に見せるために、物理の知識が要求されることもあります。
AI(人工知能・機械学習)
人工知能の開発・運用には、数学が得意なバリバリの理系が関わっています。
ここでは、難解な数学的知識を要求されることを覚悟しなければなりません。
大量のデータを扱うため、高校で習う微分・積分や、画像認識のためのフーリエ変換など、高度な数学的知識が必要とされます。
統計処理
統計学は、数学の一分野です。
「分散」「中央値」「標準偏差」など、中学校で勉強した知識は、もちろん必要になります。
その他、実際の市場を統計分析する際は、データから規則性を見出す、高度な数学的知識が求められます。
どのようなモノを作りたいかで数学の知識は変わってくる
上記に挙げたものは一例ですが、
自分が何を作りたいかのか?によって、必要な学力も変わってくる訳ですね。
一般的なプログラマー業務なら、数学が苦手でも問題になるようなことはありません。
しかし、より専門性の高い分野で活躍したいと考えるのであれば、数学の知識は必須と言えるでしょう。


数学より必要な能力
では、一般的なプログラマーとして、必要な能力は一体なんでしょうか?
よく挙げられるのはこの3つです。
- 数的処理より論理的思考
- 盲点の英語力
- コミュニケーション能力
いかがでしょうか?
思っていたものと違うものも混ざっていたかもしれません。
それでは、詳しく見ていくことにしましょう!
数的処理より論理的思考
プログラミングの基礎を学ぶには、数的処理よりむしろ、論理的思考が必要となります。
コンピュータに指示を出して、適切に動いてもらうためには、論理だった考え方が不可欠だからです。
曖昧な指示を与えると、エラーを起こしてしまいます。
順序立てて考える力が必要不可欠なのです。
盲点の英語力
意外と盲点なのが英語力です。
プログラミング言語そのものが、英語表記なので、英語が分かっていた方が理解が早いです。
「color」とか「Controller」とか「background」など、中学生レベルの英語が単語が頻出です。
ただし、出てくる単語はだいたい決まっています。
何度も遭遇すれば覚えることができるので、過度に心配する必要はないでしょう。
また、プログラマーであれば、エラーに必ずといっていいほど遭遇します。
その場合、海外のサイトに答えが載っている場合も多いため、英語が読めるとより解決が早くなります。
しかし、現在は、グーグル翻訳などを使えば、ある程度は困らないので、こちらも過度の心配は必要ないと言えます。
コミュニケーション能力
プログラミングというと、パソコンと向き合って一人でカタカタ作業しているイメージかもしれません。
でも、実際の現場では、同期や先輩に聞かないといけません。
プログラミングスキルを上げるには、数学よりも、周りに質問したり、協力したりしてもらえる力が必要だということができます。
また、実際の仕事場では、個人で開発することは珍しく、複数のメンバーとチームで作業することになります。
そのため、意思疎通がうまくできないと作業が進まないため、コミュニケーション能力は必須と言えます。
さいごに







こちらの記事もオススメ!
2020.08.04エンジニアの働き方 特集社員としての働き方社員としてのエンジニアの働き方とは?ライトコードのエンジニアはどんな働き方をしてるのか、まとめたいと...
2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...
ライトコードでは、エンジニアを積極採用中!
ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。
採用情報へ

「好きを仕事にするエンジニア集団」の(株)ライトコードです! ライトコードは、福岡、東京、大阪、名古屋の4拠点で事業展開するIT企業です。 現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。 いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。 システム開発依頼・お見積もり大歓迎! また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」を積極採用中です! インターンや新卒採用も行っております。 以下よりご応募をお待ちしております! https://rightcode.co.jp/recruit