数学が赤点ばっかりだった私がエンジニアになれた理由

programming-basic-learning

私は学生時代に数学が大嫌いでした。

 

毎回の期末テストで赤点ばかりをとっていて、「一生理系の仕事はしないだろうなあ」と思っていました。もちろんエンジニアになろう、なんて思いもしなかったので、いまWebエンジニアとして毎日楽しく仕事をしているのが信じられないですね…。

 

エンジニアの仕事に基本的に数学の知識はいりません。もちろん理系の学部をでている必要もありません。努力と、それなりに時間を投下すれば誰でもなれる仕事だと思っています。向き・不向きはありますが、プログラミング学習をしてみて、楽しいと思えれば、エンジニアの仕事を検討してみるのがいいと思います。

 

今回は、どうして数学嫌いだった私がエンジニアになれたのか?について解説していきます。これからエンジニアを目指す方、プログラミング学習中の方は「エンジニアの仕事に対する苦手意識」をなくしてもらえればと思います。

 

プログラミングは基本的に「文章」

programming-basic-learning

どんなに難しいコードも、超シンプルなコードもすべては 0 と 1 でなりたっています。それを人の目に見える文章に起こしたものが「プログラミング言語」です。そして、基本的にプログラミングでやっていることは単純です。

 

  1. データを入力する
  2. データを加工する
  3. データを出力する

 

これをプログラミング言語で表現するだけです。なので、基本的には「文法」がわかればコードを書くことは簡単です。難しそうに見えるのは、その文法や文章が一見わかりにくいコードとして表現されているからだと思います。

 

読めない…を克服するために

エンジニアの仕事を初めた当初は、先輩の書くコードが全く読めず、1日中PCとにらめっこをしていました。「読めない…このコードはなにをしているんだろう…」と悩んでいると、先輩が気にかけてくれて、ヒントを出してくれる。そしてそれを調べてはまた悩んで…を何日も繰り返していました。

 

「コードが読めない」は当たり前です。最初は誰しもプログラミング言語を理解することは出来ません。なので、調べてみます。一つ一つの文法をググって、それが何をしているのか?を理解します。それを繰り返して、一つの「文章」であるコードのかたまりが何をしているのか?を理解し続けていきます。そうすると、いつのまにか当たり前のようにコードを読むことができるようになります。

 

数学的知識は「基本的に」使わない

no-speech

プログラミングをするなかで、数学の知識を使うことはここ1年で一度もありませんでした。もちろん、四則演算やメモリの計算、IOPSの計測などにおいて「算数」をすることはありましたが、微分積分など数学的知識を使うことは一度もなかったです。

 

これは会社、業界、サービスによってまちまちですが、殆どの場合において数学が必要となることはありません。さらに、もし数学の知識が必要な場面があったとしても、学校のテストのようにその場ですぐに正解が求められるわけではありません。自分でググって、正解を探ることができるので、学校で数学に苦しめられて私でもやってこれたのかもしれません。

 

それでも数学が得意なことはプラス!

理系学部卒、数学が得意なエンジニアの人はやはりプログラミングも得意で、詳しい印象があります。また、ちょっとした場面で数学的知識があることで、人より断然早く対応できるという場面がありました。

 

なので、「基本的に」数学は使いませんが、やはり使えるにこしたことはない、というのが実際のところでしょうか。

 

エンジニアの仕事の8割は調べ物

searching

エンジニアの仕事のうち、実際にコードを書いている時間は全体のうち2割程度と言われています。それ以外の時間は調べ物をしたり、考え事をしながら過ごしています。なので、数学はもちろん、わからないことがあっても、調べて対応することができます。

 

むしろ、エンジニアの仕事のうち8割近くは「すぐには分からないこと」なので大変です。日本語はもちろん、英語のドキュメントやWebサイトの情報を翻訳しながら読まないといけません。そういう点では、数学よりも英語が読める、書けるほうがエンジニアにとっては有益なスキルだと思います。

 

チームに相談する

chatting

エンジニアの多くはチームで開発を進めます。私の場合も先輩エンジニア数名と一緒に仕事をしています。多くの場合、ジュニアエンジニア(経験年数が浅いエンジニア)は分からないことがあれば、先輩に聞きに行きます。たいていの職場では快く答えてくれたり、ヒントを出しつつサポートしてくれます。なので、分からないことがあっても、なんとか仕事をやっていくことができています…!

 

厳しい職場は避けよう

未経験でエンジニアに就職する場合、SESなどの孤立しやすい環境には注意しましょう。はじめてのエンジニアの職場環境が辛いと、それ以降のキャリアにも大きく影響します。

 

自社開発やWeb系企業であれば、同じチームで開発を進めるため、チーム感をもって仕事をすることができるのが良い点ですね。私もいまは自社開発の企業に勤めていますが、ジュニアエンジニアの私を育てよう、という空気があるおかげで、いい環境で勉強させてもらっています。

 

数学より勉強しておくべきことは…

analyize-image

 

プログラミング言語やその周辺技術について学習することは一番大事です。その次に大事なことは英語と、コンピュータサイエンスの分野だと思っています。

 

GoogleやAmazonなどの世界的IT企業では、コンピュータサイエンスの学部や博士課程卒業の人材を多くとっています。それは、彼らが開発する技術を大きく支える知識を持っているためです。日本においても同様で、近年コンピュータサイエンスの学部がとても人気になってきています。

 

社会人になって学べる?

でも、コンピュータサイエンスといってもなかなか勉強を始めるのは難しいのが現実です。範囲も広く、また専門性が高いのでとっつきづらいですよね。なので、まずはいま自分が学習している言語や技術を構成しているものについて調べていくのがいいと思います。そこから派生して、コンピュータサイエンスの分野に近づいていく、というのが理想的な学習ロードマップですね。

 

最後に

これまで説明したように、エンジニアになるために数学を学ぶ必要は一切ありません。むしろ、英語やコンピュータサイエンスなどの分野を学びつつ、プログラミング学習を進めるほうが、圧倒的に成長スピードは早いと思っています。

 

もしいまプログラミング学習に詰まっている、という方は勉強方法が間違っているかもしれません。正しい学習方法については、プロに聞きながら進めるのが一番です。

 

Webエンジニア100名以上にインタビューした結果、いま一番人気のプログラミングスクールについてまとめています。いまプログラミングスクールを検討中の方はぜひこちらを参考にしてみてくださいね!

 

人気記事【未経験あり】いまWEBエンジニアに人気転職サイト4選