Pythonでできることは自動化しよう!『退屈なことはPythonにやらせよう』を紹介
成長するPython市場
Pythonは現在、最も成長余地の大きなプログラミング言語として注目を集めており、エンジニアを目指すのであればまずは触れておきたい言語となっています。
調査によると、2019年時点でPythonを扱えるエンジニアの求人数は、2019年時点で前年比252%もの成長を果たしています*1。このことから、Pythonはただ需要が拡大しているだけでなく、その速度が急速に上がっていることもわかります。
このことが意味するのは、多少、スキルレベルがアマチュアレベルであっても、Pythonに対する知見があれば企業は人材として前向きな評価をしてもらいやすいということです。Pythonは学習環境が整っているだけでなく需要もあるため、エンジニアとしてのキャリアを積み上げたいという人にとって、まさに夢のような技術でもあるわけです。
Pythonは未来の技術への入り口
Pythonは、ライブラリー(プログラミングを助けてくれるツール)が豊富で、初心者でも書きやすい言語だといわれています。
そして、Pythonができることは幅広いです。例えば、Pythonを使って以下のようなことができます。
Webサービス・アプリ開発
大規模Webサービスから簡単なゲームまで、さまざまなサービスを構築するのにPythonが使われています。
実際、私たちが日常的に利用しているWebサービスの多くはPythonで構築されています。動画共有サイトとしておなじみのYoutubeをはじめ、写真共有SNSのInstagram、オンラインストレージのDropboxなど、実に多くのサービスがPythonによって構築されています。
Pythonというプログラミング言語から取り掛かろうとすると高い壁のように感じますが、身近な事例からプログラミングを眺めてみると、親近感を覚えられるのではないでしょうか。
ロボット開発
Pythonはソフトウェアの開発はもちろんのこと、ロボットのようなハードウェア開発においても重要な役割を果たします。これまで、ロボットのようなハード開発において重宝されてきたのは、CやC++といった言語です。これらは汎用性が高い分、学習するにも一苦労とされてきたのですが、近年はPythonによって代替的に活用されるシーンも増えてきました。
というのも、Pythonは非常に学習難易度がプログラミング言語の中では低く、それでいてC言語並みの汎用性を備えているため、より多くのエンジニアの誕生に拍車をかけているためです。
また、PythonはC言語やC++との相性がよい言語でもあります。そのため、既存の環境からPythonの利用へと容易に移行しやすいので、企業でも積極的なPythonの活用が増えてきています。
AI(人工知能)を作る
機械学習、ディープラーニングでの解析や最適化、画像判断ができます。難しそうに思える機械学習も、ライブラリーが用意されているので扱いやすくなっています。
昨今の人工知能ブームを支える機械学習やディープラーニング(深層学習)、ビッグデータの分析、この他にはブロックチェーンにもPythonが使われています。Pythonは未来の技術を支える言語と言ってもいいでしょう。
そして実は、Pythonを使うのはプログラマーだけではもったいない!と言えるのです。
例えば、AIを作れるとその機械学習により市場における消費者行動を分析でき、マーケティングの土台強化につながります。マーケティングに役立つ他にも、例えば投資家としても使えます。土地の価格や投資判断のための情報を収集して学習し、価格予想やポートフォリオの最適化を行うことが可能になります。
『退屈なことはPythonにやらせよう』とは
AIのような最先端でホットな技術に活用されるのみならず、Pythonは身近な問題の解決にも利用できます。日々の煩わしい単純作業を自動化することだってできてしまうのです。
『退屈なことはPythonにやらせよう』は、数多くのコンピュータ関連の書籍を出版しているオライリー・ジャパンの本です。
日本語版は2017年6月1日に発行されました。
※原文は2015年にNo Starch Press, Inc. から出版されています。
Al Sweigart(著)・相川 愛三(訳)(2017)『退屈なことはPythonにやらせよう――ノンプログラマーにもできる自動化処理プログラミング』 オライリー・ジャパン
発行時から人気の本です。書店に平積みされているのを目にした方も多いはず。
Python初心者であるエンジニアたちにとっても有益な本ですが、副題は「ノンプログラマーにもできる自動化処理プログラミング」。
業務の自動化は何も機械学習やディープラーニングを駆使したAIの専売特許ではありません。
働き方改革やAIによる自動化が叫ばれる昨今、魅力的な内容ですよね。
本書で紹介されているような「ごく簡単な」プログラムをささっと書くことで日々の煩わしい単純作業を自動化することだって可能なのです。
本書を読んでできるようになること
本書はその副題の通り、ノンプログラマーでも単純作業を自動化するプログラムを書けるように、Pythonの基礎について本の前半でそこそこ詳しく解説しています。
Pythonの基礎を身につけて後半を読むと、手作業で行うと膨大な時間と手間がかかる以下のような作業を、Pythonを通して自動化することができます。
・クリップボードにコピーしたテキストに一瞬で特定の変換をほどこす
・何十通りもの「県庁所在地を4択で問うテスト」を自動で作成する
・何百もあるファイルをコピーしたり、ファイル名の先頭に連番を振ったり、ZIPファイルを作ってバックアップを作ったりする
・コマンドラインからWebブラウザを開いて検索する
・Webサイトの各ページのデータをダウンロードする
・Excel上に膨大に存在するデータのうち、特定の値(例えば商品AとBの価格)だけを更新する
・複数のPDFファイルの好きなページをまとめ、1つのPDFファイルにする
・何十人もの顧客への送付状をWordで自動生成する
・簡単なストップウォッチやタイマーを作る
・何十人もの人に、人それぞれの内容でリマインダメールを送る
・何百枚もの画像にロゴを追加する
・何十人もの情報をWebフォームに入力し、送信するを繰り返す
単純作業をひたすら続けているとミスも起こりますし、なによりつまらないですよね。
簡単なプログラムを書くことで、ミスをなくし、劇的に作業時間を短縮できます。
さらに嬉しいことに、後日同様の作業が発生した場合にもプログラムを少し修正するだけで対処できるようになります。
自動化を支えるPythonの処理
さまざまな自動化を実現するために、以下のような処理について具体例を交えた説明がなされています。
・正規表現やクリップボードのデータの読み書き
・ファイルの読み書き
・ファイル・フォルダ(ディレクトリ)の操作
・Webスクレイピング
・Excel・PDF・Wordファイルの操作
・CSVファイル・JSONデータの操作
・時間制御やプログラムの自動実行
・他のプログラムの起動
・電子メール・SMSの操作
・画像の操作
・キーボード・マウスの操作
これらの処理を身につければ工夫次第でなんでもできそうですよね。
Pythonでできること、その幅広さと強力さが実感できるでしょう。
実用的な解説
本書は処理内容や具体的なコードを解説するだけではなく、作ったプログラムを「どのように起動すると良いのか」といった実用部分まで教えてくれます。
「処理やコードだけの解説を元にプログラムを組んだところで、いちいち起動するのが面倒になり、結局使わなくなってしまった」という経験、ありませんか。
本書ではコマンドライン等からプログラムを実行するための方法も適宜指示されているため、すぐに日々の作業に組み込むことができます。
また、デバックの方法とコツについても章を1つ割いて解説されています。
ノンプログラマーにもプログラマーにもおすすめ
本書の副題には「ノンプログラマーにもできる自動化処理プログラミング」とあり、本書のまえがきにも、”ふつうの人のための本”とあります。
ノンプログラマーでも、例えば膨大な情報収集と傾向調査を行う必要のあるマーケティング、ことあるごとにExcelやWordでの単調なデータ編集を行っている事務員などがPythonを使えるようになれば大幅な業務効率化ができるでしょう。
また、特定の用途でPythonを使ったことのある人、Pythonの初心者~中級者が読んでも大いに学びがあります。
というのも、本書を読むとPythonでできる基礎的な処理をまとめて身に付けられ、「痒いところに手が届く」プログラミングが可能になるからです。
プログラミングは機能の組み合わせで成り立っています。そのため、より基礎的・汎用的な処理を多く知っておくと実現できることが飛躍的に増えていきます。
得られた知識は機械学習やデータ分析など特定の目的を持ったプログラミングの下支えになったり、プラスアルファの機能の追加・作業の効率化に役立ったりします。
プログラマーの場合、Pythonを習得していると、今求人の多いWebアプリケーション開発者、今後ますます増えてくることが予想されるAIエンジニアやデータサイエンティストへの道が開けます。
人工知能の発展により単純作業の自動化が進む中で、それを作る側のPython人材への需要が高まっているからです。
Pythonでできることは自動化し、豊かな人生を
プログラマーであろうとノンプログラマーであろうと、Pythonによる自動化で私たちはもっと有意義で創造的な作業に時間を使えるようになります。
Pythonを味方につけて時間を生み出し、豊かな人生を送りましょう。
*1 日本の人事部「Python市場動向とPython認定試験の重要性」
https://jinjibu.jp/spcl/python-exam/cl/detl/3508/
2021年3月3日加筆
大手ゼネコンBIM活用事例と 建設業界のDXについてまとめた ホワイトペーパー配布中!
❶大手ゼネコンのBIM活用事例
❷BIMを活かすためのツール紹介
❸DXレポートについて
❹建設業界におけるDX
▼キャパの公式Twitter・FacebookではITに関する情報を随時更新しています!