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

プログラムを勉強していると自分のレベルみたいなものが気になる方は多いでしょう。
私の場合も独学中心でプログラミングを進めており、同期もいないので、自分のスキルが周りに比べてどうなのかが不安でした。
講師業を経験して、初心者や習い始めの生徒たちは多くみてきたこともあり、レベル別のできること、できないこと、これからやるべきことなどをまとめてみようかと思います。
Contents
レベル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が少しずつわかってきたといえるでしょう。
それ以上はひたすら慣れもありますし、進みたい方向性や身につけたい技術により少しずつ変わってくるのでは・・・と思います。
参考になれば幸いです。
関連記事
-
-
初心者でもできる!作れる!WEBサービスの開発 その4 総まとめ編
前3回の記事でWEBサービスを作ったお話をさせていただきました。 (前回までのお話し)
-
-
エンジニアが転職して年収を上げる方法を考えてみました。
えー前回の記事でも書きましたが、2020年2月現在転職活動中です。 この転職なんですが、ものす
-
-
未経験者がWEB系企業の就活で注意すべき5つのポイント
昨日、あまり寝てないせいか、今日も寝れない松本です(爆) 生活リズムはやはり大切ですね。睡眠時
-
-
PHPで掲示板を作ろう! 掲示板の作成方法 その4(ファイル読み込みとHTML表示)
今回でラストです。(次回はまとめをやる予定ですが。) これだけのソースにしては説明が長かったで
-
-
勘違いしてはいけない未経験ややる気という言葉
かなり久しぶりの投稿になってしまいました・・・ 以前ダイエットに成功し、2年以上かけて10kg
-
-
初心者がプログラミング学習で挫折しないために大切な2つのポイント
ブログを開設してから半年近く、記事にして70ちょっと書いてきましたが、人気のある記事を見ていると大き
-
-
エンジニアが給料を上げる方法を真面目に考えて見ました。
本日はエンジニアと給料の話題について触れて行こうと思います。 エンジニアといいますか、社会人と
-
-
2か月でプログラミングをマスターすることは可能か?!
最近はWEB上でも2か月(あるいはそれに近いような短期間)でプログラミングがマスターできます!みたい
-
-
繰り返しを学ぼう (for,foreach)
こんばんわ。松本です。 ゴールデンウィークもそろそろおわりですね。といいつつ、私はどこにも言っ
Comment
いまの自分のレベルが気になっていたので、とっても参考になりました!
私は、とある事業会社に今年から新卒入社し、PHPで社内向けwebアプリなんかを作成しております。普段は、Laravel や CakePHP などのフレームワークを用いて、開発を進めていますが、イマイチ自分がどのレベルにあるのかわからず、ただひたすらに仕事をしていました。現在の私は、Lv.4 に該当し、まだすべきことはあるのだと改めて実感できました。
次の目標は、意味のあるものを、ユーザーのためになるものを作るよう、努めたいと思います。
Notz様
はじめまして、松本です。
コメントありがとうございます。
>私は、とある事業会社に今年から新卒入社し、PHPで社内向けwebアプリなんかを作成しております。
>普段は、Laravel や CakePHP などのフレームワークを用いて、開発を進めていますが、イマイチ
>自分がどのレベルにあるのかわからず、ただひたすらに仕事をしていました。現在の私は、Lv.4 に該当し、
>まだすべきことはあるのだと改めて実感できました。
これを絶対的な基準という気は毛頭ないですが、Notz様にとってなんらかの
レベルの把握となればなによりです。
> 次の目標は、意味のあるものを、ユーザーのためになるものを作るよう、努めたいと思います。
エンジニアとして頑張ってくださいね!