誰かに見てもらうための、簡単なデザイン

《読んだ本》土日でわかるPHPプログラミング教室

プログラミングをやったことがない人、それどころかWebの制作にも関わったことがない人、Web制作経験はあるけどPHPは分からない人…そんな人に向けた、PHP入門書籍「土日でわかる PHPプログラミング教室」を読みましたのでレビューを書きます。

PHPの基礎をがっつり学ぶタイプの本かと思いきや、フレームワークを使用して初心者でも素早くWebアプリを作っちゃおうという、かなり即物的…というか実践的な内容でした。
今はWebサイトやアプリを作るための色んな便利なツールが出ていますが、それらを使って時間をかけずに目標のものを作るという、現代の開発環境に即した内容になっています。

74_donichi

対象となる人

この本は、Web制作やプログラミング経験がない事務員「ななこ」が、プログラミング講師「あいさん」に教えてもらいながら、社内連絡用アプリ(掲示板みたいなもの)を作る過程が、二人の会話とコード解説によって描かれています。
「ななこ」はWeb制作もしたことがないので、PHPはもちろんHTMLやCSSも分かりません。
その「ななこ」に合わせて書かれているので、Web制作やプログラミングを全くしたことがない人でも「実践」できる(ただ「読む」だけじゃなく、手を動かさないと分からないと思います…)内容になっています。
ですが、本文中にはHTMLはもちろん出てきますし(CSSはあんまり出てこないですが)PHPのコードはHTMLとPHPと混ぜて書くものなので…HTMLについての知識があった方が読み進めていきやすいです。
専門用語も出てくるので、Web制作のこともちょっとでも知ってたほうが良さそうです。

他にも「コマンドプロンプト(黒い画面)」「Vagrant」「Bootstrap」「Fuelphp」といったツールを使います。
黒い画面は、Webデザイナーさんなどが怖がることで有名ですが(?)、これは初期設定の時に使うだけであとは出てきません。
メインとなるのは「Fuelphp」です。
「Vagrant」や「Bootstrap」「Fuelphp」は、Web制作・プログラミングに興味を持っている人なら聞いたことがあるかもしれませんが、そういうのを触ってみたいけどなにか分からない…という人の第一歩にもなると思います。
ちなみに、これらのツールについてはインストール方法から説明してくれているので、ほんとに何も分からなくても大丈夫です。

ただ・・・解説がWindowsのみで、Mac向けの解説はありません。
Macの人はググれば多分分かる…?はず…。

本の内容

本のタイトルに「土日で分かる」とありますが、実際は金曜日に下準備をするところから始まります。
ただ読むのではなく、インストールやコードを書くなど、手を動かしてやることを前提に書かれています。

金曜日(作業予定時間・2時間)

「Vagrant」「VirtualBox」「git」「サクラエディタ」など、PHP開発に必要なものをパソコンにインストールします。
ちなみにWindowsのみですが、プログラマー向けのWindows設定法についても記述があります。
あとは「Fuelphp」「Bootstrap」「PuTTY」をセットアップし、コマンドプロンプトで開発環境を整えます。

土曜日(作業予定時間・8時間)

土曜日から実際のプログラミングが始まります。
PHPの基本的な文法、配列、if文、for文といったよく使うコードを解説し、カレンダーを作ります。
「PHPの基礎学習」というと、この土曜日が一番みっちりした内容です。

日曜日(作業予定時間・8時間)

日曜日は、基礎をやる…というよりは、「フレームワーク」(ちょっと触るだけで、複雑なプログラミングを経たコードを自動的に作ってくれる仕組み…みたいな感じかな…)を使用したプログラミングが主になります。
フレームワーク「Fuelphp」の独自コードを書きながら、PHPとHTMLも書いていって、そしてデザインに「Bootstrap」を取り入れ、目的となる社内連絡用アプリを完成させます。
社内連絡用アプリにある機能は「投稿フォーム」「投稿を表示させる」「投稿内容をデータベースに保存する」「保存したデータを削除する」「投稿元のIPアドレスを自動取得」などがあります。これらを実装していきます。

日曜日だけでアプリを仕上げるのか!と思うと初心者にはかなりハードルが高く感じるのですが、フレームワークを使うとそれがどうやら可能らしいのです。
しかし物はできますが、フレームワークの仕組みやPHPについての知識を土日でマスターできるかというと、そうではありません。実際私も無理でした。
ちなみに私はPHPはほぼ分からず、HTMLとCSSは分かる程度です。

この本にも書かれているのですが、「PHPの仕組みを理解しきってから次に進む」のではなく「何やってるか分からなくても、本に書いてあることを打ち込んで実際動かしてみる」といった勉強法です。
なので、理解できなくても先へ先へ進んでいくのですが(本の中でも「ななこ」はそれに戸惑っていました)、触ってみて、ここを変えればここが変わって、このコードを削除するとこれが表示されなくなって…というのを体感して、それを何度か繰り返したあとでPHPの仕組みを理解していく…という書き方がされています。

VagrantやFuelphpなど、初めて触るものを使いながらよく分からないコードを書いて…と、何やってるか分からないまま進んでいくので不安ですが、本の通りにすると実際触れるだけの物は出来上がります。
PHPなどを理解してから物を作るのは到底土日では出来ませんが、物を作ってからPHPの理解を深めていく…というのは確かにかかる時間は短いのかな、と思いました。
それで完璧に理解できたり、学んだことを応用するのはちょっと時間がかかりそうですが、PHPの仕組みを体感するという取っ掛かりを作るには良い本だと思います。
FuelphpやVagrant、Bootstrapなどは実際の開発現場でもよく使われているものなので、これらを使い慣れておくと効率的に開発ができたり、就職などにも役立ちそうではあります。
ちなみにBootstrapは使ってますが、解説はほぼありません。

投稿を保存したりなどするのに使うデータベースの仕組みについて、phpMyAdminを使いながら解説されているのですが、個人的にはこれが結構役に立ちました。Vagrantとかは使ってないけど、phpMyAdminはWordPressでのサイト制作でお世話になったりするので、見方がちょっと分かって嬉しかったです(今まで全く知らなかった…)。

読んでみた率直な感想

自分でWebアプリを作ってみたい、実際の開発現場で第一線で使われているツールやその使い方を知りたい、という人にはすごく役立つ本だと思いました。
PHPについてもっと知りたい、PHPをがっつり勉強したい、WordPressなどをカスタムするためのPHPを知りたい…という人にはちょっと向いてないかな?というのが率直な感想です。
フレームワーク主体の解説になるので、PHPそのものについて勉強するには不足点が多そうですが、すぐに物が欲しかったり、時間がなくて開発ツールでサクッと作ってしまいたい、という人にとっては、すごく実践的で良い本だと思います。
PHPを勉強すべきか迷ってる人、一度触ってみたい人も、この本を読めば手軽にPHPでWebアプリが作れるので、PHPを体験するのにも丁度良さそうです。

Vagrant、fuelphpは勉強会などでたまに聞くことがあった単語で、使えるとカッコいいな…っていうかいつか使う時が来るかもしれない…と思ってはいたので、どういうものかを知る機会があって、そういう意味では役立ちました。現場のプログラマーさんの仕事術がちょっと分かったような気になりました、なっただけ。

少し気になったのは、この本はコードがずらっと書かれていてそれが部分的に解説されているのですが、コードを見た時に、どれがHTMLなのか、どれがPHPなのか、どれがFuelphp独自コードなのか…というのがよく分からずこんがらがりました。
この3つは混ぜて書いていくので、明確な境界線みたいなのがないんですよね…いやあるんですが…パッと見では分からないので、初学者にはちょっと分かりづらいかもです。
私はHTMLは分かるのですが、PHPはほぼ分からないので…PHPとFuelphp独自コードはごっちゃになりました。
解説はあるので、細かく見ていくと判別はつけていけそうですが。
ググッてみると、Fuelphpのチートシートみたいなのもあるみたいなので、そういうのを合わせて使うと分かりやすいかもです。

この本の「ななこ」は、PHPの仕組みを完璧に理解できないままWebアプリ制作を終えたのですが、通常ならそれでいいの?と思ってしまうところですが、この本はそれで良しとされています。
技術書を読むと「理解しないといけない」というプレッシャーに駆られることがありますが、それがなく、理解するよりもまずプログラミングを体験しよう、楽な方法もあるし楽しもう!といったスタンスで書かれている?ような気がします。
PHP学習を始めるための、堅苦しくない第一歩…といったところでしょうか。
これで興味が持てたり、もっと色んな物を作りたくなったら、その時はがっつりPHPについて書かれている技術書を読んで、本格的にPHPを始めてもらえばいい、そんな前置き的な役割も持った本なのかな、と思いました。
その割に実践することは多いですが、途中に会話パートなどもあるので、読み進めやすいです。

1から全部コードを書かなくてもアプリが作れるようになってるって、時代は進化し続けてるよね…。

それでは!Have a nice design!!