「初級」〜「中級」のPHPエンジニアのスキルについてまとめてみる
公開日:
:
最終更新日:2018/05/05
PHP, WEB全般, 講義 プログラミングTips, 転職

いままで主にPHP(を中心としたWeb技術)を勉強し始めの傾けに記事を書いていましたが、今回は初級から中級に入りたての方ぐらいのスキルについて書いて行こうかなと思っております。
「初級」「中級」と言っても定義が非常に広く、人によって様々だと思いますが、なるべく汎用的な技術に絞って書いて見ました。
人によってばらつきがあるので実務経験年数と言ってもあまり参考にならないことも多いらしいのですが、1〜2年を想定しています。
多分数回に分けて書くかと思います。
一般的なPHPエンジニアと言っても関連する技術(フロント、DB、サーバーなど)もあり、その部分のスキルについても触れたいので。
今回は主にPHPのコーディングに関してです。
Contents
仕様書がなくても要件を言われて自分でコードに落とせる
私はDB定義書などを覗くと、仕様書がガッチリした現場というのをほとんど経験したことがないため、要件を言われて自分でそれを実装して行くというパターンでした。
疑問点などが出たらその都度質問するという感じです。
ただ仕様書がないとコードがかけないという方もいるようなのでできれば要件を言われてダイレクトにコードを書けるようにしましょう。
逆に仕様書通りに書くという技術も大切かと思います。
(正直いうと私はそういう経験はないので良くわからないのですが・・・)
一般的なコーディングスキルがある
いいコードと言ってもその定義は難しく、おそらくプログラマの数だけ定義はあると思います。
極論すると納期が迫っているのであればなんとしても間に合わせないといけないため、そう言った場合にはある程度質を犠牲にするケースもあります。ただ一般論としては自分は以下のようなコードがいいコードだと思っております。
- インデントやスペースなどフォーマットに関わる部分が統一されている
- ロジックが何をやっているかがわかりやすい
- 命名が適切
- コード自体が短い
- 1メソッドが短い
- ネストが浅い
- 機能ごとにプログラムがしっかり分割されている
- テスト可能なコードである=メソッドが疎結合になっている
- 異常系の処理でもれがない
- 抽象度が高い
- 速い(少なくとも無駄な処理はない)
- 頻出処理などはライブラリなどが適宜使われている
- ある程度の最新の技術についてキャッチアップしている
- スコープが適切かつ最小
- 適宜ログなどに記録を残している
実際に書いていると、お互いに矛盾するケースもありますがあくまで一般論ということで。
ここら辺、初学者の方は以下のような参考書を読むのがいいでしょう。
実際のアプリを作成できる
当たり前ですが、実務ではほとんどのケースで実際のアプリを作成することになりますので、頻出的な処理に関して抑えられているか。
- ログイン認証機能
- 検索
- エラーチェック
- 新規入力、更新、削除
- ページャー
- 画像のアップロード
- CSVデータダウンロード(アップロード)
- データの集計画面
- (内部的に)キャッシュ
ある程度の規模のソースを読める
実務ですと当然他人のソースを読む機会というのも非常に多いです。プログラムの能力を向上させるためにはやはり大事なのはソースを読む、書くということでしょう。
ただ最初のうちは「ある程度の規模のソース」というものがどういうものか想像ができないと思います。
勉強し始めの方はほとんどの方が簡単な掲示板を作ると思いますが、おそらくファイル数が多くても10程度でテーブル数も1桁がほとんどでしょう。
ただ実際のある程度のシステムになるとファイル数は数百以上にもなり、テーブル数も3桁になることが一般的です。勉強し始めで初めて実務に触れた場合などはこう言ったソースが全く別物に見えてしまうんですよね。
こう言った方に独学用の教材として個人的にはECCUBEのソースをオススメします。
オススメのポイントとして、
- 当たり前だけどお金がかからない
- 一般のフレームワークと違い、すでにアプリとして動いている
- 通常の業務システムなどと比べECということで仕様的に難解な部分がなく、動きが比較的わかりやすい
- 内部のソースの難易度が高すぎない
などです。
これは私が実務で見た最初の「ある程度の規模のソース」がECCUBEだからというものもありますが・・・
私はECCUBEの信者というわけでは全くないですし、問題もあると思いますが、難易度が手頃な「ある程度の規模のソース」としてはそこそこいい題材だと思います。
*一般のフレームワークだと目に見えるアプリが最初から動いていないことと、内部を読むのはかなり難しいため、「初級」〜「中級」では必要ないかなと思いました。
フレームワークの基本的な使い方がわかる
実務でいうとフレームワークを使うことがほとんどですので、最低1度はフレームワークを触っておきましょう。
どれでもいいという方はメジャーなものがオススメです。(PHPで言えばLaravelやCakePHPをオススメします。)
その上で以下のような頻出処理に関して実現できるようになっておきましょう。
- ルーティング
- バリデーション
- ページング
- DB連携
- キャッシュ
- セッション管理
- 認証
- テンプレート操作
これらもアプリを作りながら覚えるのがいいでしょう。
ちなみに一つのフレームワークで基本的な使い方をしっかりと抑えておけば、別のものでも細かい文法の違いはあっても基本は一緒ですので、応用は効くかと思います。
そう言った意味で1つのフレームワークでまずフレームワークがどういうものかを抑えておきましょう。できれば内部まで見れるといいですが、かなり難しいため、最初のうちは使えれば良い、と割り切りましょう。
フレームワークを自作できる
正確にはフレームワークの内部を理解できるようになっておこうということですが、「理解」するのに一番いいのは作ることだろうと思いました。
もちろんLaravelやCakeと同じものを完全に作れる必要はなく、簡易的にしても叶わないので、内部の動きを自分なりに理解できることが大切です。
というのもフレーワークに慣れすぎてしまうとイレギュラーな処理をかけなくなってしまったり、あまり理解していなくても「こう書けば動く」で終わらせてしまいがちです。
最初のうちはそれで仕方ないと思いますが、そのままずっときてしまうと理解が朝いままで終わってしまいます。
そのためにも内部でこういう処理が行われているということを理解するために自力でフレームワークを作成することをオススメします。
作り方などは下記の書籍に書かれています。
PHPエンジニアの間では(多分)有名な本です。
とりあえずPHP編はこんな感じで。次回は他の分野(DBかな?)などを書いていこうと思います。
関連記事
-
-
WEBエンジニアだったら知っておきたいWEB開発ツール一覧
今回は仕事で使っているソフト、ツールやWEBサービスなんかを紹介していこうと思います。 それほ
-
-
初心者でもできる!作れる!WEBサービスの開発 その4 総まとめ編
前3回の記事でWEBサービスを作ったお話をさせていただきました。 (前回までのお話し)
-
-
PHPのメリット・デメリット
うちのブログで一番読まれている記事が「フレームワークのメリット・デメリット」ですね。 タイトル
-
-
PHPで掲示板を作ろう!(データベース編) その5 PHP-MySQL連結編
今回はMySQLの第5回目の講義です。 前回までの記事 PHPで掲示板を作ろう!(データベース編
-
-
PHPで掲示板を作ろう! 掲示板の作成方法 その4(ファイル読み込みとHTML表示)
今回でラストです。(次回はまとめをやる予定ですが。) これだけのソースにしては説明が長かったで
-
-
データを扱ってみよう その1(変数)
こんにちわ、松本です。 前回の記事は読んでいただけたでしょうか。私よりPHPに関して知識のある
-
-
15時間でプログラミング言語の基本をマスターする方法
今回は主に経験者向けの記事となります。 タイトルの通りなのですが、私が新しい言語をマスターする
-
-
初心者でもできる!作れる!WEBサービスの開発 その2 制作体験記編
前回からの続きですが、主にプログラムの勉強目的として、簡単なWEBサービス(アフィリエイトサイト)を
-
-
挫折必至!初心者がやってはいけないプログラミングの学習法 ワースト4
多くの方はプログラミングをどのように身につけたらいいのか・・・ということに関心があると思います。
-
-
データを扱ってみよう その2(配列)
こんばんは松本です。 少しずつ暖かくなってきましたね。暖かいのはいいんですが、オフィスでブログ