DESIGNMAP

ノンプログラマーのためのPHPの独学方法

記事公開日:2015年07月09日最終更新日:2015年08月30日

独学でWeb制作を身につける

2011年5月に書いた「WebデザイナーやノンプログラマーにおすすめしたいPHPの勉強法」は、全面改訂版を書きたいと思いながらも、書けないまま丸4年以上が経ちました。この記事は情報が古くなっており、とくに本の情報は、間違って買う人がいないように、一部情報を削除をしています。

嬉しかったのは、後に、id: higan_nさんの「【再掲】やってみた「WebデザイナーやノンプログラマーにおすすめしたいPHPの勉強法」」という実践記事がでたことです。

この記事は筆者のPHPの勉強法の記事を参考に、自分なりに工夫をされていて、とても参考になります。筆者もこの記事の内容に驚きつつ、凄いとおもいました。また独学記事を書いてよかったとおもいました。

基本的な大筋は前回と変わらないですが、今回、もう一度PHPの独学方法をまとめていきます。

最初に断っておきますが、このPHPの独学方法はあくまで筆者個人の経験にもとづいた提案にすぎません。バイアスがかかっていますので、鵜呑みにしないでください。ただ、PHPの勉強で悩んでいる人に、ささやかな独学のヒントになるかもしれません。

プログラミング自体の勉強は他言語のテキストで

まったくプログラミングの初心者の方が、PHPの入門書を買うと、ほとんど挫折するというのが、筆者の持論です。

筆者自身がプログラミング初心者で習得に苦労をしました。何冊入門書をかっても、根本がよく分からない、書けるようにならなかったのです。最初の壁を突破したのは、他の言語の入門書のおかげです。

PHPをいったんあきらめ、CやJavaの本を読んでみたのです。ようやく基本的な概念が理解できるようになりました。

本のせいにするのはよくないのですが、PHPの入門書は、どうしてもプログラミングそのものの解説が浅いのです。

例えば、プログラミングの初学段階では、関数の戻り値、式の評価、演算子による評価が、重要になってきます。PHPの入門書は、バックエンド独特の論点(セッション、クッキー、セキュリティ)やデータベース操作がメインになってしまうので、紙幅の都合で、じっくりプログラミングそのものを解説する余裕がありません。

本当は、1,000ページくらいの入門書が本当は必要なんです。

ではどうするのか。
筆者の答えは、PHPの入門書をあきらめ、他の言語の入門書で、プログラミングそのものの概念をじっくり学ぶことです。

具体的にいうと『スッキリわかるJava入門 第2版』か『新・明解C言語 入門編』がおすすめです。

両書とも図解が豊富で、分かりやすいです。

Javaは教育用言語としても定番なので、プログラミングの基礎本の多くは、解説のコードでJavaを採用しているところが多いです。

Javaは、どん欲に多くの言語の機能をとりいれています。C++、Cedar、Adaなどの言語から文法をとりいれています。Javaをやっておくと、間接的にいろいろな過去の言語を学ぶことができます。

CはJavaよりもっとシンプルな言語です。よりプログラミングの基礎を集中して学べます。Javaの場合、クラスやインターフェイスなどのオブジェクト指向がでてきてしまうので、ややこしい部分があります。

JavaとCの入門書をおすすめしましたが、Rubyもおもしろい言語です。
Java、C、Rubyのどれかで、あせらず、プログラミング自体を理解していきましょう。

このアプローチは、一見遠回りのようにみえますが、他の言語を経験しておくとPHPの勉強、今後の他の言語の習得がスムーズです。

いずれにせよ、今後、PHPだけでなく他の言語を書く機会がでてきます。
エンジニアなら、案件ごとにいろいろな言語を経験するでしょう。

その中でもJavaScriptは絶対にお世話になるでしょう。

プログラミングの基礎がしっかり固まっていると、他言語の勉強でも、いきなり中級者向けの濃い本から読めます。

急がば回れです。

PHPの勉強の前にHTTPの勉強を

次に学びたいのがHTTPプロトコルの概要です。

当ブログでは、過去、何度もHTTPの重要性について書いてきました。直近で書いたものでは「HTTP、動的サイト、WordPressのブログ - まったくのゼロから、独学でWebデザイナーになるためのロードマップ 【Vol. 4】」が参考になります。

普段、Webをみるときは、すべてHTTPをつかっています。
Webブラウザから、WebサーバーにHTTPリクエストをします。Webサーバーは、HTMLをよみとって、そのデータをHTTPレスポンスのボディ部にいれて返します。このやりとりは、ファイルごとに行われます。

HTTPが分からないと、PHPの根本的な動きが、まったく分からなくなります。

PHP(バックエンド側)とJavaScript(クライアントサイド側)の処理の流れを混同される方がいますが、根本的にはHTTPを勉強してないからです。

HTTPがわからないと、header関数、クッキー、セッションも表面だけの理解になります。WebブラウザとWebサーバーの動きのやりとりをしっかりイメージしないとだめです。

PHPの入門書では、紙幅の都合で、じっくりHTTPが解説されません。HTTPは、『Webを支える技術 -HTTP、URI、HTML、そしてREST』という本がおすすめです。当ブログでもこの本を何度も紹介しています。

コンピューターの仕組みを学ぼう

2014年に『入門 コンピュータ科学 ITを支える技術と理論の基礎知識』という翻訳本がでました。

1章、2章が必読です。マシン語の仕組みがわかります。全部読む必要はないとおもいます。1章、2章だけでも、元は十分にとれます。筆者のような文系出身にはありがたい本です。この本は、多くのアメリカの大学で教科書採用されています。

ようやくPHPの入門書へ

プログラミングの基礎、HTTPの概要、コンピューターの仕組みがわかったら、ようやくPHPの入門です。

最大のコツは、細かい文法を覚えず、データベースのCRUD操作の勉強にフォーカスすることです。
CRUD操作とは、データベースのテーブルの作成、テーブルデータの読み込み・更新・削除です。

PHPの最大の強みはデータベース操作が簡単なことです。

『いちばんやさしいPHPの教本』という本が、まさにCRUD操作だけにフォーカスした本です。

一冊を通して、環境構築からはじまり、料理レシピアプリをつくりこんでいく構成になっています。

本書の良いところは、CRUD操作に絞り、学ぶ文法も最小限になっているところです。ループ処理は、foreachだけに絞っています。おそらく紙幅の都合で、こういう削ぎ落とした構成になったのだとおもいます。

初版は誤植が多く、Amazonの評価が低いですが、構成がおすすめできます。ソースも読みやすいです。

出版社のサイトで正誤表がまとまっています。著者のコメント付きのソースがダウンロードできます。これは印刷しておくとよいでしょう。本では全体のソースが割愛されているからです。

CRUD操作を通して、PHPの実用性の高さ、おもしろさを実感してください。

お問い合わせフォームだけにしぼった本

もう一冊入門書をご紹介します。電子書籍ですが『PHP入門 確認画面付きのお問い合わせフォームをつくりながらPHPを学ぶ』です。この本もでてくる文法は最小限です。お問い合わせフォームをつくりこんでいく手順書になっています。

PHPの基礎本にも挑戦

ある程度、CRUD操作に慣れてきたら、PHPの基礎本も読んでみましょう。

基礎本はダントツに『パーフェクトPHP』がおすすめです。

濃厚な内容です。これだけ濃い本が、日本語で読めるのが幸せです。内容を考えると、コストパフォーマンスが高いです。個人的には、5万円くらいは払ってもよいとおもいます。

難しい内容も含んでいるので、現在の力の読める範囲で読んでおきます。筆者は、時々、いまも読み返します。PHP7の登場にあわせて、改訂版を期待したい本です。

おすすめのPHPの実践本、サンプル本

ある程度、PHPの基礎が固まったらサンプルコードを読むことです。ソースを読んで、開発の小さなパターン、イディオム、手筋を知ることができます。

『初めてのPHP、MySQL、JavaScript&CSS 第2版』

フロントエンドからバックエンドまで横断する本。最後にFacebookのようなサイトをつくります。

『PHP and MySQL: Create - Modify - Reuse』

英語の本で未翻訳ですが、ページの大半がサンプルコードなので、英語力は関係なく読めます。ソースのコメントだけで、解説はほとんどありません。内容はやや古いですが、サンプルが多彩で、多くのイディオム、手筋をこの本から学びました。

『PHP Cookbook』

英語の本で未翻訳ですが、出来れば買っておきたい本です。800ページ近くの読み応えのあるサンプル集です。

サンプル集なのでコードが中心です。英語の分量は少ないです。じょじょに英語のドキュメントに慣れていきましょう。コードだけを読んでいっても、本書は勉強になります。昨年に第3版がでました。

円安の影響で、kindle版でも5,000円くらいします。オライリーから日本語訳版が出てほしい本ですが、この分厚いページ数だと期待しないほうがよいです。

筆者は『パーフェクトPHP』と『PHP Cookbook』がダントツのおすすめPHP本です。

関数はそのつどphp.netで調べよう

コードを読んでいくと、分からない関数に出会います。そのときは、「php.net/関数名」でアクセスすると、公式ページが表示され、辞書として使えます。var_dump関数であれば、ブラウザのアドレス欄に「php.net/var_dump」と入力して、Enterキーです。PHPの場合、言語リファレンスが日本語で読めるのがありがたいです。

PHPは特定の企業の技術ではありません。
公式サイトが日本語で読めるのも、ボランティアで日本語に訳している方がいらっしゃるからなのです。

Todoリストをつくってみよう

総仕上げです。

まったくのゼロからTodoリストをつくってみましょう。
PHPの良さは最小限の関数でTodoリストがつくれる点です。

1. todoというデータベースを作成
2. tasksという名前のテーブルを作成
3. tasksテーブルにフォームから新規のタスク名を挿入するコードを書く
4. tasksテーブルから、タスク名一覧が表示されるコードを書く
5. タスク一覧のそれぞれのタスク名の横の「済んだボタン」をクリックすると、一覧からタスクが消える

あたりまでまず書きます。

ループは、foreachのみで書いてください。5は、update文で実装してください。

余力があれば、カテゴリー別にタスクを分類できる機能、タスクの修正ができる機能、ログインログアウト機能を追加します。

Todoリストは他の言語やツールの学習にも最適な題材

PHPだけでなく、他の言語やツールをはじめて学ぶときにも、Todoリストを最初の勉強のゴールにしておくことをおすすめします。アプリの基本は、CRUD操作です。Todoリストつくることで、自然とCRUD操作にフォーカスした勉強になります。

データベースのテーブル設計

PHP単体の勉強でどうしても薄くなってしまうのは、データベースのテーブルの設計やデータベースそのものの勉強です。データベースは運用スキルまでいれていくと、奥が相当深い分野です。

まずは、テーブルの設計理論から学びましょう。『Head First SQL』はやさしい体裁の入門書ですが、内容は本格的で読み応えがあります。『楽々ERDレッスン』は、日常の現場から、実際にテーブル設計をしてゆくおもしろい試みの本。

WordPressのテーブル設計は参考になる

PHPでつくられた最も有名なアプリケーションは、WordPressでしょう。WordPressをインストールをすると、11個のテーブルが生成されます。そのうち、1つは、後方互換のためのテーブルなので、実質10個のテーブルで構成されている。

WordPressがつくられたテーブル間の関係やデータ型などを調べるだけでも、自分でWebサービスをつくるときに参考になります。

『リーダブルコード』はPHPの本ではないが、必読書

『リーダブルコード』は必読書です。

数年にわたり池袋のジュンク堂書店のコンピュー本で1位をキープしています。異例のロングセラーです。

いろいろな言語のサンプルコードがでてきます。意図が読みやすく、速く、美しいコードの書き方が学べます。

オライリーにしては、内容はやさしめです。

『コーディングを支える技術』もPHPの本ではないが、必読書

『コーディングを支える技術』も必読書です。

プログラミングの歴史が学べるおもしろい本です。よりプログラミングが楽しくなります。

関数、クラス、変数、スコープ、ループなどの文法が、どういう経緯で生まれたかがわかります。オブジェクト指向も根本からわかります。何度も目から鱗でした。

いろいろな言語のサンプルコードがでてきます。リーダブルコードより、難しめです。

筆者は歴史が好きなので、プログラミング本のなかで、最も好きな本です。こういう本が読みたかったんだと興奮した本です。

↑このページの上に戻る