オンライン学習というものを振り返って
最近UdemyでPython、Rubyと2つのコースを受講しました。
- Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする | Udemy
- フルスタックエンジニアが教える 即戦力Railsエンジニア養成講座 | Udemy
初めに断っておきますが私はUdemyの回し者ではないしここのリンクをクリックしてコースを購入しても私に実入りは一切ありません。またここに挙げた2コースはいずれも基本からしっかりと取り扱っており、内容・講師共に非常に優れたコースであるということを断言しておきます。
さて。
Pythonは実際の業務で扱っていることもあり終始スムーズに理解できた印象で今後活用できそうなレベルまで到達できたかなという実感があります。一方のRubyですが、構文からMVCの基本からRailsの扱いに至るまで何となくのイメージはできたもののいざこれを自分だけでやれ、と言われるとかなり窮するくらいには理解が甘い部分が残りました。
その違いもそのはずで、これでもPythonに関しては2年はやっているし後輩にも教えていますから基本はある程度わきまえているつもりです。それに比べRubyは puts 'Hello, World!'
がこれからというレベルでしたから理解度に差があるのはある意味当たり前といえるわけです。
それはそれとしてこの2コース(主にRuby on Railsの方)を振り返って幾つか思うところがありました。今回はそれについて連々と書いていこうかなと思います。
MVCはムズかった
WPFをよく使う手前MVVMで似たような考え方は知っていましたがやはりビジネスロジックが主体となるフレームワークとWebアプリケーションのフレームワークでは相当に勝手が異なりました。
具体的にいうと今回はほぼCUIでコーディングをしていた関係でほとんどデバッガを動かさなかったため内部の動き(ここにリクエストが来たらこのロジックに飛ばすみたいな)が把握しづらかったことが一番大きいかなと思います。
ほぼ「言われた通りに動かす」だけだった
考えて工夫できる知識と時間がなかったこともあってRubyコースでは特に言われるがままコーディングしていた気がします。
結果「深くは理解できていないけど、とりあえず動くものができたから、今後はこれを参考にして別のアプリケーションを作ろう」という方向に意識が回って文字通り理解を深めることができなかったかな、という印象。特に rails
コマンド関連は docker-compose
と組み合わさっていたこともあってほとんど「ナンダコレハ」状態でした。
HTMLソースはほとんど全部コピペだった
これはRuby on Railsを学習するという主旨から外れるということで講師の意図的な考えでそうしたのだと思いますが、Webのフロント、要するにViewの部分に関してはほぼGitHubからのコピペに終始していました。
私はかつて自前でゴリゴリHTMLやらCSSを書いていた経緯があるのでパッと見で分かる範囲も多かったのですが、これをまったくの初心者が受講したら果たしてどうだったかなと思いました。
知り合いのサーバーエンジニアがよく「フロントが書ける人がいない」とボヤいていますが、巷のオンライン学習もこのような感じならそれは書けなくても致し方ないのかもしれません。かつては誰もが読み書きできていたがために段々その習得がお座なりになっていき、逆にその道の開発者が不足するという。コボラーか。
「できた気になる」危険性があると思った
突き詰めれば今回私が得るべき教訓はこれです。オンライン学習は本を買って自分で四苦八苦して学ぶより遥かに浅い理解で終わってしまう可能性があると思いました。
以前、こんな記事を見かけました。
私はこの中の
言われた通りに進めるだけでは、プログラミングの技術も知識も身に付かない
という一言がかなり刺さりました。
私は手っ取り早く効率よく新しい言語やフレームワークを習得したくてオンライン学習というものに手を出しました。
が、少なくともこの世界において「ラクして覚える」なんてインチキは通用しなかったんです。
スキルを習得する最短の道はああでもない、こうでもないと四苦八苦しながらようやっとクソダサい成果物を1個仕上げることなんです。最初っからRailsでMVCでBootstrapでログイン認証も実装して、しかもそれをコンテナで立ち上げるなんて小賢しいことをやるべきではなかったんですね。
まぁ、この辺に関しては人それぞれご意見あるかと思いますが、何だかんだあって私個人としては「人を育てるには実務ありき」なのかなという結論に至っております、今日この頃です。