プログラミングというと、未経験者からすると難しそうなイメージを持つ人がいます。
特に義務教育の科目である数学、英語とリンクしているというイメージがありそうです。
ということで、数学力と英語力は必要なのか?ということについて、簡単に書いてみます。
【数学力は必要か?】
→結論:基本的にはなくても大丈夫。ただし競技プログラミングや、機械学習などAI分野に取り組むなら高度な数学力が必要
特に文系からすると「理系なので畑違い」といって勝手に弾いてしまう、かつての私のような人がいます。
コンピュータの行う演算は完全に数学の世界ですが、人間の書くプログラムは、数学ができなくても特に支障はなく扱えるものです。
サービスの基本的な機能である、データの登録・更新・削除をつくるにあたり、何かの数学的知識が必要になるというのはあまり想定されません。
ただし、競技プログラミングをするならそれなりに数学を勉強する必要があるようです。あるようですというのは私はやっていないからですが、微分・積分、確率、漸化式、離散数学などなどの知識が求められるようです。
競プロは数学が得意な人に極めて相性が良いと言われています。
また、AI分野でも高度な数学力が求められるようです。私の後輩に機械学習に強い関心を寄せている東大出身者がいます。
彼は中でも数学が得意で、受験時の最大の武器にしていたようですが、その彼も機械学習を学ぶに当たり、数学の勉強をしたいと言っていました。そういう世界なんだなー、って感じでした(他人事)
補足的に言うと、数学が得意な人はプログラミング未経験で始めても周りに比べて理解が早い気がしますね。
できなくても致命的に困るわけではないけど、できた方が明らかにプラスにはなります。
【英語力は必要か?】
→結論:基本的にはなくても大丈夫。ただし最先端のトレンドやニッチなコンテンツを学ぶならそれなりに高い英語力が必要。
基本的にほぼ全てのソースコードはアルファベットで書かれるものであり、英単語に溢れています。そのせいで英語の知識がないと書けない、と思い込んでいる方もいるようですが、ソースコードに書く英単語はせいぜい中学レベルですし、ある程度単語のパターンも決まっています。
プログラミング学習においても日本語教材が充実しており、基本的なレベルの学習で困ることはほぼないです。
エラーにぶち当たった時に調べ物で英語のQAサイトを見ることはありますが、全文精読する必要なんて全くありません。要点っぽいところだけ読んでこんな感じかな〜って感じです。
綺麗に訳す必要はなく、書かれている意味さえわかれば良いので、Google翻訳でも対応可能です。
ただ、やっぱりITの中心はアメリカです。情報量では英語が圧倒的です。
また、トレンドや最新技術も基本的にアメリカ発であることが多く、故に鮮度の高い情報に触れるためには英語ができる必要があります。
できなくても致命的に困るわけではないけど、できた方が明らかにプラスにはなります。
--
と、このように、数学力にせよ英語力にせよ、なくてもプログラミング自体のハードルにはならないですが、領域やレベル次第では高いスキルが必要になってくる感じです。
数学力と英語力はエンジニアスキルの中核を占めるものではないのですが、これに限らずエンジニア間のスキル格差って非常に大きいと思います。ピンキリ。
できる人はめちゃくちゃできるし、できない人はビックリするくらいできない、そういう業界な気がします。