blog.heartyfluid

勉強したることども

宇谷有史ほか『TECHNICAL MASTER はじめてのPHP エンジニア入門編』

表題の書籍を読みました。とてもよかった。とくに新人研修の教材としてきわめて有用ではないかと思いました。

www.shuwasystem.co.jp

何より構成というか目次がすばらしい。たとえば「新人研修」などするときには何をどこまで教えようか毎回頭を使うわけですが、その答えがそのまま目次になっている感じ。目次だけで値段をつけていいんじゃないかと思う。

この目次の意図については、著者のひとりの kunit さんが書かれています。

kunit.hatenablog.jp

見ていただくとわかるように次のような流れになっています。

  • Part01 はPHPの言語そのものおよびツール/フレームワークで知っておいたほうがいいことのおさらい

  • Part02 はアプリケーションを実装するうえで知っておく必要がある知識の紹介

  • Part03 は設計をするうえで知っておく必要がある知識の紹介

  • Part04 はチーム開発をするうえで知っておく必要がある知識

上記をみるとわかるように、この書籍はPHPの書籍なのか?と思えるほど、PHPの紹介パートの割合は少ないです。もちろん、Part02以降もPHPを例として使っていますが、PHPそのものを学ぼうというよりはWebアプリケーション開発を行う上で必要な知識を網羅的に知っていこうということを主眼においています。

どういうわけか駆け出しのころから「新人研修」を任されることが多い人生で、主に HTML コーダーや PHP プログラマーの新人研修の構成を練ったり、自分で講師を務めたりしてきました。HTML にせよ PHP にせよ言語の話を始めると語りつくせないくらい話したいことがあるわけですが、一気に話したところで新人の理解が進むわけでもないし、業務へのオンボーディングに必要な話題は別にあったりもするんですよね。その点この本は PHP の基本構文についても序盤で解説しつつ、業務の第一歩にはさしあたり不必要そうな文法事項は丁寧に削り、自分だったらたどり着く前に力尽きていそうなアーキテクチャ開発プロセスの話もきちんと頭出しをしている。絶妙なバランス感覚だと思います…なかなか真似できない。

内容的には一部高度なことも扱っているため、初心者からのステップアップをしようという方は最初読んだときにわからないこともあるとは思います。が、それもある意味想定通りで、この書籍はWebアプリケーションを開発するにあたって、現時点で自分が何をしっていて、何をしらないのかを仕分けできるようにしたいという狙いもあります。で、しらない/わからないという点に関しては、この書籍から派生して関連する書籍等から知識を得ていくという流れを作りたいと思っています。

そうですよね、それは読んでいてひしひしと感じました。新人がこの本を読んだとして、「この先はどうなっているんだろう?」と思ったときには周りの者がフォローしようと思います。また、ある程度経験のある人には、「自分がこの本の続編を書くならアレをトピックに入れるなあ」とか、あるいは「自分だったらあえてこれを削ってアレを入れるかな」とか、そういう脳内シミュレーションが喚起されそう。(ただ、削るのはほんとうに難しいと思う。)だれか読んだ人とそういう話がしたくなりました。

なにしろ各章めちゃめちゃ薄いんですよ。それは内容が足りないということでなく、開発実務の第一歩に必要十分な内容まで絞り込まれているということで、逆に新人研修での自分の話は贅肉の多いオタク語りだったかもしれないなと反省しきりです。そんな長話、新人は一度に聞いてもわからなかった(あるいは聞きたくなかった)に違いない。この本のようにスリムでスマートな先輩でいたかった。

下記記事では著者ら自身が実際に削ったことのひとつとして、「開発環境構築」が挙げられています。

kunit.hatenablog.jp

もちろんあったほうが親切なんだろうなとは思うのですが、この「開発環境構築」のパート、例えば自分が Windows を使っている場合、macOS の部分のページは必要ないし、逆もしかり。また、時間が経過してOS側の仕様が変わっても書籍上にあるとアップデートするのがむずかしい、ということを以前から感じていました。

そのため、この「環境開発構築」部分に関しては、目次案を作る段階から載せないということを決めて進めました。

いまでも開発環境構築に XAMPP を紹介する書籍が見受けられますが、実務で使うとは考えにくい XAMPP に紙幅を使ったり、あるいは新人がそれを覚えたり手元にインストールしたりするのはやや回り道だと思っていました。やるなら Docker でしょう、とは思うものの今度は解説に分量を使ってしまう。そう思うと、たしかにオミットもやむなしかなと思います…がその発想がいままでなかった。それをやったのがしびれる。

そして先の記事にもあるとおり、書籍でサポートしなかった開発環境については GitHub でサポートしているという親切ぶり。

github.com

ほんとうに頭が下がります。今後の新人研修のリファレンスとして、ありがたく使わせていただこうと思います。

参考

執筆の経緯について。

kunit.hatenablog.jp

magnolia さんのレビュー。

blog.magnolia.tech

めもりー本を読んで、次のステップに行くなら、この本がお勧め!!!

『めもりーちゃんのPHPでプログラミング入門』もいい本ですよね。ただ(表向きの)内容としてはどちらかというと「完全未経験からプログラムが書けるようになるところまで」で、実務を考えるとやはり「はじめての」の構成がうれしい。とはいえ、めもりー本もコラムとか端々に「わかってる」感があって既修者はニヤリとできたりするので捨てがたい。

…と Amazon のレビューを見たら。

懸念点は、第1章「1-1-3 PHPのインストール」でPHPのインストールでエラーが起こり失敗しました。

調べたらIntel版とAppleシリコン(M1/M2)で対処方法が異なり、Appleシリコンの方式で何とかPHPのインストールができました。こちらのフォローがなかったのは残念です。

やはり開発環境構築は鬼門だった…!