先日、プログラミング言語であるPHPの試験「PHP7技術者認定初級試験」に無事合格したので、その学習方法やテキストをご紹介しようと思います。
学習前のスペック
PHP7の学習を行う前の私のスペックについてご紹介します。
大卒後に金融系のシステムエンジニアとして3年勤務して、主な言語はHTML、CSS、JavaScriptでした。
その後はSESの会社に入り、いくつかの現場に常駐。
SES時代にはJava、PHP、AngularJS、PHP、ActionScript、Coldfusionなどの言語を扱いましたが、正直Java意外はほとんど覚えていないです。
使う言語がコロコロと変わるので全く身につかず、PHPもちょろっとやりましたが全く覚えていない状況。
DBに関してはOracle、PostgreSQLを使っていましたが、知識としては基本的なSQLが書けるくらいです。
参考にしたテキストとサイト
徹底攻略PHP7技術者認定[初級]試験問題集
テキストは「徹底攻略PHP7技術者認定[初級]試験問題集」を選びました。
PHP技術者認定機構の認定教材として指定されているのが主な理由です。
Javaの資格試験を受ける際に定評のある黒い参考書(通称黒本)に似ていたのでこれさえあれば大丈夫かなと思いテキストはこれだけにしました。
(2024/12/14 03:49:32時点 Amazon調べ-詳細)
PHP: 関数リファレンス
PHPの公式リファレンスも使いました。
テキストで深く触れられていない箇所、主に関数などをここで調べると詳しく説明されているので便利です。
PRIME STUDY
最初はテキストだけで試験に望もうと思っていたのですが、無料で利用できる模擬試験サイトを見つけました。
こちらはテキストを全て終わらせた後に使いました。
PRIME STUDY(プライム・スタディ) – 「Python 3 エンジニア認定試験」と「PHP 技術者認定試験」の模擬試験サイト
学習の記録
日毎の学習内容と所要時間をメモしていたのでまとめてみました。
※所要時間には復習時間も含めています。
1日目:2020/12/4
学習内容 | 所要時間 |
---|---|
第1章 PHPの特徴 | 25分 |
第2章 テキストと数の操作 | 50分 |
第3章 ロジック:判定と繰り返し | 40分 |
勉強初日はモチベも高く一気に3章進めました。
「PHPの特徴」についてはとにかく分からないので適当に解いて復習。
「テキストと数の操作」「ロジック:判定と繰り返し」は他の言語と似ている箇所が多いので、他の言語がすでに使える方はつまずくことはなさそうです。
関数はとにかく復習して覚えます。
2日目:2020/12/5
学習内容 | 所要時間 |
---|---|
第4章 データのグループ:配列の操作 | 45分 |
この日はあまり進みませんでした。
配列はJavaの内容と似ていますが少し違う箇所があるので注意が必要です。
3日目:2020/12/7
学習内容 | 所要時間 |
---|---|
第5章 データのグループ:関数とファイル | 30分 |
第6章 データとロジックの統合:オブジェクトの操作 | 40分 |
第7章 ユーザとの情報交換:Webフォームの作成 | 60分 |
第8章 情報の保存:データベース | 45分 |
前日かなりサボってしまったので、この日は頑張りました。
見慣れない演算子や関数の呼び出し方だったので少し戸惑いながら進めます。
親クラスやサブクラスの考え方はJavaと同じような感じです。
継承はextends、アクセス修飾子はpublic、protected、privateとか。
関数に関しては覚えるしかないのでひたすら復習して覚えます。
Webフォームに関してはHTMLの知識があるとスムーズにできそう。
DBはSQLの知識が必要になりますが、かなり基本的な知識があれば大丈夫そうです。
テーブル結合までは出てこないで、検索条件の指定(WHERE)やソート(ORDER BY)が出ます。
4日目:2020/12/8
学習内容 | 所要時間 |
---|---|
第9章 ファイルの操作 | 55分 |
ファイルの操作はJavaと似たような感じでした。
似たような関数がいくつか出てくるので間違えないように覚えます。
fopen()→fgets()→fclose()の流れや、CSVを読み込むfgetcsv()、ファイルの内容を全て読み込むfile_get_contents()など間違えやすいです。
ファイルのアクセス権限がごちゃごちゃしてるのでふとした時に復習しといた方がいいです。
5日目:2020/12/9
学習内容 | 所要時間 |
---|---|
第10章 ユーザの記憶:クッキーとセッション | 45分 |
第11章 他のWebサイトやサービスとのやり取り | 50分 |
ここからはJavaの知識外でした。
クッキーを扱う関数であるsetCookie()とその引数はかなり大事なので、引数の順番と内容まで覚えます。
セッションの関数を使うことで何がどうなるかを覚えておくといいです。
他のWebサイトとのやり取りで使用するcURLも少しややこしいので、こちらも関数をひたすら復習して覚えます。
6日目:2020/12/10
学習内容 | 所要時間 |
---|---|
第12章 デバッグとテストと開発の心得 | 60分 |
第13章 一般的な処理や話題 | 90分 |
PHPの構成やエラーの種類、単体テストについて学びます。
error_reportingの種類や、単体テストを行うPHPUnitの導入からアクセス権を変更してからの実行など。
ここはもう覚えるしかないので問題を解いた後に解説を読んで何度も復習します。
日付の操作やメールの送信についてはPHPが動かせる環境があれば実際に動かしながら試していくと理解が深まります。
7日目:2020/12/11
学習内容 | 所要時間 |
---|---|
第14章 総仕上げ問題 | 90分 |
PRIME STUDY –「PHP 技術者認定試験」 | 90分 |
試験前日です。
総仕上げ問題は30分ほどで解けましたが、ギリギリ合格くらいでした。
間違えた箇所だけでなく解説を全て読み込みます。
最後に無料で模擬試験が受けられるPRIME STUDYで実際に試験の時間を測りながら問題を解きます。
この無料模擬試験が意外に難しくて、結構間違えてしまいました。
メールで間違えた箇所は送られてきますが、解説が書かれていないのでそこはPHPの公式リファレンスを見ながら復習します。
いざ試験:2020/12/12
いよいよ試験日です。
会場には30分前くらいに着いて、不安な箇所の解説を読みました。
会場に入ると名前と受験する資格の種類を聞かれます。
答えたら席について待機。
スマホや参考書を含む荷物は隣の席に置いておきます。
時間になると前もって登録しておいたOdyssey IDとパスワードでPCで開かれていたサイトにログインします。
OdysseyのIDとパスはメモして持っていくと安心です。
ログインできたら自分の登録情報と受験する試験を選択して待機。
画面を担当の方に確認してもらいざ試験スタートです。
試験時間は60分。
画面左下には残りの受験時間が表示されていています。
問題は選択式で問題によって選択する数は異なります。
気になる問題はチェックして、後から一気に確認できるようになっています。
Javaの試験の時は紙を一枚渡されて計算などのメモができたのですが、PHPの試験ではメモ禁止でした。
なので文字列の操作や、forやwhileで何回回るかは頭の中で考える必要があります。
問題をいくつか解き始めた時はかなり簡単な問題が出ていて「あれ?これ楽勝で合格できるんじゃない?」と思いましたが、どんどん不安な問題が増えていって気づけば10問ほど不安な問題が。
10問全て間違えている可能性もあるし、そもそもそれ以外の問題も間違えている可能性もあるのでその時点でギリギリ合格か落ちているかという感じ。
不安な問題をうんうんと考えているとあっという間に試験終了。
そのまま画面上で合否がわかります。
結果は無事合格。
試験は700/1000で合格となりますが、今回は825/1000で合格できました。
結果はまずまずといったところでしょうか。
とは言ったものの間違えていた問題がいくつかあったことは確かで、あーもっとあそこをしっかり理解しておけばとか、コマンドの内容をちゃんと見ておけばと後悔が残ります。
帰宅途中は帰ったらしっかり復習しようとかなりモチベーションがあったのですが、自宅に帰って見ると現実はちょろっと復習したくらいで終わり。
自宅に帰るとモチベが下がる現象はなんなのでしょうか。
試験を終えてみて
試験を終えて見て思ったことは、思ったより自分って頑張れないなということ。
試験の申し込みをしてから1週間の期間があったので、一日3〜4時間もすれば簡単に受かるだろうと思っていたのですが、いざ勉強を開始すると2時間も勉強をするとやる気がなくなってしまいすぐ別のことをしてしまいます。
自分はやればできるんだとものすごくベタなことを思っていましたが全然頑張れない。
部屋の中がシーンとしているとなぜか集中できないので、YouTubeで適当な動画を流しながら勉強しているといつの間にか動画をずっと見てしまってたり。
今考えると動画流しながら勉強ってそりゃ無理ですよね。
今まで色々な言語を触ってきた知識がかろうじて頭に残っていて、それに助けられたような気もします。
今回は初級試験でしたが来年から始まるPHP8の上級試験のことを考えると、同じような勉強の仕方では全く通用しないなと感じました。
まずは集中して勉強ができる環境作りと計画性、自制する力をつけないといけないなと。
そういうことを学生時代に身につけていなかったことを後悔しています。
散々ゲームばかりしていましたが、何をやってたんだ自分。
過去のことをグダグダ言っても変わらないですが、どうしても今そう思ってしまいます。
次はOSS-DB Silverを受けようと思っているので今回の反省を活かして勉強します。
最後まで読んでいただきありがとうございました。
(2024/12/14 03:49:32時点 Amazon調べ-詳細)
合格証が届きました | 2021年1月30日 追記
1月末にPHP7技術者認定初級試験の合格証が届きました。
合格証はこんな感じです。
実際に手に取ると嬉しいものです。
努力した甲斐がありました。