見出し画像

Laravelの学習は本1冊か動画1本で後は独り立ちしなければならない現状について

はじめに
私はフレームワークはRuby On RailsとLaravelしか勉強したことのないペーペーあまちゃんのプログラミング学習歴8ヶ月の弱小エンジニアです。
さて、そんな弱小エンジニアが独学でLaravelを学習しようと考えた時に壁に当たるのは「現在の実力にあった学習方法を見つける事」です。

1.前提条件(PHPはちょっと書ける人)

PHPのフレームワークであるLaravelを学習するにあたり、必要不可欠なのがほんの少しだけでもPHPを書けるという前提条件を必要とします。もしこの前提条件をクリアできていないのであればProgateと言うプログラミング学習サービスで一通り学習してからLaravelに挑戦する事をおすすめします。

2.第一学習方法

それでは第一学習方法の選択から入ります。
私が実施した学習方法は2つです。

1.書籍で学習
最もポピュラーな学習方法になります。
もしあなたが書籍での学習経験があればこの学習方法で問題ありません。既にご存知かとは思いますが下記に記載の青い学習教材がおすすめです。

Laravelを使って簡単なアプリケーションを作成する手順を紹介してくれるので写経するだけで実際にwebアプリを作成することができます。

2.動画で学習
こちらは初学者向けにとても取っ付き易い学習方法です。
事実、私も新しい学習を始める時には動画学習をしていました。

おすすめは3つ
・ドットインストール
・Udemy
・Schoo

これらは上から順に試して見るのはいかがでしょうか?
諸説ありますがドットインストールは外れなしの学習教材で、UdemyやSchooは教材を選ぶ能力が必要となりますがとてもコアで優秀な教材がそろっています。

3.第二学習に悩む…

書籍や動画学習を終えると急激にぶつかる障壁として「次に何をすればいいのだろう」と感じるものです。事実私も痛感しておりました。

・実際にあるwebサービスを真似る
・自作のプロダクトを作成する

この2つが最も有効な方法だと思います。
私はこの場合、実際にあるwebサービスを真似る事をおすすめします。

→気になるサービスを真似る


4.どうやって真似るの??

・DBを設計する(MVCのModel)
実際にサービスを利用してみて必要と思われる情報をまとめてTableとcolumnを設計してみましょう。私がNewsPicksのサービスを真似して作成したときはまずはここから入りました。

・画面と処理を(MVCのViewとController)
実際に必要な画面と処理を洗い出して見ましょう。
ここで大きな恩恵を感じることの一つとして「一から画面(デザイン)を考えなくていい」と言う利点です。僕が実際に1からプロダクトを作成しようと試みた時に一番始めに障壁となった画面のデザインや構成をずに処理やフレームワークの使い方を意識して学習することができます。

・ソースがなくても処理を想像する
一体どんな処理をしているのだろうか?そんな疑問を沢山持って学習に当たれると最高ですね!特に多くの有名サービスはLaravelを利用していないでしょうし、ソースを公開していないのでこの処理をLaravelで実現するためには…なんて考えて調べて行くことで最も実践的で効果の高い学習になります。

5.デプロイする??(公開)

さて、そのサービスは一般公開しますか?
収益を求めますか?それとも就職活動用のプロダクトですか??

沢山の選択肢がありますがデプロイする経験はとてもいい勉強になります。私もAmazonのAWSを使ってデプロイしましたがお恥ずかしながら当時は1週間ほど掛かってしまいました。。。

・GitHub(ソースのみ公開)
・gitpages(静的サイト)
・Heroku
・AWS(EC2)

ざっくりとこんな感じの選択があると思いますが私は就活用だけであればGitHubでソースをひたすら公開しまくる事をおすすめします。

その他実際にネームバリューや何を人かを理解してもらいたい場合にがHerokuやAWSなどでURLを入力するとサービスを利用できるようにしておくべきです。

ちなみに…
インフラについて少しでも理解しておきたい!
URLを自由な物を使いたい!

と考えている方はAWSをおすすめします!ご自分でサーバーを購入して物理サーバーで運用するのは少々敷居が高いので僕もやろうと思ったことはありません。

1996年生まれの渋谷周辺で働くwebエンジニアです。鉄道業界に居たり営業マンをやったりとフラフラしていたおかげで血縁者には心配されていますが、誰にも理解されなくとも高校3年生の時に思い描いた設計図の通りの行動を貫き通す変人です。どうもよろしくお願いします。