フレームワークの勉強方法を考えてみる

PHPのLaravelというフレームワークを学習したいとして、学習手順について考えてみたいと思います。
まず、大きくわけて以下のような考え方があると思います。

1. 必要な箇所のみWebで調べて、実装する
2. ドットインストールなど、学習サイトで基礎を勉強する
3. フレームワークの本を買って、本に沿って勉強する
4. フレームワークの勉強会に参加する
5. フレームワークの公式サイトから、ドキュメントを全部読む
6. 自分自身でフレームワークを触りながら、プロダクトを作って勉強する
7. フレームワークのgithub issuesを読む
8. フレームワークのossにコミットする

1. 必要な箇所のみWebで調べて、実装する
Googleで、調べたい内容のキーワードで検索をして、上位表示されているページの記事を複数読んで、ローカルでテストして動かします。
基本はこれの繰り返しで良いと思います。何故なら、最も効率的に時間を使えるから。
例えば、laravelのログイン機能の実装を調べたいとすれば、「laravel ログイン機能」と入力すれば、関連記事がずらずらと表示されます。1位表示されるということは、それだけ価値のある情報とみなされているので、素直にそれを読めばいいと思います。実際に、殆どこれで解決できるような気がします。

「laravel ログイン機能」で1位表示されている機能
https://www.ritolab.com/entry/51

2. ドットインストールなど、学習サイトで基礎を勉強する
フレームワークをゼロから学ぶ必要がある場合は、ドットインストールのレッスンがおススメです。フレームワークの基本的な機能を説明しているので、短時間で基礎を一通り学べます。
▽ドットインストール
https://dotinstall.com/
▽Laravel5.5
https://dotinstall.com/lessons/basic_laravel_v2
ただし、注意が必要なのは、レッスンの代表の田口元がマンパワーでつくってるので、内容が古いということがあります。Laravelは最新版が5.7ですが、まだ5.5なので、最新更新日を注意しなければなりません。また、フレームワークでも、phpとrailsぐらいしかなく、pythonやjavaなどその他の言語のコンテンツはあまりないので、その辺を勉強したい場合は、ドットインストールにはありません。
因みに私は、4,380レッスン完了して、全受講者中9位です。一時期、2位でした。プレミアム会員は月額980円なので費用対効果はいいと思います。

3. フレームワークの本を買って、本に沿って勉強する
本屋で、幾つか見て、自分に合いそうな本を買って勉強する方法です。私の場合、昔はこれが主流でしたが、最近はほとんど本は買いません。なぜなら、(1)情報が最新でない、(2)Webの方が見やすい、(3)持ち運びが重いから。本の出版だと、やはり少し前の情報なんですね。なので、お金だして買った割に、情報が古いとちょっとがっかりします。また、紙よりもwebの方が見やすい・使いやすいんですね。ソースコードなのどは、やはり、Web上で見た方がやりやすい。そして、なにより、持ち運びが重い。自宅よりも外で作業している時間の方が長いので、軽い方がいいです。

ただし、webで勉強したことを本屋で確認する、というのはよくやってます。

4. フレームワークの勉強会に参加する
LTの講師は、大体第一線のエンジニアが立つので、どれ位の知識が必要なのか、という意味では参考になりますが、これは、微妙ですね。なぜなら、勉強会に出たからといって、コーディングのスキルはあがらないから。
単純に、他社のオフィスに行けるのが楽しい、というのもあり、私は、一応、connpassとtechplayはチェックしていますが、そんなに勉強会には時間を割いていません。
https://connpass.com/
https://techplay.jp/
余裕ができたら、もっと勉強会に参加したいと思っています。

5. フレームワークの公式サイトから、ドキュメントを全部読む
これは凄いおススメ。teratailで質問すると、よく、公式のドキュメントを全部読め、と返ってくるが、周りのエンジニアでもスーパーエンジニアのような人は、何か課題があった時には、関連する記事を直ぐに公式のドキュメントをひっぱってくる。また、自分でカスタマイズする際にも、スキルのある人は、公式ドキュメントを良く読んでいる印象があります。
laravelのドキュメント
https://readouble.com/laravel/
難点としては、読むのに骨がおれる、時間がかかり大変、ということです。直接関係なさそうな記事も読まなければいけないため、長時間読み続けると、モチベーションが段々下がってきます。なので、細切れで学ぶなど工夫が必要かも。これは今後もやっていきたいですね。

6. 自分自身でフレームワークを触りながら、プロダクトを作って勉強する
これは最も重要かもしれません。自分でローカルで環境を作って、動かしながら、理解していく事が最重要だと思います。
ただし、これは、前工程に時間がかかる、という難点があります。
フレームワークを触る前に、つくるプロダクトの基本設計、詳細設計、画面設計、画面遷移、フロント部分などある程度つくっておかなければならないという点です。フレームワークの簡単な動作なら、別にデフォルトをインストールして基本動作を確認すれば良いですが、実践的な学習となると、それなりの設計がされたプロダクトでないと意味ありません。そのため、設計からキチンとやっていく必要があり、時間がかかる覚悟をしなければなりません。

7. フレームワークのgithub issuesを読む
最新の情報は、公式ではなく、githubでやりとりされているので、githubを見る癖をつけた方がいいですね。
https://github.com/laravel/laravel

8. フレームワークのossにコミットする
ここまでくれば、特にいうことはないでしょう。というか、このレベルまで早くいきたい。

ということで、つらつらと書いてきましたが、纏めると、効率的な学習法があるかもしれませんが、きちんとやるのであればフレームワークの学習には時間がかかる、ということでしょうか。
おススメの方法があったら教えてください。

お問い合わせ