ビジネスPython 超入門
中島省吾 (2019)
僕は別にプログラミングが得意という訳でもなく、経験と言えば中学生の頃にBASICを触っていたこと。そして中学生~高校生くらいの頃に、HTMLをメモ帳に打ち込んで、自己満足全開の個人HPを公開していたくらいのもの。黒歴史はいっぱい作った。そんな人がなぜ急にPythonのかというと、Amazon Primeに加入することで無料でKindle本が数冊読める「Prime Reading」にPython本があったのだ。隙間時間でざっくりと読める程度で大した内容が書いてあったワケではないのだが、
- 最近、プログラミングの必要性が声高に叫ばれている
- 自分は比較的ITリテラシーが高い方だとは思っているけれど、それはこのむっさくるしい会社内だけの話
- このままExcelとWordしか使えないおじさんで死んでいくのは何か苦しい
といったあたりの不思議な動機というか焦りがある結果、タイトルがスパーン!と心に刺さったのかもしれない。で、大抵プログラミングを始めようと思うとその環境構築で痛い目を見てすぐやめてしまうのだが、今回のPythonは違った。環境構築がとにかく楽だった。だから読み終えて、少しちゃんと勉強してみたいなぁなんて思い、本書の購入に至った。
スポンサーリンク
僕のプログラミングに関する知識
冒頭でも少し触れたが、
- 大昔、BASICを触っていたことがある
- 大昔、HTMLを触っていたことがある
- CSSはちょっとわかる。けどちょっと。
- Java?Javascript?え?なんか違うの?
- VBA?あぁ、使ってるよ。Excelで動作記憶させたりとか多少打ち込む程度に。
という程度の知識。全くやったことない人よりは多少知識があると言っても怒られないのかもしれないが、これで知識がありまぁす!なんて言った日には本職の方々にボコボコにされることうけあい。というもの。だからこの記事で刺さって欲しい読者は、
「昔、ちょっとだけそういうのやったことあるけどさ、なんか最近…置いてかれてる?そんな感じしてさみしいときがあるのよね」
という感じか。
本の内容
先ほどの知識レベルの僕が読んで得た感想は、
- 基本的な構文、極一部の組み込み関数は何かわかった気になった
- WEBスクレイピングが動いた瞬間は感動する!やべぇこれ!
- 読了してみると、「あれ?これ仕事になんか生きる?」
といった感じ。
いや、決してダメな本では無い。冒頭のページにサンプルプログラムの公開アドレスも書いてあるし、(詰まらないけど)詰まったならそこからコードをDLして動かすだけ。環境構築に関してもしっかりと書いてあるので、指示通りにやれば大抵のことはなんとかなった。だけど、だけど。
それだけだった。
決してここから「仕事の自動化だぜ!」とか、「俺はバリバリとプログラムを書き上げるぜ!」には至らない。この本を読破し、実際に手を動かして得られるものは一部の組み込み関数の使い方、リストやタプルなどの概念、ふわーっとしたオブジェクト指向と簡単なモジュールの使い方。といったところ。だから、「プログラミング?と言われて拒否反応を出さない程度の人が、Pythonとはなんぞやwww触ってやろうかwwww」という程度のモチベーションで触り始めるにはとても良い本。ただし、「オレは●●がやりたい!」とか「自動化!自動化!」と息巻いているPython基礎知識保持者には向いていないのかな、という感じ。
本の内容、感じた難易度
第1章 Pythonプログラミング基礎の基礎
難易度:★☆☆☆☆
インストールからインタラクティブシェルを利用して「とにかくPythonを動かしてみる」章。サクサク進める。図も多くてわかりやすい。
第2章 データ型と変数
難易度:★☆☆☆☆
プログラミングという概念を知らなくても、Excelで文字列を数値に悩まされたことがある人なら「あぁ、そういうこと」という感じ。基礎を凄く丁寧に説明してくれているので、置いていかれる!などという感想はこの段階では皆無
第3章 プログラムの流れを制御する
難易度:★★☆☆☆
ここから自分のパソコンでテキストエディタを使ってコードを書いて、Anaconda Promptを利用してプログラムを実際に動かしていくことになる。簡単な計算プログラムが動くことになるので、初学者はここで「おぉ?」なんて小さな感動が。ただ、環境構築が思うようにうまくいかなかったり、たった一つのスペルミスでプログラムが動かずに、それに気づけずに「???」なんて事態も起こり始めるかもしれない。オレは起こった。
第4章 オブジェクトと繰り返し
難易度:★★☆☆☆
ここでwhileやらForやら繰り返しが出てくる。ifなどの条件分岐も現れてきて、「おお、なんかプログラミングっぽい!プログラミングっぽい!」ってちょっとテンションが上がる。ただ、「リスト」という概念はまだしも「タプル?」「辞書?」え?メソッドって何だった?と、ちょっと戸惑い始めるが、なんとなくプログラムが動くから「まぁいいか、全部わからなくてもなんとかなるやろ」という達観が襲ってくる。
第5章 関数の作り方と使い方
難易度:★★★☆☆
関数はわかるんだよ!Excelで散々見てきたしな!でもなんか関数にデータを渡す?え?「仮引数(かりひきすう)??位置引数(いちひきすう)??ちょちょちょ、え?なに?なんて?」と、知らない単語に圧殺されるような妙な感情が芽生える。だがまだ心は折れない。書いてある通りにコード打ち込めばええんやろ?ほら、動いた。大丈夫。まだオレ置いてかれてない!と、自己暗示開始。ん?スコープ?知らん。わかったわかった。この通り書けばええんやろ。うん。わかったわかった。状態。
第6章 組み込み関数とモジュール
難易度:★★★★☆
お!ついに出てきやがったなモジュールさんよ!待ってたぜ!ガシガシ使ってやるぜ!と、タイトルを読んだ段階ですげぇテンションがあがる。そしてページ一面に並ぶ組み込み関数。一気に萎えた。覚えられねぇし覚える気もないわ!わかったわかった。言われたままに打ちます。ええ、打ちます。ここらからちょっと飛ばし読みを始めたりする。「いや、わかってるから!わかってるし!心折れてる訳じゃないし!」自分の中の言い訳ボリュームも大きくなり始める。そしてカレンダーモジュールが動かずに容赦なく読み飛ばす。「きっとこれは何かバージョンが違うだけで、この通りに打てば、環境さえ整っていれば問題が無い。つまりオレはこれを理解した」とブツブツ言いながら。え?インスタンス?わかるわかる。知ってる知ってる。アレだよね。
第7章 WEBスクレイピング
難易度:★★★☆☆
第6章まででやや砕けかけている心が一気に奮起する。「そう!オレはこれがやりたかったんだよ!」なんて思っていたらHTMLとCSS、Javascriptの解説に入る。多分知らない人はここで心が折れる。が、辛抱して読み進めるとついにWebスクレイピングが!たかだか日経平均がAnaconda Promptに表示されただけなのにすげぇやり切った感が得られる。そして数分後に気付く。「あれ?これどうやって実務に活かす?」でもこの章はHTML等の知識がちょっとあるだけですいすい~っと進める。わからん単語は多くても言われた通りにやれば動くしw
第8章 機械学習に挑戦しよう
難易度:★★★★★
読めばなんとなーく、はわかる。が。Numpyあたりで行列・ベクトルの知識が必要になるし、「このコードは結局何がしたくて書いたの?」という感想だけが強くなりすぎて、頭が理解するのを諦めてしまう。確かに書かれている通りにコードを打てばなんかそれらしいものが出来るし、グラフ描画に成功した瞬間は「おお!ええやんええやん!」なんてちょっとテンションがあがったりもする。だけどもう手書き文字の画像認識あたりは打ち込んだコード、さらにその中のモジュールが勝手に動いているだけなので「えーと、僕は何をしたんでしょうか?」などという感想とともにすべてが流れ去っていく。そしてあとがきへと続き、何かやりそこなったような、燃え尽きそこなったような感触で読了
おまけ
特殊な製本がなされているので、どこのページでも本画像のように開いておいておくことが出来る。この仕様のおかげで本を見ながらコードを打ち込む時間がとても快適だった。この点はとてもすごく高くとてつもなく評価してあげたい。世の中の参考書類全部こうなれば良いのに。
終わりに
繰り返しにはなってしまうが、「Pythonに触ろう!」という動機においてはとても良い本。少し手が出にくいWEBスクレイピングや機械学習が目の前のパソコンで動くのはちょっと感動する。だけど、本のタイトルにある「ビジネス」は「ビジネスで役に立つ」ではなくて、「ビジネスライクにカバー」という意味かなぁと思った。次はアレだ。
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
- 作者:Al Sweigart
- 発売日: 2017/06/03
- メディア: 単行本(ソフトカバー)
これだな。期待大だ。これならきっと日常業務が爆ぜるはず!…爆ぜないかな。期待し過ぎかな。まぁちょっと買ってみよう。
- 作者:株式会社ビープラウド,リブロワークス
- 発売日: 2018/06/22
- メディア: Kindle版
- 作者:大澤 文孝
- 発売日: 2017/04/08
- メディア: 単行本