*

「初級」〜「中級」のPHPエンジニアのスキルについてまとめてみる

公開日: : 最終更新日:2018/05/05 PHP, WEB全般, 講義 ,

いままで主にPHP(を中心としたWeb技術)を勉強し始めの傾けに記事を書いていましたが、今回は初級から中級に入りたての方ぐらいのスキルについて書いて行こうかなと思っております。

「初級」「中級」と言っても定義が非常に広く、人によって様々だと思いますが、なるべく汎用的な技術に絞って書いて見ました。

人によってばらつきがあるので実務経験年数と言ってもあまり参考にならないことも多いらしいのですが、1〜2年を想定しています。

多分数回に分けて書くかと思います。

一般的なPHPエンジニアと言っても関連する技術(フロント、DB、サーバーなど)もあり、その部分のスキルについても触れたいので。

今回は主にPHPのコーディングに関してです。

仕様書がなくても要件を言われて自分でコードに落とせる

私はDB定義書などを覗くと、仕様書がガッチリした現場というのをほとんど経験したことがないため、要件を言われて自分でそれを実装して行くというパターンでした。

疑問点などが出たらその都度質問するという感じです。

ただ仕様書がないとコードがかけないという方もいるようなのでできれば要件を言われてダイレクトにコードを書けるようにしましょう。

逆に仕様書通りに書くという技術も大切かと思います。

(正直いうと私はそういう経験はないので良くわからないのですが・・・)

一般的なコーディングスキルがある

いいコードと言ってもその定義は難しく、おそらくプログラマの数だけ定義はあると思います。

極論すると納期が迫っているのであればなんとしても間に合わせないといけないため、そう言った場合にはある程度質を犠牲にするケースもあります。ただ一般論としては自分は以下のようなコードがいいコードだと思っております。

  • インデントやスペースなどフォーマットに関わる部分が統一されている
  • ロジックが何をやっているかがわかりやすい
  • 命名が適切
  • コード自体が短い
  • 1メソッドが短い
  • ネストが浅い
  • 機能ごとにプログラムがしっかり分割されている
  • テスト可能なコードである=メソッドが疎結合になっている
  • 異常系の処理でもれがない
  • 抽象度が高い
  • 速い(少なくとも無駄な処理はない)
  • 頻出処理などはライブラリなどが適宜使われている
  • ある程度の最新の技術についてキャッチアップしている
  • スコープが適切かつ最小
  • 適宜ログなどに記録を残している

 

実際に書いていると、お互いに矛盾するケースもありますがあくまで一般論ということで。

ここら辺、初学者の方は以下のような参考書を読むのがいいでしょう。

リーダブルコード

実際のアプリを作成できる

当たり前ですが、実務ではほとんどのケースで実際のアプリを作成することになりますので、頻出的な処理に関して抑えられているか。

  • ログイン認証機能
  • 検索
  • エラーチェック
  • 新規入力、更新、削除
  • ページャー
  • 画像のアップロード
  • CSVデータダウンロード(アップロード)
  • データの集計画面
  • (内部的に)キャッシュ

ある程度の規模のソースを読める

実務ですと当然他人のソースを読む機会というのも非常に多いです。プログラムの能力を向上させるためにはやはり大事なのはソースを読む、書くということでしょう。

ただ最初のうちは「ある程度の規模のソース」というものがどういうものか想像ができないと思います。

勉強し始めの方はほとんどの方が簡単な掲示板を作ると思いますが、おそらくファイル数が多くても10程度でテーブル数も1桁がほとんどでしょう。

ただ実際のある程度のシステムになるとファイル数は数百以上にもなり、テーブル数も3桁になることが一般的です。勉強し始めで初めて実務に触れた場合などはこう言ったソースが全く別物に見えてしまうんですよね。

こう言った方に独学用の教材として個人的にはECCUBEのソースをオススメします。

オススメのポイントとして、

  • 当たり前だけどお金がかからない
  • 一般のフレームワークと違い、すでにアプリとして動いている
  • 通常の業務システムなどと比べECということで仕様的に難解な部分がなく、動きが比較的わかりやすい
  • 内部のソースの難易度が高すぎない

などです。

これは私が実務で見た最初の「ある程度の規模のソース」がECCUBEだからというものもありますが・・・

私はECCUBEの信者というわけでは全くないですし、問題もあると思いますが、難易度が手頃な「ある程度の規模のソース」としてはそこそこいい題材だと思います。

*一般のフレームワークだと目に見えるアプリが最初から動いていないことと、内部を読むのはかなり難しいため、「初級」〜「中級」では必要ないかなと思いました。

フレームワークの基本的な使い方がわかる

実務でいうとフレームワークを使うことがほとんどですので、最低1度はフレームワークを触っておきましょう。

どれでもいいという方はメジャーなものがオススメです。(PHPで言えばLaravelやCakePHPをオススメします。)

その上で以下のような頻出処理に関して実現できるようになっておきましょう。

  • ルーティング
  • バリデーション
  • ページング
  • DB連携
  • キャッシュ
  • セッション管理
  • 認証
  • テンプレート操作

これらもアプリを作りながら覚えるのがいいでしょう。

ちなみに一つのフレームワークで基本的な使い方をしっかりと抑えておけば、別のものでも細かい文法の違いはあっても基本は一緒ですので、応用は効くかと思います。

そう言った意味で1つのフレームワークでまずフレームワークがどういうものかを抑えておきましょう。できれば内部まで見れるといいですが、かなり難しいため、最初のうちは使えれば良い、と割り切りましょう。

フレームワークを自作できる

正確にはフレームワークの内部を理解できるようになっておこうということですが、「理解」するのに一番いいのは作ることだろうと思いました。

もちろんLaravelやCakeと同じものを完全に作れる必要はなく、簡易的にしても叶わないので、内部の動きを自分なりに理解できることが大切です。

というのもフレーワークに慣れすぎてしまうとイレギュラーな処理をかけなくなってしまったり、あまり理解していなくても「こう書けば動く」で終わらせてしまいがちです。

最初のうちはそれで仕方ないと思いますが、そのままずっときてしまうと理解が朝いままで終わってしまいます。

そのためにも内部でこういう処理が行われているということを理解するために自力でフレームワークを作成することをオススメします。

作り方などは下記の書籍に書かれています。

パーフェクトPHP

PHPエンジニアの間では(多分)有名な本です。

とりあえずPHP編はこんな感じで。次回は他の分野(DBかな?)などを書いていこうと思います。

関連記事

PHPで掲示板を作ろう!(データベース編) その4 SQL編

今回はMySQLで掲示板を作ろうの続きです。前回のMySQLの講義が11/18日ですね。 2か

記事を読む

条件によって処理を分けよう (if)

おはようございます。松本です。 昨日はひさびさにサイクリングを長時間楽しみました。往復で50キ

記事を読む

勘違いしてはいけない未経験ややる気という言葉

かなり久しぶりの投稿になってしまいました・・・ 以前ダイエットに成功し、2年以上かけて10kg

記事を読む

セミナー告知のお知らせ

突然ですが2018/06/16にIT業界への就職希望者を対象とした無料プログラミングセミナーを開催さ

記事を読む

気を付けよう!個人事業主として働くときのトラブル

最近は開発のほうが忙しく、更新頻度が落ちているのですが、既存の記事を読んでる読者さんが多く、アクセス

記事を読む

オブジェクト指向 その2 「設計図」と「部品」

それではオブジェクト指向を具体的に解説していこうと思います。といっても、天才でない限り、初学者でいき

記事を読む

ガチンコ塾、人気記事ベスト5

このブログも開設して約半年たちましたね。 思った以上にたくさんの方に読んでもらえてうれしいです

記事を読む

PHPで掲示板を作ろう!(データベース編) その1 データベースとは

以前、掲示板を作成するブログ記事を書きました。 その1 PHPで掲示板を作ろう! 掲示板の作成

記事を読む

CMSとは?

先週オフィスにきた新規の受講生の方に「CMSを使いたいので、使い方を教えていただきたいのですが・・・

記事を読む

ゼロからWEBプログラミング(PHP)をマスターするのに何時間かかる?

おはようございます。松本です。 さて、本日のテーマはタイトルのとおりです。以前受講生の方に「ゼ

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

転職エージェントについて

さて、エンジニアとして転職を考えている人であれば転職エージェントを使っ

エンジニアが転職して年収を上げる方法を考えてみました。

えー前回の記事でも書きましたが、2020年2月現在転職活動中です。

2020年のご挨拶

今更ですが、明けましておめでとうございます。 2019年も2本し

自社開発>客先常駐である本当の理由

このブログでも何回か取り上げていますが、ITエンジニアの働き方としては

エンジニアにとって必要なコミュニケーション能力とは

気がついたらもう3月下旬になっていますね・・ 年末年始忙しかった

→もっと見る

  • follow us in feedly
PAGE TOP ↑