自社開発や受託開発の会社に入る為にLaravelを0から無駄なく勉強する方法
2020 回閲覧されました
みなさんこんにちは、jonioです。
これからLaravelを勉強する人はネットで勉強のやり方を調べると思います。
私もそうでした。
学習サイトで勉強するとか本で勉強するとかアプリの作り方の解説をしています。
しかし具体的にLaravelの何を勉強すれば自社開発や受託開発の会社に入れるかの解説は見たことがありません。
これが一番大事だと思うのですが現実的にないです。
私はLaravelを完全未経験から触って現在2年位経っていますが作りたいアプリを作れてエンジニアの仕事をしている状態です。
今になって「こうやれば余計な時間をかける必要がなかったな〜」と思う点が色々あります。
だからこれからLaravelを勉強する人の為にこういう風に勉強すれば回り道をせずに自分でアプリを作れて仕事ができるだろうと思う方法を解説します。
私みたいな40代からでもITの業種の仕事を本気でしたい人の為にこの記事を書いていますので参考になれば幸いです。
情報量的にネット上の情報で1番優れている自信があります。
目次
対象となる人
20代や30代前半の人の場合は育成枠みたいなのがあるのでスキル感は今回の解説より緩くても大丈夫ですが30代真ん中以降は私と同じ状況になる(採用基準が厳しくなるという意味です。)ので30代真ん中辺りからの年齢の人が対象です。
私は会社員なのでフリーランスとして仕事をする方法は分かりません。
この記事を書いた目的
Laravelを言語として仕事をする為に何ができないといけないかを解説している情報がないからです。
対象言語
Laravelと記載していますが勉強のやり方自体は全ての言語で共通です。
違うのは言語を動作させる環境と勉強に使う教材だけです。
だからRailsとか勉強している人にとっても読む価値はあると思います。
スクールと独学はどちらがいいか
絶対に独学がいいです。
私は完全に独学です。
スクールで勉強するとお金が大量にかかる割に情報が古かったり質問に答える人の質が悪い場合があります。
また40代が応募すると厳しく見られて書類選考で落ちる可能性がただでさえ高いのに余計落ちる可能性が上がります。
実際に会社の採用者側の目線だと「何で自分で勉強しなかったの?」っていう目線で見られます。
だから独学しましょう。
勉強期間
完全無職で貯金を切り崩して1日中勉強しますっていう人は1年位で可能だと思います。
でも年齢的に現実的にそういう人はほぼいないはずです。
私の場合は他の仕事をしながら1年近く勉強した辺りで自分でアプリを作ることができるようになってきたのですがその時点では仕事としてプログラムを書くのは無理だったはずなので最低でも2年位勉強した方がいいと思います。
仕事がある日は1日4時間位勉強して休みの日に10時間位時間を取れば1年位勉強した時点でアプリを作ることができるようになるはずです。
Laravelだけを勉強する
HTMLやCSSやJavaScriptなどのフロントエンドはひとまずおいておきLaravelの勉強に集中した方がいいです。
HTMLやCSSは簡単と言われていますが奥が深いのでひとまず必要な部分だけ登場した時に使えれば問題ないと思います。
また私はHTMLやCSSやJavaScriptの勉強も同時にしていましたがLaravelをやりながら別の言語を勉強するって相当大変ですよ。
今思うとLaravelだけ勉強すればよかったとつくづく思います。
無駄ではないんですけどね、、
Laravelですぐ登場するHTMLはformタグ・inputタグなのでとりあえずLaravelに集中しましょう。
formタグ・inputタグは下記の形で登場します。
<form method="POST" action="{{ route('salon.store') }}" class="mt-5">
@csrf
<div class="mt-3">
美容室名 : <input type="text" name="name" placeholder="名前" value="{{ old('name') }}">
</div>
</form>
JavaScriptとかのフロントエンドはやると時間を大きく削ることになるので本当に止めた方がいいです。
SNSのXを見ると最近流行りのReact.jsとバックエンドの両方を勉強する人を多く見かけますが勉強のやり方として最悪です。
またフロントエンドができなくても採用してくれる会社は普通にあるのでいきなり勉強する必要はないです。
Laravelの動作環境
SNSのXを見るとDockerが多いと思いますがLaravelの場合はLaravel用のDockerとしてLaravel Sailがあります。
でもいきなりLaravel Sailでやると絶対つまずきます。
私はつまづきかけました。
MAMPが一番簡単なので最初は強くお勧めします。
LaravelをMAMPで動作させるのを解説しているネットの情報を探しましょう。
私もやり方の記事を書いていますのでそれを読む人は読んでやってみて下さい。
最初に知っておくこと
Laravelを勉強する上で知ってないといけない情報があります。
それは絶対にMVCです。
時間がかかってもいいのでLaravelを勉強する前に理解しましょう。
これが分かってないとLaravelを扱う上で大きな支障が出ます。
どの教材を使って勉強するか?
私もLaravelの学習で最初使ったのですがじゅんこさんという方が運営しているLaravelの教科書というサイトがネットに載っている全ての情報の中で1番情報が多くて優れていると思います。
私はめちゃくちゃ探しまくってじゅんこさんのサイトに辿り着きました。
説明が甘い部分もありますが0から勉強するならこのサイトをお勧めします。
相当ボリュームがある基礎編は無料で使えます、上級編は買い切りで5000円だったと思います。
質問は上級編を買った人なら無料でじゅんこさんに直接できますが私は質問したことがないのでどれ位の速さで返事があるかは分からないのでお問い合わせをした方がいいと思います。
Laravelの教科書で勉強した感想を記事にしていますのでよかったら見て下さい。
この情報が最初勉強するのにおすすめ
じゅんこさんの情報は確かにいいのですが初めて私が勉強した時はLaravelを勉強する人にとって情報が多すぎる感じがしました。
やることをなるべく削り落とした作り方をした方が勉強をしやすいと思ったので私も解説の記事を作りました。
かなり丁寧に解説を書いたつもりなのでまずこれを勉強した方が理解度は上がると思います。
もう少し踏み込んで勉強するなら
難易度を少し上げていますが私が書いた記事で下記があります。
本で勉強するなら
下記のリンクの本一択です。
しかし環境構築が初心者にはキツいLaravel Sailでやっているみたいでエラーが出ているという口コミがあります。
だから本で勉強する前に下記の記事で先に勉強した方がつまづかないと思います。
教材の進め方
多分こう勉強すれば定着の度合いが上がると思います。
私は元々大学受験の予備校講師でしたがこういう風に復習すれば学習効果が上がると生徒に伝えていました。
勉強するセクションが第1回から第10回まであったとします。
第1回目の勉強が終わったら第2回目を勉強しますがそれが終わったらまた最初から勉強して第3回目まで勉強します。
それが終わったら最初から勉強して第4回目まで勉強します。
1つのセクションが終わる度に最初から勉強すれば同じセクションを何度も繰り返すので復習のスピードが上がって定着率も上がります。
私が講師をしていた時に生徒に伝えて真似をした生徒と真似しなかった生徒で成績の伸びの差が圧倒的に違いました。
教材の理解の仕方
初めて言語を触る人にとって多分ここが一番難しい所だと思います。
教材の解説を読みながらこうしたい時はコードをこう書けばいいというのを繰り返して教材を繰り返す回数を増やした方がいいと思います。
ここで多くの人が間違ったやり方をするのですが教材の内容を覚えなくてもいいです。
覚えるよりも「こういう時はこう書かないといけなかったな〜」って感じで内容を理解した方がいいです。
書き方は忘れたら調べれば見つかるはずです、私はいつもそのやり方です。
丸暗記しましょうみたいに言う人がいたらそのやり方は絶対に間違っています。
私の習得度
このやり方で教材を進めていって何度も繰り返して理解を深まって来た感じがするのが多分10ヶ月後位だったと思います。
勉強のペースは人それぞれなのでもっと時間がかかっても問題ないです。
とにかく自分の中で定着した感じが出るまで教材を繰り返した方がいいです。
教材の勉強が終わったら
Laravelの教科書を勉強して10ヶ月位経ったらHTMLを勉強する余裕が出てくると思うのでLaravelに肉付けしていきます。
それと同時に自作のアプリを作った方がいいです。
どんなアプリを作るか
例えば下記です。
- どんなアプリを作ったかを掲載するブログ
- 作ることで作業の効率化ができる物
それぞれ見ていきます。
ブログアプリ
勉強していますといくら言った所で実務経験がないからそれを証明する物がないと面接で信じてもらえません。
だから証明する為に作ったアプリを掲載する物を作ります。
作業効率化ができるアプリ
アプリを作る本来の目的は作ることによって作業効率が上がる為です。
例えばスーパーで買い物をして2人で半分ずつお金を出すとします。
単純に半分にするならアプリは必要ないですが中には自分だけが必要で買った物もあるはずです。
それがいっぱいあると食品かそれ以外かで消費税が違うので直接計算すると面倒です。
金額を入力したら税込の金額が自動的に表示されたら計算が楽ですよね。
こういった目的の為に作るんです。
掲載する物として作ってはいけないアプリ
作業効率化ができないアプリです。
例えばクイズアプリとかです。
ネットの記事を見て作ったアプリもダメ
私はやってしまってあとになって後悔したのですが例えばネットに載っているクイズアプリの作り方の記事を見て作ったアプリとか自分で考えてコードを書いてないからそんなれアプリは意味がないです。
実際の仕事を始めたら自分で考えてコードを書かないといけないですからね。
また応募した会社の面接官からすればスクールで勉強した人みたいな印象で見られる可能性があってマイナスポイントになるかもしれません。
アプリの個数
私の感覚では多くて3つのアプリでも大丈夫と思います。
ただ1つのアプリのシステムの大きさが必要になるのでテーブルが10個以上ある物がいいです。
アプリを作る他の理由
作業効率化が理由と説明しましたが他にもあります。
会社の面接官は採用するかしないかの基準としてその人を雇って会社の利益になるかを見ています。
クライアントが求めているアプリは作業効率化できる物なのでこんなアプリを作れた方が御社に貢献できますよってアピールになるからです。
アプリを作る以外にできないといけないこと
アプリを作れるだけでは採用してくれる可能性は限りなく0です。
恐らく以下もできないといけません。
- Git操作
- AWS
- 設計
それぞれ見ていきましょう。
Git操作
Git操作は絶対に必須です。
仕事で使わない会社はないと思うのでできないとそもそも相手にされない可能性があります。
自作のアプリを作り始めたら調べてGitを使うようにしましょう。
AWS
これは使えた方が望ましいですがAWSじゃなくても大丈夫です。
私はWEB制作の仕事をしている時があってXSERVERを使っていたのでAWSの経験がなくても大丈夫でした。(今後使えるようにします)
設計
これはできないといけないです。
自分が作ったアプリを応募した会社に見せる時にアプリのメリットが何か・どういう仕様になっているかを説明しないといけない場合がほとんどなので絶対に必須です。
設計は私がお勧めできるサイトを知らないので自分で調べた方がいいです。
この3点をやるのを合わせると2年位勉強した方がいいと思います。
開発の仕事をやりたい人でプログラムさえ書ければいいと思っている人がいますがそれは絶対に間違いです。
優先順位
コードを管理できないといけないのでGitを使うのが一番優先です。
次に設計できないとアプリが作れないので設計です。
AWSを扱えるようになるのは最後です。
仕事をするとこうなる
勉強期間を最低2年した方がいいと解説しましたが理由は他にもあります。
仕事を始めるとタスクを振られますがさあコードを書いて下さいって流れになります。
会社の仕様書を渡されてそれについての説明を聞いてからプログラムを書きますが自分で勉強した経験がある程度ないと対応できないです。
分からない点があったら質問できますが基本的に1人でやらないといけないので勉強期間が半年で仕事をするとか絶対に不可能です。
だから最低2年は勉強しましょう。
できると評価が上がること
下記になります。
- フロントエンドの言語を使える
- 見た目を整える
これをやると勉強時間が多分2年を超えます。
フロントエンドにReact.jsを使う会社は多い気がしますが私はJavaScriptかjQueryしか使えないけど問題が起きていません。
見た目を整えるのに関してはおしゃれな見た目はできなくていいので余白を整えたり文字サイズに違和感がなかったらいいです。
意味が分からないかもしれないので具体的に説明します。
下記ですがappleのサイトの一部です。
違和感がないレイアウトに見えるはずですがなぜか分かりますか?
それは白い背景色のブロックの中の上左右の余白(下記画像の黒枠)の取り方が同じだからです。
余白の取り方が同じだと視覚的にいい感じに見えるんです。
またそれぞれのブロックの文字サイズを揃えていますがこれも違和感がない要因となります。
細かく見ると色々ありますがとりあえずこれができるだけでも見た目はよく見えるはずです。
エラーの対処法
自作のアプリを作ると絶対にこの壁にぶち当たります。
私もでしたがプログラムを書く経験が浅ければ浅いほど地獄だと思います。
私がプログラミングを始めた頃は「げっ、またエラーだ。どうやって解決すればいいんだろう?嫌だな〜」って毎日思っていました。
対処法をちゃんと解説している人はまずいないので私のやり方を説明します。
私は独学でやり切って業務で知って後悔したのですが最初からエラー内容で検索するのはエラーの解決策としては悪い方法です。
なぜかというとエラーって自分が書いたコードで起きていますよね?
だから自分のコードにエラーの原因があるのでエラー内容を見て自分のコードで該当しそうな所を探さないといけないです。
その際「print_r」や「pr」や「dd」をコントローラーに書くなどして出力ができているかを探すとエラーの解決が早くなる気がします。
とは言っても「エラーの場所を特定するのはキツイよ」って思いませんか?
私がやっているエラーの対処法を具体的に紹介します。
具体例
実際のLaravelのコードで見ていきます。
下記のコードを書いたとします。
public static function beautySalonUpdate($id, $request) {
$inputs_validation = $request->validate([
'name' => 'required',
'site_url' => 'required',
'google_map_url' => 'required'
]);
$update_beauty_salon = self::find($id);
$delete_flag = $request->has('delete_flag') ? 1 : 0;
$update_beauty_salon->update([
'name' => $inputs_validation['name'],
'site_url' => $inputs_validation['site_url'],
'google_map_url' => $inputs_validation['google_map_url'],
'delete_flag' => $delete_flag
]);
}
コードの塊になっている部分に部分に着目します。
以下がそうです。
- 2行目〜6行目
- 8行目
- 10行目
- 12行目〜17行目
この塊の部分を下記みたいな感じで上の行から順にddを使って出力しているかを見るんです。
dd($inputs_validation);
print_rや他の出力方法でもいいですが私はプログラムが停止するddが好きです。
出力しなかったらそこがエラーの原因です。
こうやるとエラーを外すのが早くなるのと不具合が出にくいプログラムを書くことができます。
でもどうすればエラーがなくなるかが分からない場合もあります。
また最初から「何でこのエラーが出るか分からない」と思うエラーに出会う時もあると思います。
そんな場合は調べるかAIに質問した方がいいです。
応募する会社
私が採用されて働いた経験上ITの会社は未経験の人が応募して面接してくれるのはブラックな企業が思った以上に多かったです。
そんな会社で働かない為の私が発見したブラックの可能性がある企業の見分け方について記事にしました。
といった感じですがこの記事がLaravelを仕事にしたい30代真ん中以降の年齢の方の助けになれば幸いです。