Call of Venture ベンチャーの呼び声

スタートアップ企業で働く1人の若者。テック系スタートアップブログ。

プログラミング学習は、コア概念の理解と、ただの暗記を分けたほうがいい。

そうすると捗りそうだなぁと思ったので、文字に起こしておきます。

想定読者は自社のインターン生などプログラミング学習者です。現役エンジニアの方は読んでも面白くないと思いますので予め。

 

まとめるとこうです。

 

よくみる流れとその問題

Rubyの文法をドットインストールでやったら、早速Railsでサイトを作ってみよう!」というのがよくあるパターンかと思います。

これだと、動くものができるのでモチベーションを維持しやすいし、なんにせよ完成に近づくのでなかなかいいアプローチだと思います。

しかし一方で、動くものは出来たけど、なぜ動くのかわからないという状態になりがちです。理解して作っているわけではなく、コピペしたコードがたまたま動いたとか、コピペしたコードを真似して書いたコードがたまたま動いたとかの積み重ねにすぎないからです。

 

繰り返しますが、僕は「とりあえず作ってみよう!」は、よいアプローチだと思っています。ただ、いつかはそこから抜けだして効率的に学ぶ必要があると思っています。

 

効率的に学ぶには

そこで出てくるのが、冒頭の手法です。

 

たとえばプログラミングが初心者がRubyRailsを触るなら、オブジェクト指向、オブジェクト、クラス、インスタンスカプセル化、隠蔽化、MVCといった概念が登場します。これらを全く無視してチュートリアルや検索&コピペを駆使するだけでも、サービスの立ち上げは可能です。

しかし、なぜこうしたら動くのか、なぜこうなっているのか、理解することができません。結局はそれらの概念を理解しなければ大きく前に進むことはないのです。

それの概念がどういうものなのか、どのような経緯で生まれたのか、どのように役立つのかを知ることで、

そうすると、「こういうことが出来そうだな」「こう書くほうがよさそうだな」という日常業務レベルでも役に立ちますし、同じ概念を用いた別のモノを素早く理解できるようになると思います。

 

コア概念さえ理解できれば、あとはただ暗記すれば良いだけです。

効率よく大量の情報をインプットするだけなので、書籍を計画的にすすめたり、エントリを漁ったりすればよいです。

 

まずコア概念。つぎに暗記。

手を動かさないと概念が理解できないということはもちろんあると思いますが、理想としてはこの順番だということを念頭に置くと、良いのではと思います。