あなたは、「自分は数学ができないけど、プログラマーになれるか?」と疑問を感じていませんか?
そこで今回は、現役プログラマーであるボクが
- プログラマーに数学は必要か?
- プログラマーに真に必要な能力とは何か?
- もし数学ができないと、プログラマーにとってどんなマイナスがあるか?
この3つを話していきます。
プログラマーに数学が必要か?
結論から言うと、「あなたがどのようなプログラマーになりたいかで数学が必要かが変わってくるが、多くのプログラマーは必要ではない」と言えます。
一言でプログラマーと言っても、野球にピッチャーやセカンドと言う役割分担がされているように、プログラマーも専門領域が分かれており、その専門領域によって数学の必要性が違ってきます。
例えば、ものづくりや科学の数値計算を行うシステムを作る会社に入れば、数学や物理の理解は必須だし、最近流行している人工知能やAIを作りたい場合も、線型代数学や解析学、統計学と言った分野の数学が必須になります。
逆にWEB開発として給与システムやスケジュール管理アプリを作るとなれば、簡単な足し算引き算を理解していれば十分です。なので、数学に自身がない兄貴や姉貴は自然とWEB開発が専門のプログラマーを目指すことになるでしょう。
HTML/CSSはプログラミング言語の中では相当簡単な部類。
数学できなくてもできる。
プログラミングというよりは、本当に1つの言語として覚えるようなもの。
しかもWeb系の企業は星の数ほどあるので仕事に困らないですし、辞めた後も独立して生計を立てやすいスキルになる。
— じゅうきち@IT転職コンサル (@vWLppvuW4U5Y9dd) September 14, 2020
プログラマーにとって数学よりも重要なこととは?
もちろんプログラマーは数学ができた方が良いですが、プログラマーに真に必要な能力は
- コミュニケーション能力
- 問題解決能力
この2つです。
よくプログラマーに仕事はモクモクとプログラミングをすることだと思われていますが、実際は同僚やお客様と打ち合わせや議論をする事も多く、場合によっては「1日中会議でコード書いていない」と言う日もあるぐらいです。
なので、ただプログラミングをすれば良いわけではなく、
- どのようなプログラムを自分が書いているか
- 今の案件で困っている事、つまづいている事はどこか
- 自分の作業を進めるために、同僚・お客様に依頼する
などの様に、仕事に関わっている人達と意思疎通を測って適切に仕事を進めていく必要があります。
もちろん、他職種に比べると人とコミュニケーションを取る機会が少ないですが、ビジネスとしてやる以上は「プログラミングよりもコミュニケーションが重要」とまであります。
数学ができないプログラマーの年収はどれくらい?
実は数学ができるのとプログラマーとしての年収はあまり関係がなく、結局は「金払いが良い企業に所属しているか?」と言う1点で決まったりします。
それにプログラマーと他の職種との違いとして、「1、2年経験を積んで転職をすれば割と年収が上がりやすい」と言う傾向があるため、年収を上げるのに特化する場合は数学よりも実務経験、場合によっては資格を取る方が重要です。(資格については、企業によって評価が異なる。)
プログラマーの中には、インフラエンジニアと呼ばれるwebサービスを陰から支えているプログラマーがいますが、実務経験&いくつかの資格を持っていれば、年収1000万を目指す事も可能です。
贅沢はしないけどカツカツな生活はしたくない人はとりあえず
・CCNP(いけるならCCNE)
・LPIC Level3
・応用情報以上のIPA資格
・英語力
この辺のスキルつけておけばインフラエンジニアとして年収600~1千万近くは稼げるよ
そのスキルレベルで転職サイト登録してたら上記年収でのオファーが殺到した— Yuu | 美容&筋肉系ITエンジニア (@yuu_fitnesslife) September 7, 2020
プログラマーが数学ができないとマイナス要素はあるの?
上記の説明を聞くと「別に数学ができなくてもプログラマーになれるじゃん」と思うかもしれませんが、マイナス要素としては「数学ができないとプログラミングの深い理解は得られない」と言う事です。
例えば、プログラミングでは「プログラムの処理が遅いから高速化したい」と言うケースは多くありますが、その時に「どれくらい速度を速くすれば良いか?」「適切な方法はあるのか?」などを考えていく必要があります。
これらは数学がなくてもある程度はできますが、極限まで速度を速くしたいとなった場合、数学的にプログラムを解析していく必要があり、そこに数学ができるプログラマーとできないプログラマーの差が生まれてきます。
例えば、数学できれば下記のツイートみたいに色々と考えながらプログラミングができるから面白いし、可能性も広がるよと言うことです。(物理も多少入っていますが)
流体だと空間に関して移流項や分散項などの奇数階微分が解きづらいからアルゴリズムを考えるのが楽しいけど、機械学習みたいな評価関数の最適化のためのアルゴリズムを考えるのも楽しそう…。いや大変か。
— にしるさん (@nishiru3) September 14, 2020
結論
数学がなくてもプログラマーにはなれるし、頑張り次第では年収も上がる。ただし、数学ができた方が世界も広がるし、何よりも楽しいよと言うことです。