PHPってコード自体はそれほど覚えなくても実務はこなせるんですよね。
未経験・初心者のまず最初の目標って、実務として仕事できるかどうかだと思うんですが、
であれば複雑なコードを覚えるよりかは、コード以外で実務でよく使うものを優先して覚えた方がいいです。
なので、そういった実用的な観点でピックアップしたいと思います。
主観はあるかもしれませんが、未経験から2年で会社の役員、6年で年収900万越えを達成という短期間で成果を出した自分なりの経験として記載したいと思います。
今回はなぜ必要かという観点で記載しますので、使い方や単語の説明については省略します。
使い方や単語の意味や説明については、ググれば私が書くよりも丁寧に書いてある記事がたくさんありますので。。
基本的なコード
じゃあコードはどこまで覚えればいいのか、という話もあると思うので必要最低限と思うもののみ記載します。
・CRUD機能
・検索機能
・CSVダウンロード、アップロード機能(これは余裕あったらでいいかも)
これくらいでOKです。
それ以外
フレームワーク(Laravel)
フレームワークを導入していないシステムはないと言い切ってもいいでしょう。
なので、必ずフレームワークを導入して学習してください。
おすすめはLaravelです。使いやすいのもありますが、PHPを使うシステムならば最近はLaravelが多いので。
MVCモデル
MVCモデルに沿って実装する必要はありませんが、要するに役割ごとにコードを記述するファイルは分けましょう、という話です。
実はコーディングにおいて、実装することも大事ではあるんですけど、その後の保守も意識することが大事なんですよね。
本番稼働して不具合が発生したり、改修の要望がくることは日常茶飯事です。
なので後でコードを見た時に見やすいこと、あるいはコードの切り離しがしやすいようにしましょう、って感じですね。
例えば、パソコンのマウスが壊れた場合にはマウスだけ買い替えたり修理しますよね? パソコンごとはしないですよね?
これが、パソコンとマウスがくっついてる場合だとパソコンごと買い替え・修理が必要になりますよね?
ダルいですよね?笑
コードも一緒です。だから役割ごとに分離させたいのです。
また、MVCモデルに沿う必要はないと書きましたが、MVCモデルは古いと言われることもあって使ってない現場もあります。
ですが、役割ごとに分けているのはどこの現場も間違いないです。
ですので、役割を意識してコーディングするように学習しましょう。
API
これは言葉となんとな〜くの意味だけ知っていればOKです。
わかりやすく説明しているコンテンツが少ないと思うので、自分なりにではありますがここだけは説明したいと思います。
外部のシステムやサーバから「このデータちょうだい」って言われたら、その外部システムやサーバにデータを返す仕組みです。
外部ってところがポイントですね。
PHPはバックエンド・サーバサイドなのですが、1つのシステムでもフロントエンドと設置している場所が違ったりします。
(前述した「役割ごとに分離」させてるわけですね)
そうすると、同じシステム内ではあるけども、外部っていう扱いになります。
(正確な表現ではないですが、未経験・初心者向けにわかりやすく表現してます)
例えば、フロントエンドで検索ボタンを押した時、「この条件に合うデータをちょうだい」って要求することになります。
この時に、外部であるバックエンドと通信して、バックエンドからフロントエンドにデータを返すとします。
(繰り返すようですが、外部ってところがポイントです)
この通信を「API通信」っていいます。「APIを叩く」ともいいますね。
Github
Gitを使ってない現場はないでしょう。
中でも、Githubを使っている現場が多いと思いますので、Githubは学習しておきましょう。
Gitコマンドというものが色々ありますが、CUIでやると最初は難しく感じると思うので、GUIでGitコマンドが使えるツールを使うといいです。
コマンドについては、branch/pull/commit/push/mergeくらいしか私は使いませんので、これでOKです。
SQL
CRUD機能を実装するならcreateやupdateは使うと思いますが、joinやwhereも学習しておきましょう。
極端な言い方をすると、PHPはDBにあるデータを要求に応じた形で返してあげるプログラムです。
なので、要求・条件に応じるようにデータを絞ったりする必要があります。
そこで使うのがjoinやwhereだったりするのです。
Laravelを使っているのであればEloquentでjoinやwhereを使ってもOKです。Eagerも知っておくと尚いいですね。
joinやwhereが複雑になっている現場も多いです。そういう意味でも学習しておくべきだと思います。
なぜこの記事を書こうと思ったか
未経験・初心者でも仕事が欲しい、という場合に最低限のパッケージについて書いてある記事がないなぁ、と思ったんですよね。
覚えるべきコードが書いてある記事はあるんですけど、実体験としてコード以外にも覚えてないと実務で戸惑うんですよ。
かつ、結局は実務をこなすことが1番の学習になるので、案件が決まることは一石二鳥なんですよね。
でもやっぱ最初が1番大変なんですよ。どれをやればいいのか、どこまでやればいいのか。。
なので、自分も未経験でエンジニアになった者として、今までの経験から「まずこれをやりましょう」っていう最低限のリストを作りたかったんです。
これらを学んだ後は、いざ案件を取れるように頑張ってみましょう。