投稿元:
レビューを見る
本の中身についてや、個人的な見解を詳細に書いたつもりですので、もしこの本で勉強しようか真剣に悩んでいる方がいればぜひ参考にしてください。
<---本の特色--->
・一見すると絵本のような印象で、描かれているキャラも可愛くイラストも豊富かつ分かり易そうな印象。
しかし事実は異なります。
「解説不足だらけ」「キャラのイラストに関しても無関係なセリフ・不要なセリフが多い」「理解を促す目的で書かれたと思われるイラストもよく見ると分かりづらいものだらけ」と、イラストに関してはほとんど必要性が感じられないものばかりでした。
・本のコンセプトは、プログラミング初心者向けに、身近な化学のテーマ(例えば「雪の結晶の仕組み」「色の仕組み」「音の仕組み」「等速直線運動などの物理学」など)を参考にして楽しみながらプログラミングを学ばせる事にあります。
・プログラミング初心者向けの参考書には必ずある始まりとして、プログラムとは?から始まり、JavaScriptの軽い紹介、Croqujs(クロッキーと読む。開発環境アプリ)入門、サンプルプログラムの改変や改修を通して、実践させながら学ぶ内容になっています。
・chapter4からは各chapterごとに、身近なサイエンスに基づいたプログラミングをひたすら実践(とは言ってもサンプルプログラムを変更したり追加したりしてその様子を実験・観察するのがメイン)していきます。
・本の内容は人によってかなり好みが分かれると思われます。
身近なサイエンスに全く興味がなく、0から体系的にJavaScriptを学びたい方にとっては、読み進めるのが地獄のような本であり非推奨(かなり強めに)です。
・この本の対象者は以下に書かれた★項目になります(本の前書きにある)が、個人的に突っ込みどころ満載なので思った事を書かせていただきます。
("→"以降はこの本を全て読み終えた後で★項目に対する個人的な意見)
★プログラミングを楽しく学びたい初心者
→本当に初心者を意識して書いたのか甚だ疑問。
この本から学ぶつもりなら、前述したサイエンス関連に少しでも興味が無い方は止めおくのが無難です。
そもそも、解説が初心者には明らかに情報不足であり不親切すぎます。
しかも、前述のサイエンス関連に興味が無ければ、内容も分からず、興味も持てず、読み進める度に苦行を味わうような地獄をみる事になります。
内容例として、生物学や物理学の用語や式(例えば、y0+v0×t+1/2×g×tの2乗=y、これは何の式か分かりますか?)等が出てきます。もちろん解説はほとんどありません。
「~はこういうもの」「~はこう書けば良い」で集約される事がほとんどです。
サイエンス関連に興味も無く見識も無い自分にとっては読んでいてもよく分からない部分が多く、はっきり言って地獄でした。
せめて興味だけでも持てたら良かったのですが、それも叶わず。
本の価格自体けっこう高価だし、もっと中身をよく確認してから買えばよかった…と後悔してもも��遅かったです。
サイエンスに興味のある方でも、プログラミングに関して全くの0の状態であれば、この本から勉強するのはおすすめできません。
解説が圧倒的に足りないのでJavaScriptに関して「?」だらけとなり、非効率な学習極まりない状態となるので非推奨です。
疑問点が少しなら自分で解決するのも手ですが、多すぎると挫折します。
初心者の方にはもっと体系的に効率よく学ぶ事をおすすめしますし、それを満たすようなもっと親切なつくりの初心者向け入門書は他にたくさんあります。
では、ある程度JavaScriptの基礎を学んだ方でサイエンスにも興味がある方であればどうか?
そういう方であれば、この本を楽しみながら学べるかもしれません。
JavaScriptの基礎を学んだ方でもサイエンスに全然興味が無ければ、冒頭に書いた通り地獄のような体験になるかもしれないのでやはり非推奨になります。
(自分はこのパターンでした(笑))
★入門書を読んだあと、何をすればいいか分からない人
→上記で書いた通りです。
入門書で基礎を学んだあとでもサイエンスに全然興味なければ個人的にはこの本は非推奨です。
他にいくらでも良い参考書・技術書・学習サイト等があり、それらはもっと効率よく次の道を示してくれます。
★ウェブサイトやアプリの制作にあまり興味が持てない人
→JavaScriptを選択しておきながらウェブサイト制作に興味がない人というのはあまり聞いた事はありませんが(「学校の授業や他の理由で仕方なく」等の理由もあると思いますが)、もしそのような方でJavaScriptの基礎は学習済みかつサイエンスに興味がある方ならこの本をおすすめできます。
★学校での授業に物足りなくなった人・授業に悩んでいる先生
→授業に物足りなくなった人に関しては、これまでに書いてきた事と同様ですが、基礎はおさえていてサイエンスに少しでも興味があるならおすすめ。
授業に悩んでいる先生に関しては、確かにいつもとは違った趣向でこのような切り口で授業を取り入れてみるのは有りかもしれないと思いました。
ただその場合は、興味がない生徒にとっては非常に辛い授業になる事は意識しておいた方が良いかもしれません。
<---内容全体に対する個人的な感想詳細--->
プログラミング学習の初段階としてサンプルプログラムを作り替えてその変化を楽しむというやり方は、初心者には優しいと思うし手をつけやすいとは思います。
実際の現場でもライブラリやフレームワークを多用して先人の知恵を拝借し作り替えるような機会が多いのは確かだと思うので。
また、プログラムの内容を改造して、実際に実行される様子が事細かに変わっていくのを見るのが楽しいと感じると人もいると思うので、そのような方にとってもこの本は相性が良いかもしれません。
とにかく面倒がらずにまずは指示通りに手を動かしてやってみる事をおすすめします。
chapter2までの内容としては描画プログラムに触れながら、用語等に関してはろくな説明もないまま、サンプルプログラムを編集して動かす内容になります。
初心者向けにしては説明不足な部分が非常に多いです。
なぜこれでこうなるのかの解説はほぼ無いし、そもそも著者独自のプログラムの使用(クロッキー独自のライブラリ等を使用)をしていて、今回だけこうなるんだよ的な説明は初心者にとっては必須だと思います。
chapter3ではそのあたりも含めつつJavaScriptの基礎は少し解説されるのですが、初心者目線で見るとやはり解説が物足りなく感じます。
「こうすれば、こうなります」「こうする時はこうします」という記述が多く、どうしてそうなるのか、なぜ必要なのか等についてはほとんど触れてくれません。
例えばP.74あたり「for文を使って配列とオブジェクトの要素を1つずつ展開→console表示」の部分(以下の説明が分からなくても問題ありません。よく分からない場合は読み飛ばしてください)。
配列とオブジェクトでは同じような仕組みに見えるのに、なぜこのように展開の仕方が異なるのか、特になぜオブジェクトは配列と同じような展開の仕方だとダメなのか(オブジェクトでfor-of文を使う場合、配列と同じような書き方だとエラーが起こる。この構文を使う場合はオブジェクトの展開コードが配列より複雑な形になる)、このあたりに足を踏み入れた初心者にはもう少し詳しく説明が必要なのではと思うのですが、これらには全く言及無くスルーされます。
とくに、chapter3の最後に出てくる「クラスの使い方」については特にひどい解説と感じました。
ほとんど前置きも無しにいきなり「クラス」が出てくるのですが、(原文のまま→)「クラスの機能を使いたくなったら、そのインスタンス(オブジェクト)を作ります。」との説明が突拍子もなく出てきます。
いきなり「インスタンス(オブジェクト)」と書かれても、初心者には「???」でしょう。
「え、ここまでで少しだけオブジェクトが出てきたけど、インスタンスとは?カッコついてオブジェクトと書かれている…。これはインスタンス=オブジェクトということ?関係性や違いは?全く同じものととらえて良いのかな?」などなど、疑問がたくさん出てくる事が予想されます。
ちなみにインスタンスについては、この直後に「(原文のまま)クラスは設計図で、インスタンスはその設計図から作ったものということです。」とだけ(本当にこれだけ)書かれています。
たったこれだけの説明では初心者は納得できないと思います。
初心者向けに書かれているにしてはあまりにも物足りなさ、不親切さを感じるのは自分だけでしょうか?
このように、【初心者にとっては】もっと知りたい部分であり、もっと理解を深めるべきではと思える部分でかなり解説不足に感じる場面が多いです。
(ただ実際には、あまり深く考えずに手を動かしながらどんどん先に進めるやり方がプログラミングにおける効率的な勉強法の1つ、というのも事実)
<---最後に--->
私の結論としては、きちんと初めから体系的にJavaScriptを学びたいと考える初心者の方には決しておすすめできない本です。
そのような方には他の超入門参考書から入る事をおすすめします。今はいくらでも良書がありますので。
この本でインストールさせられる開発環境のクロッキーに関しても、結局はVSCode等の方が使いやすく実際の現場でも多く使われるので、この本で勉強する時くらいしか今のところ用途が見当たらない状態です。
JavaScriptで絵や図を描きたい方にとっては有用かもしれませんが…。
(クロッキーに関しては自分は詳しくなく、何とも言えない部分が多いです。他にも用途があるのかは不明であり、この本で学習する用途だけなのか、それとも他に必要性が出てくるのか、そのあたりも説明が欲しかった)
初心者の方でクロッキーを今後も使うべきか悩んでいる方は、普段づかいはクロッキーではなく、VSCode(コードエディタ)でしっかり勉強していった方が間違いないです。
目的や用途が明確でないうちはVSCodeを率先して学ぶべきです。
クロッキー独自の機能やライブラリを使いたい場合は別ですが…。
以上、参考になれば幸いです。