こんにちは!テコンドーです。
突然ですが、どういう風に自分のスキルを磨いていくのかについてベストな方法を皆知りたいですよね。
僕は効率厨なので、あまり効果がなさそうなことはしたくありません。
なので、 〜 プログラミング 上達 〜 とかでよくググります。
ググるのですが、そこからいい結果に繋がることはほとんどありませんでした。
ググって色々情報見て、満足して終わる。
結構あるあるなパターンですよね笑
結局手を動かすのをめんどくさがっているだけだ、、、と気づいてしまいました。
なので今回は、ネットに転がっている情報ではなく、自分でどうやったらスキルを向上させられるかを考えて実践していきます!GoogleChromeを閉じて考えました。
What & Goal
Laravelのドキュメント全て読んで理解する。
具体的には全ての項目について理解し、わからないところを実際に実験してみる。
そしてわかったことをアウトプットする。
ゴールとしては
– Laravelの詳細機能の理解
– 知らない機能の発見
– アウトプットの習慣形成
のなどになります。
Why
長期インターンでLaravel,Nuxt.jsを使用したアプリケーションの開発に従事しています。
もっと成長&使える人になるために基礎から学び直す必要性を感じています。
僕は将来的にはサーバーサイドエンジニアになりたいなと思っているので、NuxtではなくLaravelに注力して学習しようと考えました。
新しいプロジェクトをスタートさせる or フリーランスなどで仕事を受注してみる、などの選択肢も考えたのですが、
– コーディング以外にやらないといけないことが多くなる
– 本来の目的であるインターンで活躍する
といった理由で地道な作業をすることにしました。
そういった派手なことを考えるより、基礎基本からもう一回学び直すことが重要であると考えています。
この学習はポートフォリオとして企業に見せることができないので、やったからといってアプリを作るように簡単にその成果を発表することはできません。完全に自分への将来的な投資です。
何にも成果物とならないので焦りもありますが、その焦りをバネにして爆速で取り組んでいきます。
学び直そうと思ったきっかけ
基礎基本を学び直そうと思ったきっかけは、様々な場面でいろんなエンジニアに会った経験が大きいです。
短期インターン、勉強会、学生エンジニアイベント
様々な場所で様々な人と知り合い話しました。
そこで感じたのは自分の力不足さです。
深いところまで中身を知っていないからエンジニアと身のある話をすることができませんでした。
学生イベントでは自分の知らない分野のことを詳しく理解している方がいらっしゃったりしました。
この人たちともっと熱い話がしたい、、、!
そんなモチベーションがそこで生まれました。
なのでまず効果の高そうなLaravelの理解から始めます。
依存注入とかComposerの詳しいところまでわかってたらかなりイケてるエンジニアになれる気がします。
そもそも、Laravelは基礎基本なのか?と言われると微妙ですけど笑
もっと基礎基本ならLaravelのドキュメント読むよりPHPの言語仕様等を理解するなどもあるのですが、、、
何がスキル向上のクリティカルな要素なのか、考えたのですが、わからないのでとにかく手を動かす方針でいきます。
WHEN
11月末までに完了させる
また、締め切りがないとどんどん疎かになることは目に見えているので、達成期限を細かく区切って、怠けないようにしていきます。
あとは、進捗状況をTwitter等にアップしようかなと考えています。モチベ維持は大事
HOW
わからないところはQiitaにまとめる。
細々としたTIPSになりそうなので、このブログには合わなさそうな気がします。
アウトプットの重要性をひしひしと感じています。わかった気になっていても、人に説明すると理解が浅いところが浮き彫りになります。そして何回もその過程を繰り返すことで知識は定着していきます。
アウトプット多分かなり時間かかると思うのですが、**アウトプットの習慣を作る**。ということも一つの目標にしてやっていきたいです。
Twitterの利用
サービスコンテナとは
DIをただ使うだけだと、用意するべき設定の数だけControllerなどでnewする必要が出てくる。
これを解決するために利用。
グローバル配列を利用してサービスをまとめて管理する。
サービスの登録の方法はサービスプロバイダを利用する。#今日のLaravel #Laravel— テコンドー@エンジニア (@9CbdWoo9HBlJgIx) October 15, 2019
こんな感じで自分の今日学んだことをツイッターに流していく予定です。
理解したところを自分で解釈しなおしてアウトプットするのも重要ですね。
Twitterだと文字制限あるのでそんなに気張らなくても続けられるのがよい。
チェックシートの作成
[Laravelドキュメントver5.8](https://readouble.com/laravel/5.8/ja/providers.html)を見ながらそれぞれのトピック(左上のボタンから開ける)をチェックシートにしました。
これを作ることでどのトピックをやったのかどうかを簡単にチェックすることができます。
このシートにチェックを一つずつ埋めていくことを目標にしてやっていきます。
こういった事前準備が目標達成確率を上げてくれます。
環境構築
わからないところは実際に手を動かしてみて動作を確認するので好き勝手にいじれるLaravelプロジェクトが必要でした。
また、macとwindows両方で開発する予定があったのでどちらでも対応できるように、Laradockを利用してDockerで環境構築をすることにしました。
これがしんどかった、、、、Docker for Windows、、、
ドキュメント読み始める前になんでこんな苦労しないといけないの、、、
そしてドキュメントを読む前に[Qiita記事が一つ出来上がりました](https://qiita.com/tekondo/items/5dee2a59795ad1127cf3)。
終わりに
パッとみたところ、ドキュメントの量かなり多かったので、11月末までに終わるのかどうか不安になってきました、、、
まあ尻に火がつくような環境じゃないと学習スピードが上がらないのも事実です。
今は期限を11月にして頑張っていこうと思います。
またTwitter.Qiitaで継続的に進捗状況、学習内容の共有を行っていくので是非チェックしてください!
目指せ凄腕エンジニア!!!
それでは!