【再掲】やってみた「WebデザイナーやノンプログラマーにおすすめしたいPHPの勉強法」

ULOGの方が結構落ちたりしててるので、こちらに再掲。
http://ulog.cc/a/higan96/14248
b.hatena.ne.jp



WebデザイナーやノンプログラマーにおすすめしたいPHPの勉強法

ここ半年ほど、上記エントリーでまとめられている技術書を読みながら、PHPの勉強をしていました。
そして3日前、借りているさくらのVPSの方にSymfonyフレームワークで作った簡単なページを公開しました。

はてなのHotエントリーには、よく勉強ノウハウ系の記事があがっていたりしますが、その記事を実際にやってみたよ、という実践記のようなものは少ないように思います。今回は私が実際におこなった、 WebデザイナーやノンプログラマーにおすすめしたいPHPの勉強法で挙げられていた勉強法と技術書の感想をつらつらと書いていこうとおもいます。

ちなみにプログラミングの経験としては、大学の授業でVisualBasicを触り(教養科目)、趣味でActionScript3.0を使ってたくらいです。


読んだ本

「痛快!コンピュータ学」
「痛快!コンピュータ学」はとても良かった。
原始的な計算機の単純な構造から、電磁石、真空管トランジスタ、という技術的な進化の過程をなぞりつつ、そこにある情報理論の解説がされています。本の中ではさらに、プログラミングとアルゴリズム、インターネット、Linux、(そしてTRON)まで触れられており、現代までの情報技術の発展をひと通り追うことができるようになっています。文系の自分にも理解しやすい内容でした。


「Head First PHP & MySQL
良本です。PHPMySQLの基本がわかり、とりあえず動くものがつくれるようになれます。
これでなんでも作れるぜ!という気分になります。
そしてこの本で特に面白い特徴が、構成がストーリー仕立てになっているところです。一つ例を挙げると、

1. やった!Webサービスの管理画面を作ったぞ!
2. 投稿が根こそぎ消される
3. 管理画面にアクセス制限をかけていなかったよ・・・
4. それではユーザー認証の仕組みについて考えてみましょう

というような感じに本は進んでいく。とても楽しい。やったことないけど、進研ゼミみたいです。

本の通りに進めていけば簡単なWebサービスを作れるようになります。練習問題もあるので、それも素直に解くと理解の助けになります。ただ、8章についてはサンプルコードの通りに打っても動きません。よく読まないと、どこがおかしいかわかりませんでした。

悠長といえば悠長なのですが、初学者の私にはキャッチーで良かった。ちなみに「訳者あとがき」も面白い。


「パーフェクトPHP
この本については、結局3回ほど写経をしました。

まずもってフレームワークというものがわからず、どこでいったい何が起こっているのかさっぱりわかりませんでした。フロントコントローラ?MVC?ルーティング?という感じで、「とりあえず写経したけどなんで動くの?」という有様でした。

手応えが出てきたのが、サンプルのフレームワークを使って簡単なブログを1から作ってからでした。何度も本を見返して、ググって、PHPマニュアル見て、ググって、投げ出して、ゲームして、ということを繰り返しました。そこまでやって、どうにか、どこで何が起こっているのか、どういう思惑でそれぞれの機能が作られているのか掴めてきたという具合です。

この本についてはフレームワークをある程度勉強してから読んでも良かったかな、とも思いました。

MVCパターンについてはSymfonyフレームワークのドキュメントにある説明がとてもわかりやすかった。
http://www.symfony-project.org/gentle-introduction/1_4/ja/02-Exploring-Symfony-s-Code

手強い本でした。私の家にある技術書で一番ボロボロの本です。


代わりに読んだ本

「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか
「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか

「3分間HTTP&メールプロトコル基礎講座」の代わりに読みました。
この「 プロになるためのWeb技術入門」については、3章まで読みました。あとの章は内容的にあまり惹かれなかったので読みませんでした。HTTPの基本について、実際に転送の様子を監視ソフトを使って見ながら勉強するところが分かりやすかった。ちなみに、この本で紹介されている方法を使わなくてもFirefoxLive HTTP Headersアドオンを使えば同じことができます。

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
こちらも「3分間HTTP&メールプロトコル基礎講座」の代わりに読みました。
この本は「痛快!コンピュータ学」と同じように仕様策定の歴史的な経緯に触れながらHTTPやHTMLの勉強を進める本です。簡単なHTML程度しか出てこないので、読み進めるのに習得言語のバックグラウンドが問われないのも良いところ。

歴史的な経緯に触れながら進む技術書は、原始の「単純な構造」から現在の「複雑な何か」を説明してくれるので分かりやすくて、私は好きな構成だったりします。悠長ですが。


その後読んだ本

はじめてのCentOS6 Linuxサーバ構築編 (TECHNICAL MASTER)
はじめてのCentOS6 Linuxサーバ構築編 (TECHNICAL MASTER)

勉強用の開発環境にUbuntuを使っていたのですが、運用はCentOSでやってみようと思い、買った本。
GUIでのCentOSの操作をインストールからWebサーバ、Apacheの設定まで説明している。
私の場合は勉強にUbuntuを使っていたので、知っていることが多かった。

symfony 1.4によるWebアプリケーション開発―オープンソース徹底活用
symfony 1.4によるWebアプリケーション開発―オープンソース徹底活用

どのフレームワークを使うか迷っていたのですが、次のような条件で探した結果Symfonyを選ぶことになりました。まずPHPでできていること、次に出版年の新しい解説書があること、というような2つの条件です。以上の理由で選んだのですが、開発に使っているNetbeansがデフォルトでSymfonyフレームワークに対応していたのも選んだ理由のひとつではあります。
この本については解説がとても丁寧でわかりやすく、本格的なフレームワークに初めて触れた私でも理解できる内容でした。Symfonyについては、まだ基本的な部分のみで、機能を理解しきってはいないので公式のドキュメントをちょっとずつ読み進めている状況。


まとめ

WebデザイナーやノンプログラマーにおすすめしたいPHPの勉強法は本当に良い記事でした。

何冊か読まなかった本もあるんですが、読み進める順番や勉強のすすめ方について、参考になる部分がいくつもありました。
特に「ブログをつくってみよう」の項については良かった。具体的に何を行うかのメニューが書かれていたので「どう作るか」だけ考えればよいことになります。これによって、勉強した内容のアウトプットという目的がスムーズに達成されました。何を作るかというのは、どう作るかを考えるより手間なんだと思います。とてもありがたかった。

※作ったブログはパーフェクトPHPで作ったフレームワークを使ったものです。githubに上げました。


あと、プログラミング学習についてでですが、より基本的なことを学ぶには、やはり本というのは優秀だと思いました。ですが、より現場に近い実践的な内容についてはネットで探したほうが見つかりやすい印象です。(さくらのVPSは使えるようになるまで、ネットで調べまくった。)ただそのネット上の知識は、書いた人のメモ用だったりもするので悠長な説明は飛ばされていたり、たとえ解説記事であっても前提として求める知識があったりします。
全部本で勉強、というのは逆に難かしいので、ある程度分かってきたらWebで、というのがバランスがいいと思います。



http://higan96.info
ちょっとデザインも機能もあんまりなので、これから更新予定。