【Aidemyを2週するな。】プロダクトを作ろう。

お久しぶりです。アイデミー石川です。最近引っ越しでバタバタし、noteの更新をサボっていましたが、落ち着いて参りました。私の自宅もオフィスも本郷7丁目になりましたので、ぜひ本郷の近くにご来訪の際は、ご連絡ください!

さて、本日は以下のツイートが反響大きかったので、ブログにまとめようと思います。

TJOさんなどにコメントいただきました。

以上を踏まえ、今回は以下のようなアジェンダでnoteをまとめていきます。

1. 技術の正しい理解より、技術の利用方法を考えよ。
2. プロのエンジニアでも、わからないことだらけ。
3. Aidemyを1週したら、プロダクトを作れ!

タイトルはキャッチーなものにしてみましたが、このブログを読んで頂ければ、その真意をご理解いただけと思います。

1. 技術の正しい理解より、技術の利用方法を考えよ。

さて、新しい学習を始める時、体系的な理解から始める方が多いでしょう。英語を学ぶとき、まずはbe動詞から学び初め、一般動詞、過去形・現在形など、スモールステップで知識を積み上げていくようなイメージです。そして、演習問題などを解きながら、同じ知識を反復学習し、知識を定着させていきます。

英語と同じように、プログラミングも体系的に理解しようとする人も多いとです。まずはprint()関数から初めて、条件分岐・繰り返しなどを押さえていくイメージです。実際、体系的に理解することで、一通りの知識を抜けもれなく抑えられるので、非常に良い方法だと思います。

しかし、プログラミングは「モノづくり」を行うための手段だと認識することが重要です。体系的に学ぶことを重視するより、「モノづくり」を行い、そこで困難に直面したら、教材を再度振り返り、また学び直せば良いのです。プログラミング技術そのものを正しく理解しようとすると、膨大な時間がかかります。そのため、「何故そうなるのか?」を突き詰めて考えるより、「こうしたら(理由はうまくいかないが)うまくいくようだ」と、プログラミング学習では経験則を蓄積していくことが重要になるのです。

少し話はズレますが、工学部に入学すると、「解析解」と「数値解」という考え方を学びます。解析解とは、誤差の無いピッタリの解が計算できる時の解です。高校までの学習ではこの解析解を求める問題がほとんどを占めます。解析解を解くためには、体系的に整理され、知識の積み上げを学ぶことが一番重要だと思います。

しかし、大学の数学で解析解を求めることはぐっと少なくなるのです。特に実学に近い学問領域だと、現象が複雑すぎて解析的に解が定まることは稀だからです。NP困難な問題に対してどう近似値を求めるか、ルンゲ=クッタ法で微分方程式の近似解を得たりするなど、こうした数値解を導出する内容を、工学部生であればまず最初に学びます。

解析解の求め方は、体系的な知識の積み上げの上に計算できます。しかし、数値解の求め方は、試行錯誤の積み上げの上に発見されたものも多いのです。プログラミングという技術は、試行錯誤をベースに成り立っており、後者の性格が強いです。体系的に学ぶ、という思想と合致しないのです。

高校生までの物事の学び方は、正しく理論を理解し、計算ドリルを解くように、少しずつステップアップをしていくことが重要、と教わってきたケースが多いです。しかし、プログラミング学習の場合、そういった考え方はunlearningして、理論よりも実践、根本原理を追い求めるより、実利(モノづくり)を追い求めたほうがいい、と考え方をスイッチさせるのが良いでしょう。

2. プロのエンジニアでも、わからないことだらけ。

実は、プロのエンジニアであっても、原因不明のエラーに悩まされたりすることが多いです。もちろん、その際、原因を探って解決方法を模索することもあります。しかし、そもそもその原因がわからず、もしくはプログラミング言語や利用しているライブラリ・フレームワークそのもののバグが内在しており、対処療法的に解決策を実装することが多々あります。

プログラミング初心者は、こうした原因不明のエラーが出た時の耐性がついていないでしょう。エラーが出ると途端にやる気がなくなるのは、非常に共感します。しかし、モノづくりとは、試行錯誤の繰り返しであり、こうしたエラーは永遠に付きまといます。プログラミング初心者はエラーが出てきた時、「自分が体系的に学べてないから原因がわからない」と思いがちですが、そのようなケースは稀です。プロであっても、同様のエラーに直面することは多々あり、その時は、原因究明能力より、どう解決できるかの力が試されているのです。

3. Aidemyを1週したら、プロダクトを作れ!

以上の理由から、私はプログラミングを体系的に学ぶことに違和感を覚えており、Aidemyを2週、3週するよりも、プロダクト作りに注力したほうがいいと思います。ここでのプロダクトとは、「実際にデータを解析してみてブログにまとめる」「機械学習関連のアプリ制作を行う」などが該当します。

プログラミング学習している方で、学習ブログを書いている方も多いでしょう。しかし、勉強のブログを残すより、こういったデータを解析したら、こういった結果が出ました、というブログのほうが注目度が高まります

もちろん、ブログやアプリを作る過程で、Aidemyで習わなかった困難にも直面すると思います。ただ、それを解決できたかどうかが、優秀なエンジニアかどうかを決めるのです。解決までの試行錯誤の過程が、Aidemyの教材の数十倍価値ある、偽りのない自分の実力・一生忘れることのない血肉になります。

手前味噌ですが、Aidemyでは以下のようなブログコンテストを行っています。上記のように「実際のデータに触ってほしい」という目的ただ一つです。ブログコンテストには #Aidemynote をつけてツイートするだけでエントリーでき、優勝賞金で7.7万円、さらに起業家志望の方向けにVCへのプレゼンチャンスがあります。せっかくプログラミングを学習し、世界を変える力をつけているのです。ただ学習するだけではなく、ブログに結果を残し、未来へ羽ばたくチャンスにしてみませんか?

Aidemyは人材を募集しています!

Aidemyは「社会とテクノロジーをつなぐ」ことをミッションに、AI特化型のプログラミング学習・転職支援・技術支援サービスを提供する東大発ベンチャー企業で、オフィスが東大本郷構内にあります。

フルタイムの幹部候補、及び休学中の大学生はまずは10分間電話でMTGしましょう。希望者は、TwitterでDMください!アルバイトでのコミットを希望している方はAidemyインターン選抜説明会にエントリーください。皆様とお話できるのを楽しみにしております。


この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

62

#エンジニア 系記事まとめ

noteに投稿されたエンジニア系の記事のまとめ。コーディングTIPSよりは、考察や意見などを中心に。
2つのマガジンに含まれています

コメント1件

できれば週(week)は周(round)に変えてほしい感じがします。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。