初心者がPHPを3ヶ月で独学した方法

ウェブサービスを作りたい!と思い、先輩方々のブログを見ていると、やはりPHPを身につけたい!と思いますよね。

http://blog.livedoor.jp/ikiradio/archives/51026443.html
とか、
http://d.hatena.ne.jp/taan/20101104/p1
とか。

そんなわけで僕もここ最近PHPの勉強をしていたので、その時の記録を綴っておこうと思います。ちなみに今現在、例えばこれぐらいのものは作成できるようになっています。

MysqlAPIを、とりあえず扱うことができた、というレベルです。で、ここに至るまでの経緯ですが、その前に、元々の僕スペックを晒しておこうと思います。

  • HTMLやCSSは、ある程度書ける。
  • MTやWPのカスタマイズも、ある程度できる。
  • 既存のCGIPHPのソースを見て、ちょっと文章を書き換えたりぐらいはできる。
  • データベースやAPIといった技術の概念はなんとなくわかる。
  • 「こんなことがしたい!」と思いぐぐっていると、なぜかPHPのソースが書かれた記事に到達する。(フリーソフトとかじゃ満足できなくなってくる。)

PHPでどんなことができるのか。」というぼんやりしたイメージはあったけれど、実際にそれをどう書いたらわからない、そんな状態でした。

なので、「プログラミングってよくわかんない。イメージもつかない。」という方はこの記事は参考にならないかもしれません。そういう方の場合は@egachanこと、えがちゃんさんのように、デジハリリナックスアカデミーといったスクールに行ったほうが良いかもしれません。

ちなみに僕は座学を学校で勉強していると速攻で眠くなるタイプなので、スクールという選択肢はありえませんでした。

PHPを勉強していった流れ

というわけで本題ですが、ざっくり言うとこの繰り返しで勉強していきました。

  1. PHP本を探す。
  2. 本に沿って、勉強してみる。
  3. よくわかんなければ、違う本を探す。

ありがちですが、僕も本でPHPを勉強しました。

んで、最初まずどのような本を選んだかですが、本屋さんによくある「一週間で出来る・・」とか「サルでも出来る・・」って類の本は、まず却下。立ち読みでわかりますが、ほとんどがわかりづらい本です。

「んー、わかりやすい本ないし、とりあえず有名なやつ買ってみるか。」と考え、最初に買ったのがこの本。

・・悪い本ではなかったですが、失敗でした。この本を1/4ぐらいまでとにかく読み進めたのですが、後半に行くにしたがい、頭の中で理解できない状態に。数学の教科書を黙々とただ読んでいる、というような感覚でした。

なので「習うより慣れる」って本の方が良いな、と思いこの本はパタリ。

(この本で基礎知識/用語身につけられたのは、なんだかんだ良かったです。ただ、実践的ではないし、別段説明がわかりやすい、というわけでもありませんでした。)


そんなわけで、次の本を探そうとしたわけですが、難しいのが本のチョイス。本屋さんにいっても良い本がわかりません。そこで一つ閃きました。

2ch見れば良いんじゃない?』

その閃きに従い、WEBプログラミング板へ。すると思惑どおり、PHP関連の書籍についてのスレがありました。少々荒れ気味でしたがログを漁っていけば、いろいろ本が紹介されているはずです。

そしてそこで見つけたのがこの本。


絶版本ですが、中古で購入できます。

(2010/11/08 追記)紹介前、在庫が数冊あったのですが、現在は中古本も品切れ状態のようです・・。追加出品を待つか、ヤフオク辺りを探してみると良いかもしれません。

個人的にはこの本が大当たり。Mysqlを使ったサイトを作る方法が、丁寧に書かれています。本書の冒頭にはこう書かれていました。

「本書を最後までひととおり体験してみてください。そうすれば、PHPがどのようなものであるのか、Mysqlがどのようなふるまいをするのかといった全体像が見えてくるはずです。」

まさにそのとおりの内容だったと思います。本の内容に沿って作業を進めていく中で、PHPの全体像を知ることができました。

2chのスレ内には、「この本を読めば、PHPでなんでもできる気になれる。本当はそこからが大変なんだけれどね。」といった感想も書かれていましたが、本当にその感想がぴったりの一冊です。

「俺、PHP使えてるぜー!」という錯覚に陥ることができます。笑

なので、まずはこの本がオススメ。まず第一歩が踏めるはずです。


とはいえ、この本だけで作りたいサイトが作れるようになるわけではありません。PHPの全体像がわかる本ではありますが、その反面、あえて細かいことがすべて省かれている本なので。

そのためこの本を使い終えると、「PHPの全体像はわかったから、実際に○○したい時に、どう書けばいいかが知りたい。」という状態になります。

そこで買ったのがこの2冊。

2冊ともいわゆる逆引き本で、「○○をしたい。」「○○を求めたい。」といった目的別の目次が並んでいます。

Mysql入門以前」で、基礎はできているはずなので、あとは困ったことをこの2冊で使い解決していく、ということを繰り返していくことで、知識が積み重なっていきます。

・・ここまでくれば、とりあえず僕ぐらいのPHP初心者にはなれるはずです。


あとは、「APIを扱いたい」とか、「セキュリティ知識を身につけたい」とか、「フレームワークを扱いたい」とか、より目的が明確になってくるため、勉強はしやすくなっていきます。

ある程度のことであれば、Googleで解決できるようになっているはず。

その段階にたどり着く前の、「わからないことがわからない状態」を突破するのが、一番最初の関門だと思います。

その関門を当エントリを参考に、クリアしてもらえればと思います。

最後に

あと最後に、大事なのは、とりあえず身につけた知識を使ってサイトを作りまくることだと思います。僕もすでにPHPを使い、5サイト以上作成しましたが、その中でどんどん知識が研ぎ澄まされてきているように思います。

同じ処理をするにも、1サイト目でやった方法と5サイト目でやった方法を比べると、5サイト目に書いた方法のほうが明らかにスマートです。それに加え「もっとスマートにできるだろうな。」ということが感覚的にわかります。

「経験値」ばかりは本を読んでどうにかなる問題ではないので、とにかく実践していくしかありません。

どうせ最初に作ったサービスがヒットするわけないので、技術を磨きつつ、どんどんアイデアを出していくと良いと思います。技術の幅が広がれば自然のアイデアの幅も広がっていきますし。

「あ、こんなこともできるじゃん。」と。

その瞬間のために、僕もまた勉強を進めていきたいと思います。

よろしければ

このエントリを書いている途中に知ったエントリです。
http://blog.livedoor.jp/kensuu/archives/50134744.html

MySQL入門以前」の他にもいくつか初心者向け書籍を紹介している様子。最初にこんなエントリに出会いたかった・・

(2010/11/08追記)上記エントリで紹介されている、「速効!図解プログラミングPHP + MySQL」ですが、Mysqlへの接続方法の書き方が良くなく、この一冊だけで勉強するのは危険とのことです。


ですので、他の本と併用し、この本に書かれているソースコードは利用せず、復習用に読む程度に留める、というほうが良いかと思います。

あとtwitterもやっています。よろしければフォローしてください。
http://twitter.com/ry_tan

補足

3ヶ月というのは、3ヶ月間お休みの日(主に土・日・祝)に勉強していたということです。なので日数でいうと、24日。実際はサボった日も多いので10〜15日程度だと思います。