プログラミングを始める動機を作ろう

筆者自己紹介

2012年からアマチュアプログラマーをし続けています。専門は化学です。扱ったことある言語はC++、VBA、JavaScript、TypeScript、PHP、Delphi、Rust、Powershell、Pythonです。好きな料理はガトーショコラです。

この記事について

初心者プログラマーになりたい人に向けて書きます。特に本記事は何かしらの業務・作業の自動化をしたい人に向けて書きます。周りに「プログラミングの勉強をしたいけど何をしたらいいかわからない」という人をちらほら見たからです。前提として、Pythonを使うことを想定しています。コードもちょっと書きます。しかし文法的なことは触れないし、文法について分からなくても理解できるように書くつもりです。

概要

 この記事ではプログラミングの学習を始めるにあたり、その動機を明確化することを目標とします。筆者の印象ですが、プログラミングを学ぶこと自体に崇高な意味があると思っている方が幾ばくかいるように思います。しかし、プログラミングはあくまでも何かを実行するための手段ですので、プログラミングを学ぶこと自体を目標とすると長続きしにくいのではないかと思っています。そこでまずは読者がたの隠された動機を引き出すための手引きとして、本記事を書きます。

プログラミングを始めるひとは「プログラミングを始めたい」と思っている人ではない

 突然ですが、プログラミングの適正がある人とはどのような人でしょうか?様々な意見があるとは思いますが、筆者は以下に述べるような人が適正があると考えています。

  • 面倒くさがりな人

  • 退屈を嫌う人

  • コツコツと同じことを繰り返すのが嫌いな人

  • 常に楽をすることを考えている人

プログラムは一定の作業を繰り返し処理、高速処理するのに長けています。それゆえ、人間が考えなくてもできるような作業の内、コンピューター内で行う作業はプログラムで自動化することができます(物理的な業務はロボットなどで自動化されます)。すなわち、プログラミングとは楽をするためのツールを作ることです。それゆえ、どれだけ楽ができるかを考えることがプログラミングをする上での鍵となります。勤勉さなんぞゴミ箱にぶち込みましょう。

 それゆえ、プログラミングを始めるための動機は何か楽をしたいからであるはずです。逆に楽にしたい業務が無いうちはプログラミングのスキルがあっても宝の持ち腐れになってしまうと思います。それゆえ、まずは自分の内なる動機を引き出して、それを目標にプログラミングを学びましょう。それだけでかなりモチベーションが高くなるはずです。

プログラミングを学ぶ必要が出る瞬間とは

 ではどのような場面がプログラミングを学ぶきっかけとなるでしょうか。具体例を挙げます。

 貴方は今お仕事で測定データを処理する業務をしています。下の図は筆者が適当に作った架空のデータです。

架空の生データ

これに対し、時間の単位を時間(hour)に、さらにB列とC列の温度差を計算したいと思ったとします。これには何をすればいいでしょうか?そうです、Excel関数を使えば解決します。この程度でプログラム作るのはかえって大変ですからね。

処理されたデータ

一個や二個なら人間の手でやった方が早いですね。

たくさんの架空の生データ

データが増えました。すべてのデータに対して同じことをしないといけません。おそらくこう思うでしょう。「なんとめんどくさいんだ」、「人間がこんなのしなくてもいいじゃないか」、「同じ作業の繰り返しじゃないか」。そう思う時こそがプログラミングを学ぶのに一番適する瞬間です。

 このように、身近にある「めんどくさい」作業とか「人間がやらなくてもいい」作業とかを見つけたら、その日は絶好のプログラミング日和です。このような明確な目標が無くとも、プログラミングしたいと思っている人はぼやっと普段の作業にめんどくささを感じているのではないでしょうか。どのような作業なら自分が考えなくてもいいのか、普段の作業を見つめなおしてみましょう。

目標を決めよう

 プログラミングを始めると決めたからには、まずは達成するべき目標を決めましょう。しばらくはその目標を達成するために適切な手段を選び、それを学び、試行錯誤します。目標は明確であり、なおかつシンプルであるといいです。例えば上記の例では「測定データが格納されたxlsxファイルに、時間単位の経過時間カラムと温度差カラムを追加して保存することを、あるフォルダ内のxlsxファイルすべてに対して実行する」をしてくれる方法を作ります。xlsxファイルの編集を自動化する方法が必要そうですね。その方法についてGoogle先生に聞いてみます。

どうやら、世間一般的にはPythonが使われるようです。では、Pythonでプログラムを作ってそれを走らせることが目標となりました。

 注意してほしいのは、この段階で適切な手段がプログラミングないことに気づくパターンもあるということです。例えば、Word文書でギリシャ文字を入力するのがめんどくさい場合にはCtrl + Shift + QでSymbolフォントのギリシャ文字を入力することができますし、Excelで回帰直線フィッティングをしたい場合はソルバーが使えます。それらのほうが楽ならばそれらを使うべきです。

 また、目標に対する手段が難しい場合もあります。例えば筆者が知る中では、Microsoft Poperpointでマクロを走らせるのは技術的な困難を伴います(Word、Excelのような標準マクロ用のファイルが存在しないためです)。このようなときは、新しい技術を学ぶ大変さとこれからどれだけ楽できるかを天秤にかけ、楽な方を選びましょう。

まとめ

  • プログラミングは楽をする手段

  • 楽をしたいと思ったらプログラミングの出番かもしれない

  • 一番楽な方法を考えよう

余談

 さっきの測定データファイルがある画像を作る時、筆者は「これ作るのめんどくさいなぁ」と思いました。すなわちプログラミング日和です。それゆえ、この処理はある程度自動化しました。まずはひたすらファイルをコピーペーストして「データ - コピー (XX).xlsx」というファイルをたくさん作ります(XXは連番の数字です)。筆者はWindowsを使っていて、Windows上でのファイル処理にはPowershellを使えばいいことを経験的に知っているため、以下のようにGoogle検索しました。

その中から適当に見様見真似で以下のコマンドをPowershellで実行しました。

ls|Rename-Item -NewName {$_.Name -Replace 'データ - コピー ', 'Data'}

意味の詳細は割愛します(筆者も完全には理解していません)が、あるフォルダのファイルを全部持ってきて(lsの部分)、ファイル名のうち'データ - コピー'の部分を全部'Data'に置き換えています(Rename-Item以降の部分)。

 このように、「めんどくさい」と思った瞬間こそがプログラミング日和である(かもしれない)ことをぜひとも理解していただけたらと思います。

いいなと思ったら応援しよう!