tchikuba's blog

Beer Driven Developer / Lean Engineerの徒然

【書籍レビュー】超入門シリーズ本を献本頂きました

前回に引き続き、WINGSプロジェクトが監修し、技術評論社から出版されている超入門シリーズ本を以下の3冊献本して頂きました。

それぞれの本についてレビューをば。

※関係者の方々、対応が遅くなり申し訳ありません。。


【書評】たった1日で基本が身に付く! HTML&CSS超入門

webサイトとはそもそもなんぞや?という点からちゃんと解説されている

超入門書なだけあって、そもそもwebサイトがサーバーに設置されていてブラウザなどのクライアントからアクセスして読み込むものだ、的な基礎的な部分からちゃんと解説されています。 また、技術的側面だけでなく、webサイトを設置する目的やどう設計するか?についてもちゃんと触れられている点が素晴らしいです。

HTML5をベースとしたセマンティックwebが意識されている

超入門書といえど、headerタグやfooterタグなどを通してセマンティックwebについて早い段階でちゃんと解説されています。

CSS(Cascading Style Sheets)の基本がしっかり理解できる

CSSの発展の歴史を紹介していたり、HTMLタグをwebページの装飾目的で使うことを戒めたりなど、経験あるwebサイト制作者の方の言葉が散りばめられている辺り、好感が持てる印象でした。

あと、私自身はサーバーサイドエンジニアなのでHTMLとCSSはなんとなくのフィーリングで理解しているところもあったので、例えばボックスモデルなどは恥ずかしながらmargin, border, padding辺りの違いについての認識が甘いところがあります。その辺りがちゃんと体系的に再確認できたのは良かったです。

同様の理由で、段組みレイアウトの辺りの解説もまた、何がブロックレベル要素で何がインライン要素なのかとかあまり意識できてなかったり、フロートレイアウトなどもフィーリングで理解していたところがあったので正直勉強になりました。

レスポンシブデザインに対応している

最近では必須のレスポンシブデザインに対応しており、具体的にはスマートフォン対応する具体的な方法についても解説されています。 私自身、メディアクエリとかちゃんと理解できてなかったところがありました。。

総評

本書を一通りなぞれば、コーヒーショップのレスポンシブなホームページのサンプルを制作することができます。 本書を足がかりにすれば、読者は基本的なwebデザインのうちHTML・CSSコーディングができるようになると思います。

その意味で本書は良書だなーと思いました。

また、私みたいにサーバーサイドエンジニアが本業なんだけど、フロントエンドはそこまで詳しくないけどちゃんと体系的にイチからインプットしたい、というモチベーションがある人には刺さるかもしれません。 とはいえフロントエンドもある程度できるエンジニアにはちょっと物足りないかもしれませんが。

余談ですが、「本業サーバーサイドエンジニアに贈る基礎から学ぶフロントエンド」的な書籍があったら実はニーズあるんじゃないかと思いましたw

【書評】たった1日で基本が身に付く! JavaScript超入門

webアプリケーションとはなんぞや?についてちゃんと解説されている

超入門シリーズ本にはおなじみですが、ターゲット読者層がプログラミング未経験者なので、そもそもwebアプリケーションってなんだっけ?とかサーバーサイド、クライアントサイドの違いみたいな基礎的なところから解説が始まります。

執筆者の立場として個人的に思うのですが、このあたりの解説ってすんなり説明するのが意外に難しいところだったりします。 どこまで歴史的な背景やバックグラウンドを説明するのかとか。

このあたりの部分、前半部分での説明が超入門者向けにも過不足なく非常に分かりやすいのではないかと思います。

また、JavaScriptでできることの幅が広がりつつある昨今ですが、その辺りにも触れつつ、本書でカバーする範囲をクライアントサイドのwebアプリケーション機能開発に特化していると明記していることもわかりやすさを担保することに繋がっている気がします。

イベントやAPI、WebStorageについて扱っている

超入門者向けでも、JavaScriptによるwebアプリケーションの基礎としてイベントドリブンモデルについて解説されています。 本書はwebアプリケーション前提なので、JavaScriptを語る上で密接に関わってくるイベントについて1つの章を割いて解説を加えているのかもしれません。

後半の章では、Flickr APIを用いて画像検索するアプリ作成を行っており、より実践的な内容になっています。 更に、Webstorageについても触れられており、こちらもAPI同様、より実践的な内容かなという印象です。

Windows環境にApacheインストールの辛い

これも超入門シリーズ本全般で辛いところではありますが、環境構築でWindowsを前提とするツラミはちょっとあるかなと。 webアプリケーションにおけるJavaScriptというところで、Apacheのインストールは避けられなかったかもしれませんが。

オブジェクトがいきなり出てくる

超入門者にとって、前半の早い段階でオブジェクトという概念がいきなり出てくるのでちょっとギョッとするかもしれません。 JavaScriptの性質上、しょうがない側面も大きいかなと思いつつ。。

総評

全体的にプログラミング言語としての側面からJavaScriptを論じるというより、より実践的なwebアプリ開発を行う手段としてのJavaScriptを紹介した書籍という印象を受けました。

プログラミングを全く学習したことのない人向けにしては、プログラミングの基礎的な部分、例えば3大制御構造などについて体系的な解説がそれほど多くなかった印象だったので注意が必要かもしれません。

逆に、JavaScriptを使って具体的にどういうアプリが作れるのか?という点にフォーカスしたい方にとっては良書と言えそうです。

【書評】たった1日で基本が身に付く! Java超入門

コンパイルエラーなど基本的な部分が紹介されている

超入門向けらしく、半角スペースをなくすとコンパイルエラーが発生するなど超入門者向けの内容がちゃんと解説されています。

(凄い細かい話ですが)nullの正しい発音がコラムにw

nullは英語では「ナル」と発音するそうです。nullの紹介のところでコラムとして「正しく発音しましょう」って紹介がありました。 ちなみに私は普段「ヌル」と発音してます。スミマセン!

二重ループが取り上げられている

プログラミング初心者にとって最もつまづきやすいのがループと言われます。 ループを取り扱う章の最後に、本書ではループ処理がネストしている二重ループについて取り上げられています。 これはプログラミング初心者にとっては有り難い解説かもしれません。

同様に、配列の章の後半で配列とループ処理、ループ処理と条件分岐の組み合わせについても取り上げられており、二重ループ同様、プログラミング初心者にとってはプログラムが複雑になる過程をちゃんと説明してくれていて理解の助けになりそうだなと思いました。

クラス解説で後半2章分割かれている

クラスの基礎について1章分、クラスの利用について1章分を割いており、クラスに関する解説はかなりページ数を割いている印象です。 このあたりはそもそも扱っている内容が重いせいか、その他の章の解説に比べて超入門者がページをまたいであちこちに行ったり来たりして理解を深める必要があるように感じました。

このあたりをプログラミング初心者に分かりやすく解説できる自信は正直私もないのですが(汗)

総評

総合的に見て、プログラミングが全く初めての人にとって、Javaを学習する目的で本書は向いていると思います。

ただ、個人的にはそもそも「オブジェクト指向」という概念がプログラミング初心者には分かりづらい気がするのでその点をどうフォローするか、というのはある意味プログラミング教育の永遠のテーマと言えるかもしれません。