今回は書籍の紹介です。
紹介するのは下記の 退屈なことはPythonにやらせよう です。
Contents
「退屈なことは Python にやらせよう」をオススメする理由
私が現在「一番オススメのプログラミング関連の書籍は?」と聞かれたら、迷わず、この 退屈なことはPythonにやらせよう と答えます。
なんならプログラミング関連に限定しない場合でも、一番オススメの書籍としてこの本を選ぶかもしれないです。
他にもオススメの書籍はあるので迷いますが、少なくともその候補の1つであることは間違いないです。
で、この本はプログラマーだけでなく、PC を使って作業をする人・今後 PC を使って作業をする可能性のある人全てにオススメできる本になります。
ですので、ほとんどの人が当てはまるんじゃないかなぁと思います(なのでちょっと大袈裟ですが、タイトルには全人類にオススメと書いてます)。
では、なぜオススメなのか?
それは、この本には “あなたの人生もっと充実したものにするためのヒント” が記されているからです。
もうちょっと具体的にいうと、”あなたが自由に使える時間を増やすためのヒント” が記されています。
このヒントを利用して “あなたが自由に使える時間” を増やし、その時間をあなたにとって本当に重要なことに費やすことで、あなたの人生をもっと充実したものにすることができます。
特に下記のような状況の方にオススメの本になります。
- 毎日残業でヘトヘト
- 仕事が忙しくて休みが取れない
- 仕事の質が低い・仕事の成果が出ない
大学生などの中には時間がすでに有り余っているという方もおられると思いますが、社会人になると忙しくてすぐに上記のような状況になってしまいます。
そのような状況にならないように、社会人になる前にこの本を読んでおくことをオススメします!
ちなみに、この本の副題は “ノンプログラマーにもできる自動化処理プログラミング” と書いてありますが、プログラミングが不要というわけではないです
自動化するためにはプログラミングが必要です
「退屈なことは Python にやらせよう」の内容
この 退屈なことはPythonにやらせよう は、下記の2部構成になっています。
- 第1部:Python プログラミングの基本
- 第2部:処理の自動化
Python を使ったことがない方は第1部から読んでもいいですし、Python を使ったことがある人であれば、第2部から読み始めてもいいと思います(必要に応じて第1部を参照しながら読む感じ)。
一応この本はノンプログラマーも対象にした本ですので、第1部は Python に触れたことのない方でも理解できるような解説になっていると思います。
ただ、価値が高いのは第2部の “処理の自動化” の方です。
第2部では、あなたが行う作業を Python に代わりに実行させるための方法の解説が行われています。
これにより、その作業を Python が実行してくれるのであなたが行う必要はなくなり、その分の時間を他のことに使うことができるようになります。
また Python に行わせることで、その作業を高速にかつ正確に行うことが可能です(あなたが作業するよりも早く&正確に終わらせることができる)。
ただし、Python に作業を実行させるためには、そのためのプログラミング必要になります。そして、そのプログラミングの方法が第2部で解説されています。
具体的には、例えば下記の作業を Python に実行させるための方法が解説されています(下記はこの本で解説されている内容の一部になります)。
- ファイル操作
- ファイルの読み書き
- ファイルやフォルダのコピーや削除
- Excel や Word の操作
- Excel ファイルへのデータの読み書き
- Word ファイルへのデータの読み書き
- Web の情報取得
- HTML の取得
- HTML の解析
- 画像操作
- 画像の切り抜き
- 画像のリサイズ
- 画像の回転・反転
- GUI 操作
- マウスの移動
- マウスのクリック
- キーボード入力
- スクリーンショット撮影
第2部の各章の内容は、上記を Python に実行させるために必要なモジュールの紹介、そしてそのモジュールを利用するための処理の記述方法や、具体的な自動化の例の解説になります。
この第2部を読むことで、いろんなモジュールのことを知ることができますし、これらを扱うための基礎的な内容の説明(プログラミングでの画像の扱い方の説明や HTML の説明など)も多いので、いろんな分野の知識も身につけることができます。これだけでも読む価値はあると思います。
1点補足しておくと、Python でできることはこの本に書かれていることだけではありません。この本に書かれている内容はただの一例で、もっと多くのことを Python で行うことができます。
なので、PC 上で行うほとんどの作業は、Python で自動化できてしまうくらいに考えて良いと思います。
ただ、この本で紹介されている各モジュールの使い方は限定的で内容としては正直狭く浅いです。ですので、もっといろんな使い方を知るためには、別途ネット上などで、そのモジュールの使い方等を紹介しているページを読むことをオススメします。
スポンサーリンク
この本を読んだ後に実践して欲しいこと
ただし、この本に書かれていることは “ヒント” に過ぎません。
是非このヒントを活かして、あなた自身の日々の業務の自動化に挑戦していただきたいです。
これをやらないと、この本の価値は発揮されません。ただ、やった時のメリットはとても大きいです。
なぜなら、あなたが自由に使える時間を増やすことができるからです!
日々の作業を見つめ直す
この本を読んだ後にまずやって欲しいのが、あなたが行なっている日々の作業の見つめ直しです。特に PC で行う作業の見つめ直しです。
是非、あなたが日々行なっている作業を下記の視点で見つめ直してみてください。
- もしかしたらこれ Python で自動化できないか?
- なんとかして Python で自動化できないか?
ここで重要なのは、この本を読んで得られる「Python でほとんどのことが自動化できる」という感覚を持ったまま作業を見つめ直すことです。
この本で様々なことが Python で行えることを学んだ上で、この感覚を持って考えると、下記のような作業も「もしかしたら Python で自動化できるのかも?」と考えることができるようになると思います。
- 今まで当たり前のように手作業でやっていた作業
- 絶対に手作業で行わないと無理と思っていた作業
おそらく、単調なことを繰り返す作業であれば、ほとんどのことは Python で自動化できます。
また、作業全体を自動化するのが難しい場合であっても、部分的に自動化することができる可能性もあります。
例えば、作業が “あなた自身の頭で考えて行わなければならない作業” と “別にあなたが考えなくても行える単調な作業” に分けられるのであれば、後者の方は自動化できそうですよね!
作業を自動化して “重要なこと” に使える時間を増やす
もし自動化できそうな作業があった場合、次はその作業の自動化に挑戦してみてください。
その自動化によって、”あなたが自由に使える時間” を増やすことができます。
例えば、ある作業のせいで毎日1時間残業する必要があったのであれば、その作業を Python に行わせることで(つまり自動化することで)、あなたが自由に使える時間が1時間分増えることになります。
その1時間を、家族と過ごす時間に使ったり、趣味に費やしたり、また健康のために運動や休みに費やすことで、あなたの生活の質を向上させることもできますよね。
また、その1時間を副業の時間に充てることで、お金を稼ぐことも可能です。
さらに、その1時間をスキルアップのために費やせば、今後の仕事の質を向上させるようなこともできますし、自分にとって重要な仕事にその1時間を追加で費やすことで、その仕事で高い成果を出すことができるかもしれません。
“かも” と書いてるのは、必ずしも時間をかければ成果が出るというわけではないからです
ですが、時間をかけた方が、成果が出る可能性は高いと思いますし、時間が足りなくて成果が出せないパターンの原因は解消できると思います
ここで、もうちょっと具体的な例で考えていきましょう。
例えば、いろんな Web サイトから収集したデータを分析し、その分析結果をプレゼンするような仕事の場合、Web サイトからのデータの収集を Python で自動化しておけば(Web スクレイピング)、その作業はあなたが行う必要はありませんし、あなたが手作業で行うよりも高速にデータを収集することができるようになります。
ですので、手作業でそのデータの収集に費やす必要のあった時間を、あなたは自由に使うことができるようになります。
その時間を分析に費やせば、時間をかけた分、より良い分析ができるかもしれませんし、プレゼン資料の作成やプレゼンの時間に費やせば、より分かりやすいプレゼンをすることができるかもしれません。
もちろん、その空いた時間の分、早く帰ってリフレッシュの時間に費やすこともできますし、将来を見越したスキルアップの時間に費やすこともできます。
また、Python での自動化は、仕事の属人化を防ぐのにも有効です。
例えば、あなたしかやり方を知らないような作業があるとすれば、その作業はあなたが行わなければならないことになります(いわゆる仕事の属人化)。
ですが、そのような作業も Python で自動化してしまえば、あなたが行う必要はなくなります。
もちろんこの自動化により、あなたの作業時間が短縮されるメリットもありますし、他の人にその作業を任せることができるようになるというメリットがあります(Python スクリプトを実行すれば良いだけなので誰でも作業できる)。
あなたがその仕事をする必然性はなくなりますので、休暇も取りやすくなりますよね!
このように、Python での自動化を行うことで、あなたが自由に使える時間を増やすことができます。
そして、その時間をあなたにとって重要なことに利用することで、あなたの人生をより充実したものにすることができます(スキルアップして仕事で良い成果を出す・副業で稼ぐ・家族との思い出を増やす、などなど)
つまり、Python は単にソフトウェアを作るためだけのものではなくて、“あなたの人生をより充実したものにするため” のツールとしても使用することができるんです。
なので、プログラマーだけでなく、PC を使う人であればどんな人でも Python が使えることに越したことはないと思います。
スポンサーリンク
特に重要なのは “何を自動化するか” を考えること
ただ、こんな例を聞いても、
と思う方も多いのではないでしょうか?
大丈夫です!
世界中にはプログラミングが得意な人なんていくらでもいます。
なので、あなたが “こんなことを自動化したい!” という思いを具体的に持っているのであれば、それをプログラミングが得意な人に相談しながら自動化することもできますし、なんなら委託してその作業を自動化する Python スクリプトを作成してもらうこともできます。
要は、”何を自動化するか” が明確であれば、あとはプログラミングが得意な人の助けを借りてその自動化を実現することができます。
また、ウェブ上には膨大な量のプログラミングに関するページがありますので、ググることでその自動化の参考になる情報が得られる可能性も高いです(特に Python に関する Web ページは多い)。また、ネット掲示板等で相談することももちろん可能です。
もちろん、Word や Excel の操作の自動化などであれば、この退屈なことはPythonにやらせようでも取り扱われていますので、この本の内容を参考にするだけで、あなたの作業も自動化することができるかもしれません。
ただし、あなたよりもプログラミングが得意な人はたくさんいる一方で、”あなたの日々の業務の何を自動化するべきか” を考えるのが得意な人はあなただけです(もしくはあなたの周りの人、例えば上司や同僚など)。
なぜなら、当然ですが、あなたが日々行なっている業務内容なんて赤の他人は知らないからです。
ですので、“何を自動化するべきなのか”を考えるのは他の人に頼るのが難しいです。
なので、他の人に頼りにくい “何を自動化するべきか” を考えることの方が自動化を行う上では重要だと思います(もちろん上司や同僚と相談して考えても良いと思いますが、あなたの作業を自動化するのですから、あなたが主体的になって考える必要はあると思います)。
で、”何を自動化するべきか” は、“どんなことが自動化できうるのか” の勘所を掴んでおいた方が考えやすいです(実例を知っておいた方が考えやすい)。
なので、そのために、その勘所を掴むができる退屈なことはPythonにやらせようを皆さんに読んでいただきたいと思っています。これが私がこの本をオススメする最大の理由です。
私も仕事でいろんな作業の自動化に取り組んできましたが、Word や GUI の操作の自動化はしたことがありませんでしたし、そもそも Word や GUI 操作の自動化をやろうと思ったこともありませんでした。この理由は、これらの操作が簡単に自動化できることを知らなかったからです。
ただ、この本を読んで、これらの操作も簡単に行うことができることを知ったので、今後自動化に取り組む際は Word や GUI 操作も含めて自動化に取り組めると思っています(まだやってない)。
こんな感じで、何をどこまで自動化するかを考える上で、Python で “どんなことが自動化できうるのか” を知っておいた方が、より広範囲かつより現実的な自動化について考えることができると思います。
どんなことを自動化すれば良いのか
“何を自動化するべきなのか” については、前述の通り、是非あなた自身に考えていただきたいです。
ですが、基本的に下記のような作業は自動化によるメリットが大きいと思いますので、日々の業務の中で下記のような作業がある場合、率先して自動化に挑戦してみましょう!
- あなたが繰り返し行う必要のある単調な作業
- Python にやらせて一瞬で作業完了!
- あなたにしかできない作業(属人化してしまっている作業)
- Python にやらせることで誰にでもできる作業に変換!
- 人為ミスが発生しやすい作業
- プログラミングさえちゃんとすれば Python はミスしない!
- チームのメンバーが同じことを行う必要のある作業
- Python にやらせることでチームのメンバーの作業時間を短縮!
もちろん自動化を行うためには Python でプログラミングする必要があるので、そのプログラミングを行うための時間が必要になってしまいます。ですが、上記のようなものに関しては、長期的に見れば自動化により得られるメリットの方が大きいと思います。
また上記の 4. に関しては、”あなたが自由に使える時間を増やす” ための自動化ではありませんが、これによりチーム内(組織内)のメンバーの作業時間を短縮することで、チームや組織の生産性を向上させることができます。
こういった自動化の他の人への横展開も有効ですので、これを意識して自動化に挑戦してみても良いと思います。
さらに、もしあなたが “プログラミングが好き or プログラミングの技術を向上させたい” ような場合、ちょっと時間のかかる退屈な作業であれば、繰り返し行うようなものでなくても Python での自動化に挑戦してみても良いと思います。
これにより、退屈な作業が創造的な作業に変わりますし、プログラミングの技術も向上させることができます(これだけで退屈な作業が充実した作業に変わる)。
さらに、もし同じような作業が再度発生した際に、その自動化スクリプトを少し変更するだけで、その作業を即時に終わらせるようなこともできるかもしれません。
また、下記のようなマトリクスで日々の作業を分類し、緊急度が高いけど重要度は低い作業(やらないとダメだけど自分にとって重要じゃない作業)を自動化するように考えるのも良いと思います。
この “緊急度が高いけど重要度は低い作業” に必要な時間を自動化により削減できれば、その時間を “緊急度は低いけど重要度は高い作業(例えばスキルアップやリフレッシュ、将来に備えた準備など)” に回すことができます。
このマトリクスは7つの習慣という本の中で登場するものになります。この本を読めば、”緊急度は低いけど重要度は高い作業” の重要性をさらに理解することができます(この本も名著中の名著です)。
また、上記のマトリクスについては「緊急度 重要度」等でググっても情報を得ることができます。
この節で説明したことも参考にしながら、是非自身が日々行なっている作業の見直しをしてみてください!
まとめ
このページでは、下記の 退屈なことはPythonにやらせよう の紹介を行いました!
この本を読むことで、Python により自動化できる作業や、その具体的な自動化の仕方を学ぶことができます。
ですが、この本に書かれているのはあくまでもヒントであって、このヒントを活用して “あなた自身の日々の作業” の自動化を行うことが重要です。
この自動化を行うか行わないかで、あなたの人生において、”あなたにとって本当に重要なこと” に使える時間に大きな差が出ます。あなたがスキルアップに使える時間・趣味に使える時間・家族と過ごせる時間を増やすためにも、是非この自動化に挑戦してみてください!
また、組織や会社単位で考えれば、各個人が自動化に取り組むことで、その組織や会社の生産性を向上させることができることになります。なので、会社の新人研修なんかでも、この本かなり良い題材になると思います!
最後に、特にプログラマー向けの人に補足しておきますが、今回は「退屈なことは Python にやらせよう」の書籍紹介なので Python をベースに解説してきましたが、別に Python にこだわる必要はないです。重要なのは、”あなたが自由に使える時間を増やすこと” であり、その手段はなんでも良いと思います。
ただ、Python の場合、利用できる外部モジュール・ライブラリが充実しているので、さまざまな作業を自動化する上では便利だと思います。
こういった自動化は、サクッと簡単に実行できるスクリプト言語が向いていますので、普段コンパイラ言語のみを利用して開発を行なっている人も、日々の作業を自動化するために、スクリプト言語の1つは覚えておいた方が良いと思います(作業を自動化することで、本業の開発に費やせる時間も増えます)。