ゆんの業務改善ブログ

①生産性向上 ②業務改善 ③自動化 について情報発信しています。VBAプログラムは本当初心者から他のアプリケーションを呼び出して使う上級者的な使い方まで幅広いレベルで解説していきます。

【退屈なことはPythonにやらせよう】のAmazonレビューに見る、初心者本を選ぶときの注意点

f:id:mutable_yun:20191207194631p:plain
エンジニアの会社員にとって自動化Pythonといった言葉は大変魅力的に響きます。

「もし自分で自動化のプログラムが作れたら・・・」と言う憧れもあって、こっそり本屋さんやネットで色々と調べている。そんな方に向けて、Amazonの様々なレビューと実際の本を見比べながら初心者本の選び方と注意点を探っていきます。

目次

Amazonレビューに見る初心者本の注意点を探る

実際のAmazonレビューを見る前に、この記事を書いた私、ゆんのレベルをまず明らかにします。その後、初心者とはどういう意味なのかを確認した上で、Amazonレビューを考察していきましょう。結論を急いでいる人の為に、要旨だけ先に書いてしまいます。
<この記事の要旨>

  • 「初心者」と言う言葉は、書き手にとって「何の」初心者を意味しているのかに着目する
  • 低評価の理由のうちのひとつは期待とのズレであり、それは本のせいではない
  • Pythonというプログラミング言語は魔法の杖ではないが、このブログが理想と現実の橋渡しになる

以下、【退屈なことはPythonにやらせよう】という「初心者向け」Pythonの参考書を例に挙げて初心者本を選ぶときの注意点について要旨を深掘りしていきます。Pythonの参考書を題材に取り上げるので、私のPythonとその周辺のレベルから明らかにしていきます。

この記事を書いた人のレベル

まず、私自身について背伸び、誇張、矮小なく等身大の説明します。自動化に必要な周辺レベルについても説明します。

本業について
  • SEやプログラマーと言ったエンジニアではありません
  • もともと、受注や発注と言った事務職に携わっていました
  • 最近は業務プロセスの統廃合やマニュアル化といった業務改善を本業にしています
  • プログラミングは業務改善の手段として、作業の一部を自動化するのに使っています
  • 職場ではエクセルを多用しているので、エクセルVBAを使う機会が最も多いです
プログラミングについてのレベル

PythonとVBAについて背伸びせずに書きます。2020年1月6日時点の情報です。

<Python>

  • 繰り返しや条件分岐、リストといった基本的な文法は理解している
  • 最小二乗法という方法を使ってデータの傾向を分析したことがある
  • 上記の分析は、ある機械学習の参考書のサンプルコードを改造して作ったものであり、自分でゼロから書いたわけではない
  • 単純なエクセル作業くらいは自動化できるが、Webの作業はほとんど自動化した経験がない
  • 使ったことのないライブラリがたくさんある
  • Pythonで自動化した案件は4つしかない

<VBA>

  • エクセルでできる作業なら大概が自動化できます
  • メールの配信やパワーポイントへの図表の貼り付けなど一部、エクセル外の業務も実装できます
  • VBAで自動化した案件は数え切れない程たくさんあります

はい、これくらいのことができて、それ以上はできない。これが今(2020年1月6日時点)の私の実力です。

初心者の意味

f:id:mutable_yun:20191128225128j:plain
上で明らかにしたレベルを「すごい」と思う人もいれば「ザコ」と思う人もいるでしょう。それは読み手の捉え方次第です。読み手の捉え方次第と言う事は、私の実力や実績とは関係ありません。読んだ人と私の相対的なレベルの関係によって、様々な評価があるわけです。

「初心者」と言う言葉も「すごい」とか「ザコ」と同じ種類の言葉です。つまり、受け取る側によってどう思うかが異なるわけです。エンジニアが言うプログラミングの初心者と、プログラミングなんて触ったこともない非エンジニアの会社員が言う初心者とは全く意味が違うのは自然な事です。

エンジニアが言う初心者の意味

SEやプログラマーといったエンジニアの方が言う初心者とはどういう意味かというと、日常で使っているプログラミング言語と違うので使い慣れていなかったり、初めて書くことになった言語を取り扱う人という意味で使います。彼らは「〇〇はよくわかってない」というような言い方をします。よく分かっていなくても、調べればわかるし、すでに知っているプログラミング言語との差分を埋めていく形で理解できるので、ある言語が初心者である事をなんとも思っていません。むしろ知らない事はあって当然と言うスタンスです。非エンジニアが言う初心者とは全く意味が異なります。

普通のサラリーマンが言う初心者の意味

一方、エンジニアではない、この記事の想定読者が言う初心者の意味は、本当にプログラムを書いたことが無い、という意味です。そして初心者向けの本に期待していることは、「こんな自分にでもできる」ことです。本を買うということは、その本に書いてあることが出来るようになることを期待して買っているということです。つまり初心者向けの「退屈なことはPythonにやらせよう」と言う本に書いてあることが初心者の私でもできるようにならなければ、この本は「初心者」向けではないので、この本が悪い、ということになってしまいます。

【退屈なことはPythonにやらせよう】の著者はエンジニアで技術ライター

本の奥付で確認したところ、この本を書いた方はプロのエンジニアです。そしてライターと言う事で、技術的なことを記事にする仕事もしているそうです。この本は上で見た、エンジニアが言う初心者向けの本でした。「ノンプログラマー」とありますが、これは基礎文法も前半部分に少し載せてあるよ、位に捉えておくのが吉です。

Amazonのレビューを見てみる

初心者の意味が分かったところで、Amazonで実際に掲載されているレビューを確認してみましょう。

まずは低評価から見て行きます。

低評価の具体例

pythonの本なのでバッチファイルに関する説明は「付録」に数行記載があるだけで、
素人には全く役に立たないです。何で大事な部分を省略するかな…

巻末の索引によればコマンドライン引数の初出も6章だが、
何なのか説明が全くない。
(★のレビュー/14人のお客様がこれが役に立ったと考えています)

特にexcelの章についてですが、
業務で強いられる「退屈なこと」は、この程度の内容では全くカバー出来ない。
という意味で、誇大な題名。買って残念な本だった。
(★のレビュー/2人のお客様がこれが役に立ったと考えています)

上記ふたつは初心者である自分の期待と違ったために、本を低く評価している例です。確かに期待したのと違うのだろうと言うことがうかがえます。ちなみに、この本は後半部分が自動化できる作業を色々と紹介しています。それぞれの技術(例えばインターネット上のサイトから情報を抜き出す技術)がしっかり解説仕様と思えば、それだけで一冊本ができるほどの内容です。

それが7章~18章まで12種類も載っていて、一冊に収まっているのですから、それぞれの技術について実務に耐えられる解説がなされている訳がありません。それが分かっているかどうかが、この本の評価が高評価かどうかに掛かっています。

「自動化処理プログラミング」のタイトルに惹かれて購入しましたが、掲載されている内容はどれもこれも実用には程遠いレベルでした。
ライブラリの紹介本と割り切ればまぁまぁかもしれません。
(★★のレビュー/11人のお客様がこれが役に立ったと考えています)

こちらは、冷静です。実用にはほど遠いレベルなのはその通り。ライブラリの紹介本と思って読むべきなのでその通り。この方は正しく本を評価しています。それなのに星の数が少ないと言うことは、やはり、期待していたものとはズレがあったことがうかがえます。

次はやや長めのレビューです。

私はまさにノンプログラマーから独学でRubyをマスターして
10万レコードくらいのデータなど
GUIで操作するにはきついExcel業務とかをまさに
プログラミングで乗り切ってます

RPAなど騒がしいですが事務方作業の自動化はまさにこういう
プログラミングによる自動化要望に始まってやがてRPAの導入などに昇華していくはずですと考えています

この書籍はPythonではどういうライブラリがあるのか
知りたくて購入しました

本書は環境構築から始まって、基礎的な文法処理、ライブラリのマスターまで
1つに収まっていますが副題の
原題はこうだから、"practical programming for total beginners"
『ノンプログラマーにもできる自動化処理プログラミング』は誤解を生むのでは?
ノンプログラマーでもできる、と書かれるとScratchみたいなGUIプログラミングで
Pythonライブラリでも操作できるのかしらとか、
ライブラリの設定ファイルだけ保存すればプログラミングそのものは無しで
実行できるのかしらとかプログラミング不要、という軽い気持ちで考える方もいるのでは?

なか見検索もないので、わけわからず買った人も多いと思いますし
ただでもお腹いっぱいなコンテンツなのに600ページ以上の本なのだから
Kindle版を出すべきと思います
(★★のレビュー/104人のお客様がこれが役に立ったと考えています)

こちらはまともな低評価です。期待する内容と本の内容が一致した上で低評価を与えています。そして低評価の理由が本の題名が中身と一致していない、これでは誤解をしてしまう人がいてもおかしくない、というしっかりとした理由があります。これは本そのものの評価になっているため、参考になる低評価と言えます。

高評価の具体例

pythonを使って、定性業務を終わらせようが趣旨の本です。
VBAで業務効率化を図っておりましたが、web検索、画像処理などが増えてきたため、新たに言語を学ぼうと購入しました。(web検索はVBAでもできるが、IE操作のため、、)
pythonとは何か?
webを開くなどなど、
一つ一つ基本的なやり方を教えてくれます。
アイディア探しには持ってこいです。
自分がやりたいことが本におさまってないこともありますので、ネット検索の併用が必要になってきますが、指針が分かってくると、検索の勘所がつかめ、割とコードを書けています。
(★★★★★/58人のお客様がこれが役に立ったと考えています)

高評価の方はべた褒めが多いので一つだけにしておきます。この方はVBAで相当の自動化経験があり、他の言語を探していたところ出会ったのがこの本だったとのことです。「アイディア探しにはもってこい」と言っています。その上で、「自分がやりたいことが本におさまってないこともありますので、ネット検索の併用が必要」とレビューし、★5つを与えています。つまり、自分が求めている本に出会えた上で、本そのもののデキにも満足していることがうかがえます。

初心者本を選ぶ時のAmazonレビューの注意点(このブログの本題)

これまでのAmzonレビューの具体例から分かることは下記の通りです。

  • 低評価には読者の期待と本の内容が違ったことに対する不満と、本そのものへの不満の2種類がある
  • 読者の期待と違ったことに対する不満からくる低評価レビューは選ぶ本の間違いなので、本の価値とは関係ない
  • 読者の期待と本の内容が一致した上での低評価は、本そのものに具体的な改善点がある意味で貴重な意見である

つまり、低評価を見ることによって、その本を買った人がどんな期待とのズレがあったかが分かります。これを見ることで自分も同じような「思っていたのと違う」を防ぐことができます。そして、そのレビューが本訴の物の価値を表していないことに注意が必要です。どんな期待のズレがあったか分かった上で、高評価レビューの方がどのような点に満足したのかが分かれば、いわゆる初心者本選びで失敗する可能性を下げることができます。実際、私はプログラミングの本で購入して失敗だったという本は一度も出会ったことがありません。

基本文法を身に付けてから、実務に生かせるまでの間に小さくないギャップがある

一番大切な事は前項で述べた通りです。ここからは本を購入した後の話について簡単に触れます。
f:id:mutable_yun:20191212202920p:plain
【退屈なことはPythonにやらせよう】が本当の初心者向けではないことが分かりました。前半は本当の初心者向けの基礎文法について触れられていますが、第7章以降の「処理の自動化」偏では自分でネットで色々と調べる必要があります。そして、その過程こそが、プログラミングが上達する部分です。分からないところを調べて、自分でできる様にするところが大事です。

だから、ひとつ完成品を作ったことがあるかどうか、というのがとても大切です。それが分かった上で、この本を通して題材を選び、自分の実務に置き換えて実際に使えるモノを作ると確実に実力が向上します。そういう意味で、自動化のネタを提供してくれる、この本は秀逸です。

確実に実力が向上する事と引き換えに、自分で調べる事はそれなりに大変です。ここが落とし穴です。実力が向上する場面はある程度大変なモノです。つまり、基本文法と実務で使える便利ツール実装の間には段差が存在します

これを分かっていれば、この本の良さが分かってくると思います。この本に限らず、Pythonに限らず、またプログラミングに限らず、初心者本を選ぶときはこのあたりのことに注意して選ぶようにしましょう。

そして、このブログは基本文法と実務の段差を埋める役割があると思って運用しています。是非ご活用下さい。

初心者本を選ぶときの注意点まとめ

  • 低評価レビューは期待と内容のギャップであり、選択ミスの可能性アリ
  • 低評価レビューは自分も同じ選択ミスをしないのに有効に使える
  • プログラミングで基本文法と実務で使えるアプリを実装する能力には段差がある
  • その段差を埋める「調べる」という作業こそが実力を高める
  • このブログは基本文法と実務の段差を埋める役割があると思って運用している

<関連記事>