プログラミングで初めて稼いだプロセスとそこから得た学び
先日生まれて初めてプログラミングでお金を稼ぐことができました。
どのようにプログラミングで稼げたか、納品までのプロセスとこの経験で得た学びを伝えようと思います。
初受注までの流れ
すべては先日、妻の何気ない一言から始まった。
「実験データの解析を自動化できないかな?」
どうやら細胞の長さを測って、エクセルで楕円率を計算しているのだけれども、いかんせん実験データの数が多いので何回も手動で計算する、実験条件ごとにデータを分けるのが地味に大変ということらしい。
そこで私は考えた。
せっかくプログラミングの勉強しているのだし(pythonだけど)、vbaも触ったことあるし、マクロ作ってあげようかと。それを口にしてみた。
私「じゃあマクロつくってあげよっか?」
妻「いいの!?お金払うよ」
私「(お金取るつもりなかったので) え、いいの!?やったー!」
というわけで、生まれて初めてプログラミングのお仕事を受注したわけです。
マクロの仕様を決める
なんとなくできそうだとは言うものの、具体的にどういう処理が必要か見えてきません。そこで手動でどういったことをしているか詳しくヒアリングしました。ざっくりこんな感じです。
手動でやっていること
Step 1
実験データをシートに記入する。
Step 2
2つの実験データを組合せて楕円率を計算する。
Step 3
計算結果を実験条件ごとにシートに分ける。
Step 4
実験条件ごとにcsvファイルで出力する。
Step 1は別のソフトを使ってたので無理としても、それ以外はマクロで自動化できそうです。
Step 3では計算結果だけを残して元データと途中計算は捨てているようですが、これらを消してしまうとデータのトレーサビリティがなくなりますので、個人的には残した方が良いと考えました。そうすると、マクロを組むときはStep 2とStep 3は入れ替える必要があります。
結局やることを図示するとこんな感じです。
また、Step 2で計算を行う際は単純なデータ列のコピーではなく、下図のように2行データを1行にしてやる必要があるとのことでした。これは地味に難しそうです。
マクロの実装と妻の評価
vbaも何年かぶりに触るので書き方は全く覚えてません^^;
でも実装すべきことと、それを実現するためのアイディアは描けたのでひたすらググります。
例えば、「同じ実験条件のシートがあるかないかを判定する」(シート名を実験条件と同じにするので)ことがしたいときには『vba シート あるかどうか』という検索ワードで、if文が書きたくなったときは『vba if』といった具合です。
妻からお金をいただいたのでソースコードの公開は控えますが、やったことの概要は次のとおりです。
計算マクロ
・新しい実験条件か否かをif文で判定
→新しければシートを追加
・元データをシートにコピー
→実験条件のシートにfor文を使ってコピー
・vbaを使って計算式をセルに入力
(vba上で計算すると途中結果が全くわからないので)
・マクロ実行ボタンを入力シートに用意
csv出力マクロ
・指定したシートをcsvファイルに出力する
いっぺんに書いてもどうせうまくいかないので、機能単位というかブロック単位というのか、部分的に作り上げて完成を目指します。そうしてvba と格闘すること約3時間、マクロが仕上がりました。
出来上がったマクロの画面はこのような感じです。
入力画面
計算結果の画面
マクロに対する妻の評価
マクロを実行すると1秒もかからず計算が完了するので、これには妻も大喜び。「めっちゃ捗る!ありがとう!こんなことができるなんてすごいね!」と感謝・称賛されました。
自分としてはそんなに大したことはしてないのですが、妻の喜ぶ態度をみて良い仕事をしたなぁと思わずにはいられませんでした。そして以下に述べる2つのことを学ぶことができました。
自分の力で稼いで得られた学び1 働く喜び
今回、生まれて初めて自分一人の能力でお金を稼げたことに、とてつもない喜びを感じました。
なぜなら人生を振り返ってみて、学生時代のアルバイトにしたって今の仕事にしたって、自分一人の力でお金を稼いだという経験はなかったからです。とりあえず与えれた役割をこなしておけばお金はもらえるものだ、仕事とはそんな程度のものにしか考えてませんでした。(私はだいぶドライなタイプ
なんだと思う。)
仕事とは、仕事をしてお金がもらえるから嬉しいのではなく、自分の力で成し遂げてそれが評価(最終的にはお金という形かもしれないが)されることが嬉しいのではないだろうか?いやこれこそが仕事の醍醐味なのではないだろうか?ということに、32歳にしてようやく気がつきました。
自分の力で稼いで得られた学び2 自覚してないけど他人からみたら凄い能力
さらに自分としては、プログラミングはできるけど綺麗なコードが書けるわけではないし、計算速度とか考えてるわけでもないし、所詮アマチュアレベルという認識でした。
しかし、出来上がったマクロに喜んでくれた妻はそんな私の気持ちはお構いなしに、手放しにすごい能力があると褒めちぎってくれました。「自分では大したことないと思う能力でも、他人から見ればすごい能力」がちゃんと自分にもあることに嬉しく思い、また自信にもなりました。
今回はプログラミングで初めて稼ぐことができたプロセスとそこから得られた学びについてお伝えしました。
私としては、学び2の「他人からみたら凄い能力」に気がつけたことが一番の収穫でした。この能力はプログラミングだけではないし、何個もあるはず。それらに気がつくことで人生がより豊かになることを確信し、これから追い求めて行こうと思った次第です。
それではまた(^_^)ノシ
P.S. えい夫にプログラミングを依頼したい案件があれば、下記のリンクをご参考にお問い合わせください^^
よろしければサポートお願いします!いただいたサポートは書籍代等に活用いたします!