*

あなたのPHPレベルを判定してみよう!未経験者限定スキル判定表

プログラムを勉強していると自分のレベルみたいなものが気になる方は多いでしょう。

私の場合も独学中心でプログラミングを進めており、同期もいないので、自分のスキルが周りに比べてどうなのかが不安でした。

講師業を経験して、初心者や習い始めの生徒たちは多くみてきたこともあり、レベル別のできること、できないこと、これからやるべきことなどをまとめてみようかと思います。

レベル1(勉強し始め)

PHPを勉強し始めの状態です。

個人的には「プログラミングをやってみようかな~」と思っても9割ぐらいの方がこのレベルで挫折すると思います。

できること・知っていること

  • プログラミングというものをなんとなく知っている
  • PHPとHTML/CSSの違いがなんとなくわかる
  • XAMPPを起動できる
  • echoを使って文字を画面に表示させることはできる
  • 簡単な変数を定義して値を代入したり、画面に表示させることはできる
  • 非常に簡単な条件分岐($aが10より大きいときにOKを表示)はできる
  • 関数、クラスという言葉があることはしっている
  • 簡単な配列($arr=[“apple”,”orange”,”banana”]など)を展開させることはできる
  • 1から10までを繰り返し構文を使って表示させることができる

できないこと

  • XAMPPがどういうものか正確には知らない
  • セミコロン忘れ、条件分岐の{}対応忘れなどでおこる単純なシンタックスエラーを解決できない。あるいは発見に何時間もかかる。
  • ソースにインデントがないため、非常にみにくい
  • 2次元配列の操作ができない
  • 配列の中で条件分岐が絡むような処理はできない
  • for,while,foreachの使い分けができない
  • 関数、クラスは使えない
  • ファイル読み込み、データベースとの接続などもわからない
  • 講師と会話ができない(疑問点を説明できない)
  • エディタの機能をほとんど使えない

やるべきこと

  • とにかく配列の処理+条件分岐の基本構文。
  • エラーの対処が難しくなるので10~20行ぐらいのプログラムを中心に簡単な配列の問題をたくさん繰り返すこと。
  • 慣れていくなかでエディタの便利な機能を少しずつ活用していくこと
  • インデントをそろえること
  • プログラミングがわかる人を確保すること

レベル2(入門者)

プログラミングが少しずつできるようになってきて面白くなってくるころ。

ただし現実的にいうと一般的にここらへんが独学の限界だと思います。

できること・知っていること

  • foreachを使い、2次元配列(連想配列を含んだ配列)を展開して、表示することができる
  • 配列の中で簡単な条件分岐の処理に対処することができる
  • 引数が1,2つ程度で10行以内の簡単な関数を作ることができる
  • 1つか2つの入力欄があるフォーム画面を作り、値を飛ばして、表示をさせることができる
  • フォームで簡単なエラーチェックを実装することができる
  • テキストファイルを読み込み、配列に格納できる
  • テキストファイルへデータを書き込むことができる
  • 簡単なデーターベース(テーブル1つ、カラムが3,4)を作り、SELECT,INSERT,UPDATE,DELETEといった短いSQL文をかける
  • 正確ではなくても、自分の疑問点を講師になんとか説明できる

できないこと・知らないこと

  • 空白とnullの違いが判らない
  • 簡単なシンタックスエラー以外は自力で対処できない
  • フォーム画面の入力欄に値を保存させる仕組みがよくわからない
  • 処理に応じてソースを分けられず、全て1つのソースに書いてしまう
  • PHPとHTMLが一緒になったソースしか書けない
  • どこを関数にすればよいかわからない
  • 関数はreturnがあるときと、ないときがわからない
  • クラスがわからない
  • セッションがわからない
  • PHPとデータベースをつないでデータを取り出す、書き出すことができない
  • SQLはリレーションがわからない
  • Linuxコマンドがわからない

やるべきこと

  • 引き続き配列の処理を繰り返しを行い、ある程度複雑なものでもできるようにしておく
  • クラスの独学での理解は非常に難しいので聞ける人を確保して、しっかり理解する
  • 簡単なお問い合わせフォーム、掲示板を作り、機能をどんどん拡張させていく
  • 自宅のいらないパソコンにLinuxを入れるorVPSやクラウドサーバーをかりてLinuxになれる

レベル3(初心者)

簡単なお問い合わせフォームはなんとか作れるようになったレベル。

初歩的な入門書をマスターするとこれぐらい。

できること・知っていること

  • 基本的な配列の操作や処理がほぼ問題なくできる
  • 頻出するエラーであれば、8割がた自力で対処できる
  • 入力、エラーチェック、値の保存機能のついた簡単なお問い合わせフォームが作れる
  • PHPとデータベースをつなぎ、入出力処理を行える
  • 簡単なリレーションを理解している。
  • 簡単なクラスを作ることができる
  • PHPとHTMLを分離することができる
  • 問題点を講師に的確に伝えられる
  • エディタの基本的な機能を使いこなすことができる
  • ls,mv,cpなど簡単なLinuxコマンドを使い、最低限の移動やファイル操作などができる
  • yumコマンドでアプリケーションをインストールすることができる

できないこと・知らないこと

  • 他人が読むことを前提としたソースを書くことがまだできない
  • インデントがやたら深かったり、100行を超えるような長いソースを書いてしまう
  • エラー処理や例外処理を考えてないため、正常系以外の処理でバグがしょっちゅう起こる
  • 命名が甘く、dataArrなど一般的すぎる変数が多い
  • まだ十分にクラスが使えない
  • クラスの修飾子の使い分けができない
  • POSTとセッションの使い分けが不十分
  • JOINが3つ以上になるようなテーブルは対処できない。
  • Linuxは最低限のコマンド以外はよくわからない

やるべきこと

  • 掲示板をひたすらどんどん拡張させるか、会員登録サイトや小さいECショップみたいなものにチャレンジする
  • 人に使ってもらってバグを出しまくる
  • プログラムがわかる人にソースを見てもらい、改善意識を持つ
  • サーバーでの作業にとにかくなれる

レベル4

できることは増えるがそれ以上に自分ができていないこと、知らないことを自覚めるレベル。

できること・知っていること

  • 変数、関数、クラスの命名に気を使っている
  • ある程度の属性、機能のまとまりごとにクラスが作られている
  • 適宜、コメントが入っており、他人が見ても何をやっているかがわかる
  • 大体の関数が30行以内、インデントが2段以内に収まっているため全体的に読みやすい
  • 異常系の処理も基本的なことは書かれているため、典型的な処理であればシステムが止まることはない
  • 3つ以上のリレーションについても理解しており、合計や平均などの基本的な算術関数を扱うこともできる
  • ファイルの移動に関してはGUIでやるよりもコマンドのほうが早い
  • 単純な仕様であればどのように実現するかが大体わかる

できないこと・知らないこと

  • オブジェクトを完全には理解できていないため、継承などを使ってプログラムの抽象度を上げる工夫などが不完全
  • スコープを小さく抑える工夫などがまだたりないため、大規模なアプリを作成する際にバグが残る
  • 適切なライブラリを使わず、すべての処理を自力で書こうとするため、バグが残る
  • ユーザーの立場に立つことができないため、おかしな機能があっても気づかなかったり、非常に使いにくい画面などを作ってしまう

やったほうがいいこと

  • 理論的なことを書いている本(例:パーフェクトPHPなど)を読んで使われている技術の理論的背景について勉強すること
  • 他人のプログラムをたくさんみること
  • プログラムを修正しまくって、修正があったときに短時間で対応するにはどう組んだらいいかを考えること
  • やさしいオープンソースのソースを見てみること(ECCUBEはおすすめ)
  • ユーザーの立場に立った画面構成などについて考えること

まとめ

大体PHPを勉強し始めの方のレベルについてなんとか文章でまとめてみました。

レベル4までいくと簡単なWEBアプリならなんとか作れる、PHPが少しずつわかってきたといえるでしょう。

それ以上はひたすら慣れもありますし、進みたい方向性や身につけたい技術により少しずつ変わってくるのでは・・・と思います。

参考になれば幸いです。

関連記事

PHP 掲示板

PHPで掲示板を作ろう! 掲示板の作成方法 その3(エラーチェックとファイル書き込み)

今回はPHPのコードの説明です。 掲示板の作成方法についてやります。 えー、前回の掲示板

記事を読む

PHPで掲示板を作ろう! 掲示板の作成方法 その1

以前、お問い合わせフォームを作成しましたが、今回からは数回に分けて掲示板を作成していこうと思います。

記事を読む

プログラミングの基本ルール

ガチンコ松本です。 さて、準備が整ったところでさっそくPHPのコードを書いていきましょう!

記事を読む

データを扱ってみよう その2(配列)

こんばんは松本です。 少しずつ暖かくなってきましたね。暖かいのはいいんですが、オフィスでブログ

記事を読む

サービスを売るのに必要な能力

ゴールデンウイークで更新をサボっておりました(汗)今回はちょっとマーケティングのお話について。

記事を読む

エンジニアを採用する上で大事なこと

本日はエンジニアの採用について書きたいと思います。最近少し採用に絡んだ仕事をしていまして、経営者の方

記事を読む

バグをゼロに近づけるテスト手法とは?

私は去年のはじめまではPHP、去年の春~年末はJavaScript、今年からはJavaを触っています

記事を読む

PHPのメリット・デメリット

うちのブログで一番読まれている記事が「フレームワークのメリット・デメリット」ですね。 タイトル

記事を読む

エラーメッセージで挫折

もうエラーメッセージで挫折しない! 4つのエラーメッセージ対処法

このブログで何回か書いたのですが、PHPに限らずプログラミングの独学はかなり難しいです。 その

記事を読む

エディタを使いこなそう

PHPでプログラミングを始めるためにはXAMPPのインストールともう一つエディタというソフトをそろえ

記事を読む

Comment

  1. Notz より:

    いまの自分のレベルが気になっていたので、とっても参考になりました!

    私は、とある事業会社に今年から新卒入社し、PHPで社内向けwebアプリなんかを作成しております。普段は、Laravel や CakePHP などのフレームワークを用いて、開発を進めていますが、イマイチ自分がどのレベルにあるのかわからず、ただひたすらに仕事をしていました。現在の私は、Lv.4 に該当し、まだすべきことはあるのだと改めて実感できました。

    次の目標は、意味のあるものを、ユーザーのためになるものを作るよう、努めたいと思います。

    • matsumoto より:

      Notz様

      はじめまして、松本です。
      コメントありがとうございます。

      >私は、とある事業会社に今年から新卒入社し、PHPで社内向けwebアプリなんかを作成しております。
      >普段は、Laravel や CakePHP などのフレームワークを用いて、開発を進めていますが、イマイチ
      >自分がどのレベルにあるのかわからず、ただひたすらに仕事をしていました。現在の私は、Lv.4 に該当し、
      >まだすべきことはあるのだと改めて実感できました。

      これを絶対的な基準という気は毛頭ないですが、Notz様にとってなんらかの
      レベルの把握となればなによりです。

      > 次の目標は、意味のあるものを、ユーザーのためになるものを作るよう、努めたいと思います。

      エンジニアとして頑張ってくださいね!

Message

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

無料PHPスクール
自社開発>客先常駐である本当の理由

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

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

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

エンジニアを採用する上で大事なこと

本日はエンジニアの採用について書きたいと思います。最近少し採用に絡んだ

エンジニアが給料を上げる方法を真面目に考えて見ました。

本日はエンジニアと給料の話題について触れて行こうと思います。 エ

エンジニアの「スキル」とはなんぞや

給与が低いことに悩んでるエンジニアへのアドバイスをツイートで見たところ

→もっと見る

  • follow us in feedly
PAGE TOP ↑