ボクココ

個人開発に関するテックブログ

高校数学の教科書 上 を読み終えて

今年の1月に堂々と宣言した数学を学び直すということが、今も細々と続いている。

Why 数学

なぜ数学を勉強し始めたのか。これは今年の自分のテーマである「こだわり」を突き詰めたいと考えているからだ。

※ 以下、この記事における「文系プログラマー」とは数学を勉強していない人のことを指す。

流行りのWebサイトとかスマホアプリとかは誰でも(文系でも)簡単に作れる。作り方を調べながら作ればいいだけだ。ググれば答えが出てくる。最近はそれらを開発しやすくする様々なフレームワークが出回っていて、それらを使えば知識がなくても作れる。それだけでプログラマーと名乗れる時代だ。

さて、そんな文系プログラマーがプログラミングに慣れてきたとして、自分は彼らと差別化できるだろうか?とふと考えた。 確かに自分のレベルになるにはそれなりの経験や時間が必要で、そう簡単には追いつかれないとは思っている。ただ今後どんどん新しい技術やフレームワークが出てくるたびに自分も学びなおさなければプログラミングスキルだけを学んだプログラマーのほうが優れたプログラマーとなる。こればかりはもう新しいものが出たら同じスタートラインでどこまでいけるかの争いとなる。

そんな歩み方もありだろう。常に新しいフレームワークを追いかけてそれが技術を磨くことだと思うこと。それはまさに以前の自分だ。

しかし何か一つを突き詰めていった時、それはアプリ開発でも技術鍛錬でも、突き当たって挫折する時がある。あらゆるプログラミングにおいて数学が目の前に立ちはだかるのだ。

例えばアプリの例を見てみよう。単純なアプリなら作れる。けどもGithubにもないような独自アニメーションなどのUIを作りたくなった時、その時点で壁にぶち当たるだろう。どういった速度でどの方向にどのくらい回転させてどの位置に配置するのか。それらすべて自分で計算して表示させる必要がある。

他にもゲーム、広告、ビッグデータ、画像・音声解析、データ圧縮、セキュリティーなどあらゆる方面で数学がベースとなっている。数学を使わなくても仕事はできると言う方は、それはクリエイティビティーのない仕事をやっているだけに過ぎないと思っている。

この領域は文系プログラマーが踏み入る事のできない神聖な領域だ。数学を理解し、それをテクノロジーに応用することができれば、その時点で真似されにくい確固たるサービスを作ることができる。それこそがプログラマーにとっての"こだわりのあるサービス"だ。数学はあらゆる問題解決の手助けになるものだと思っている。

以上の理由で数学を再勉強することにした。

実際に勉強し始めてみて

2ヶ月かけて本書を読み終えた。途中何度も挫折しかけたが、「なぜ数学をやるのか」が明確になっていたのでモチベーションを保つことができた。それがなければとっくに捨てていただろう。

読みながら問題を解いてみて、「あ、この知識はプログラミングのここに役立つな」とかそういった気づきが得られる。またプログラミングにおいて実現が難しそうな局面に入った時、それをなんとか解決させようという問題解決能力が自然と培われた気がする。あとは常に「この公式はなぜこうなるのか」が本書で解説されているため、公式を忘れたとしても自分で導き出せる能力が身についた。常に"なぜそうなるのか"を考えられるようになったと感じている。

まだ基本的な数学を学んでいるだけなので、すぐにプログラミングに役立つという場面はなかなか出会うことはできていないが、今後より実践的な内容(統計など)を学べば自ずとビジネスに応用できる力が身についていると信じて今は頑張っている。

この2ヶ月間、今まで習慣だったプログラミングの勉強を投げ捨ててやってきたけども、これが決して無駄ではなかったと言える日が間違いなく来ることを信じて, これから下巻も読み始めよう。