PHPはWebアプリを作るためのプログラミング言語といって良いので、次のような順番で学ぶのが良さそうです。書籍については好みがありますから、ここで紹介しているものはあくまで例であって、自分の実力にあったもの、もしくは自分にとって理解しやすいものを読むようにしましょう。
- HTML/CSSの基礎
- PHPの文法基礎
- デザインパターン
- PHPフレームワーク
- セキュリティ対策
- テスト
HTML/CSSの基礎
HTML/CSSの基礎を学ぶには、下記が良さそうです。HTML/CSSはバージョンが上がってきているので、結局「いまWebサイトを作るなら、どうするのが良いのか」というのがわかりにくいのですが、いずれにせよ基本をおさえたところで、リファレンス本を使ってブラウザごとのサポート状態と、自分が対象としているユーザにあわせて、どのタグを使うか決めていくことになります。
PHPの文法基礎
PHPの文法基礎を学ぶには、下記の書籍から入ると良さそうです。文法以外にも軽量なフレームワークについて解説がされているので、本格的なフレームワークであるsymfonyやCakePHPを学ぶ前に本書の内容を理解しておくと良いでしょう。
これ以外にも読んでおくと良さそうな書籍としては下記あります。レシピもあるとやりたいことから書き方を知ることができるので、そろえておくと良いでしょう。
デザインパターン
デザインパターンについてはPHPではそれほど必要ないように思えるかもしれませんが、オブジェクト指向の機能を利用するなら知っておいた方がいいでしょう。PHPにおけるデザインパターン入門は入手困難なようですから、本家のGoF本か、結城氏の本は手元においておきたいところです。
PHPフレームワーク
フレームワークとしては、Symfony2, Symfony1.4, CakePHP といったものが有名です。他にも色々あります。自分にとって使いやすそうなフレームワークを選んで勉強すると良いでしょう。
- 効率的なWebアプリケーションの作り方 ~PHPによるモダン開発入門
- symfony 1.4によるWebアプリケーション開発―オープンソース徹底活用
- 詳解CakePHP辞典―2.0/2.1/2.2/2.3対応
- CakePHP2 実践入門 (WEB+DB PRESS plus)
意外とWordPressから入ってみるというのもありかもしれません。
セキュリティ対策
セキュリティ対策についても理解が必要でしょう。PHPについては、良い参考書がありますから、これも是非手元において参照できるようにしておいた方がよいですね。
テスト
後は、テストについてですが、簡単なユニットテストの話ならフレームワークの書籍で紹介されています。ただ、PHPプログラマを対象としたテストについての書籍というのは見当たらないので、一般論で説明をしている書籍を探すと良いでしょう。
イメージがわかないときは、Javaプログラマ向けの書籍などで勉強して応用するのが良いのでしょう。ただJavaのプログラムをある程度理解していないと難しいかもしれません。アジャイル開発でよく利用されているJenkinsや、テスト駆動開発も考え方も理解しておくとバグの少ないプログラムが作れるようになるはずです。
- バグがないプログラムのつくり方 JavaとEclipseで学ぶTDDテスト駆動開発 (Be agile!)
- Jenkins実践入門 ~ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)
- テスト駆動開発入門
こうやって見てみると、「誰でもすぐにPHPプログラマになれる」というのはある意味正しいのですが、ある意味間違っていることがわかります。やはり、そこそこの時間をかけて勉強をしないと、PHPプログラマと言えるようにはならないですね…