Laravel学習3ヶ月でできるようになったこと - Webエンジニアへの道 -
昨年の夏に出会い、やるかやるかと思いつつできていなかったLaravel。
そして昨年末くらいからLaravelのプロジェクトが動き出し、ついに本腰を入れてやることになりました。
今回はLaravelを学習して約3ヶ月。どのようなことができるようになり、どんなことをしてきたのかをまとめたいと思います。
--- 💻---
私のスペック
まずはLaravel学習前の私のスペックですが、元々はDrupalというPHPベースのCMSでのサイト制作をしていたので、基本的なPHPは読むことができます。(if文の意味とか、ループにはforeachを使うとか)
しかしDrupalというのは基本的にはブラウザからモジュール追加して、管理画面で色々できる。なるべくプログラミングは最小限で抑えたいという仕組みなので、そこまでガリガリコードを書いたりはしていませんでした。なので、0からPHPで機能を作成したりしたことはないです。
また、最初Laravelを見たときに、
・どのファイルがどこにあるのか
・この機能を作っているのはどのファイルなのか
・MVCってなんだ?
という感じで、頭の中が「???」な状況でした。
--- 💻---
成果物
学習してからできるようになったことを載せていきます。学習記録はnoteに書いていたのでそのリンクを貼ります。
1. ログイン機能
2. コンテンツ投稿機能
3. バリデーション実装
4. 画像アップロードフィールド実装
5. アクセス管理
6. ソーシャルログイン(Twitterアカウントでのログイン)実装
7. Herokuへのデプロイ
8. さくらのレンタルサーバへのLaravelインストール
9. さくらのレンタルサーバへLaravelプロジェクトをgit clone
いわゆる基本的なログイン機能やCRUD(クラッド)から、本番環境へのデプロイまで一通りできるようになりました。
YouTubeにてデモ動画作成
あとは完成デモ動画をYouTubeに載せたりしました。
GitHub
また、学習記録としてGItHubにLaravelソースコード紹介しています。
こんな感じで、様々なサービス利用して学習管理しました。
学んだことメモ:note
デモ動画:Youtube
ソース管理:GItHub
--- 💻---
どのように学習したか
実際にどのように学習していったのかですが、
調査 → 学習 &(実装 + 質問)
みたいな感じで進めました。実際にやったことを以下にまとめますと
1. Laravelで作成されているサイトを見る
まずはLaravel利用するとどんなことができるのかということの理解から始めました。
(↓でLaravelで作られているWebサイト見れます。)
結論から言うとどんなサイトでも作れるとは思うのですが、実際にLaravelで作られているサイトを見ることによって、自分の作りたいプロジェクトイメージをグッと膨らませることができます。
あのサイトで〇〇ができているのだから、(技術力さえあれば)私でも実装できるよな。
↑のように思い込むことが大事だと思います。
2. チュートリアルサイトで学習
次に実際に手を動かしました。私はこちらのサイトのToDoアプリ作成を行いました。
こちらのサイト、とても丁寧に書かれているのでLaravel初心者の私にも非常にわかりやすく、当初の疑問だった
・どのファイルがどこにあるのか
・この機能を作っているのはどのファイルなのか
・MVCってなんだ?
という点が理解できるようになりました。こちらのサイトには本当に感謝です!!
3. 実際にサイト作る
そしてすでにプロジェクト自体開始していたので、2の学習と同時にサイト構築も始めました。2で学習したことを活かしつつ作るので頭に入りやすかったです。
おそらく学習だけだとその場限りで終わってしまうのですが、学習と併せて自分のサイトを作ると理解が深まるのではないかなと思います。
4. 先輩エンジニアさんに質問する
やはり頼れるのは先輩エンジニアさんです。
MENTAでメンター契約を結んで質問したり、プロジェクトに参加いただいているエンジニアさんにコードレビューお願いしたりすることで、理解のスピードが早まりました。
特にコードレビューは本当に助かりました。最初の頃は「動くことは動くけど、この書き方であっているのかしら...?」みたいなことが多々あるので、そこをズバッと解決してくれるので非常にありがたいです。
--- 💻---
なぜ始めたのか
ここでLaravelの学習を始めたきっかけです。
最大のきっかけは『Laravelのプロジェクトが始まったから』と言うことなのですが、もう一つのきっかけとして、『自分でもある程度プログラミングできるようにならないとやばいな』と思ったからなのです。
私自身はディレクションの方が好きなので、ディレクションに専念してプログラミングはエンジニアさんに任せるというやり方で今まではやっていました。
しかしここ数年小規模なプロジェクトが多く、小規模なのでエンジニアさんも1人でお願いするとかになってしまう。
そうなると、例えばメンバーが体調崩してしまったり、他のプロジェクトにリソースを割かれて、こちらのプロジェクトまで手が回らなくなってしまう、ということがよく起こるんですよね。
そして新しくエンジニアさん探そうとするも、その探すコストがバカにならなくなってくる。。。という経験が何回かあったのです。
せっかく進めたプロジェクトが、このような理由で止まってしまうのが非常に悲しいなと感じ、ならばある程度自分でも手を動かせるようになっていた方が良いと思いまして、重い腰をあげて学習するようになりました。
勉強していくにつれて、最初はめんどくさいなと思っていたのですが、できてくると本当に楽しくなってくる。もっと早くからやっておけばよかったなと思うくらいです。
オススメの本
リーダブルコード
エンジニアさんに質問していて目から鱗だったのは、コードの書き方も大事だけどコメントの書き方も超大事ということでした。
もともとコメントは『何をしているのか』を書いていたんですけど、これって必要ないんですよね。(なぜならエンジニアならばコードを読めば何をしているのか理解できるから)
コメントは『何をしているか』ではなく『なぜこの書き方をしているのか』と『読み手が疑問に思うこと』を書く必要があることを学びました。
最後に
やはり最初はどうしてもとっつきにくく、やめたくなってしまうプログラミングですが、30時間くらい学習を続けることで楽しくなってきました。
プログラミングの勉強を始めることによりLaravelについて学べたのはもちろん、エンジニアたちの会話についていけるようになったり(最新の技術の話等)、『Gitってすごく便利じゃん!』みたいなエンジニアさんにとっては当たり前のことが今更わかるようになりました。本当にスキルの幅を広げるのはとても大事だなと感じました。
今Laravelで実装しているプロジェクトの開発も佳境になってきており、ぼちぼちリリースできるかなというところです。完成したらお知らせするのでぜひ皆さんに使って欲しい...!!
今年はLaravelに限らずプログラミングの勉強も積極的にやっていこうと思っており、今後も色々な技術に触れていきたいと思います。次は学習止まっているNuxtやる予定。オススメの技術などありましたらコメントかTwitterで教えていただけると嬉しいです😁
プログラミング楽しいですね。