趣味は、楽しいからやるものです。
車が趣味であれば、運転が楽しい、車の改造が楽しい。
ゴルフが趣味であれば、自然の中で体を動かすのが楽しい、スコアを伸ばすのが楽しい。
では、プログラミングはどうでしょうか?
筆者はプログラミング趣味歴18年です。
18年も続くのですから、相当楽しいです。
プログラミングの楽しさは、主に下記2つに集約されます。
- プログラムを書いている時間
- 製作物が完成したときの達成感
2つ目の達成感は分かりやすいと思いますが、1つ目はどういうことでしょうか。
プログラムを書いている時間は、パズルを解いているときの感覚に似ています。
例えば、お絵かきロジックや数独等のパズル雑誌を思い浮かべて頂ければと思います。
パズルを解くときは、細かい達成がいくつもあり、その度に脳内快楽物質(ドーパミン)が出ます。
これが病みつきになるのです。
しかしながら、プログラミングを趣味にするには、一つ課題があります。
それは、「製作物をどうするか(何を作るか)」ということです。
製作物が見つからない限り、プログラムを書くことはできません。
つまり、製作物を見つけることも趣味の一環にする必要があります。
実際、筆者もプログラミングをしたいけど「何を作るか」で悩むことが多々あります。
本記事では、プログラミングを趣味にしたい人に対して、筆者が過去に作成した製作物を例としてご紹介します。
今後、読者の皆様が、プログラミングライフを充実させるための何らかのヒントになればと思います。
目次
製作例1 配当投資向けポートフォリオ作成アプリ
製作経緯
ポートフォリオアプリは、既に多数アプリ化されています。
最も有名なのは、Yahooファイナンスのポートフォリオではないでしょうか。
私もYahooファイナンスのポートフォリオを利用しておりますが、微妙に痒いところに手が届いていないというのが正直な感想でした。
具体的には、カスタムポートフォリオで、配当利回りの一覧化はできますが、配当総額の一覧化ができず、年間の予想配当総額がどのぐらいになるのかが見えにくいという課題がありました。
エクセルファイルにデータを入力して計算することは可能ですが、投資状況は変化するため、すぐにデータが古くなります。
そこで、自分オリジナルのポートフォリオサイトを作成することにしました。
システム構成
Yahooファイナンスと証券会社のサイトに対してスクレイピングを行うPythonスクリプトを1日1度スケジュール実行し、取得したデータをJSONファイルにまとめます。
HTML+JavaScriptでJSONファイルを読み込み、整形してWeb表示するシステムを作成しました。
本システムにより、株式データ分析の際のデータ最新化の手間から解放されました。
Web画面のイメージは以下です。
必要な情報がまとまっていて気に入ってます。
製作例2 家族専用のメッセンジャーアプリ
製作経緯
仕事では報告・連絡・相談が基本ですが、家庭においても同じだと考えています。
連絡事項の一つとして、仕事から帰る時間を毎日連絡するようにしていますが、LINEで毎日帰宅時間を打ち込んで送付することはとても面倒です。
よほどマメな人でないと難しいと考えています。
LINEは、汎用性のあるアプリのため、操作感は単純ではありますが、こと帰宅時間の連絡においてはオーバースペックと言えます。
このことから、もっと簡単に帰宅時間を家族に伝えられるシステムを作ろうと思いました。
システム構成
リビングにUSBスピーカーを繋いだミニサーバ(Raspberry Pi)を設置し、Webアプリを動作させます。
「◯◯分後に帰宅」ボタンをタップするだけで、リビングで何時何分に帰宅するとのアナウンスが流れます。
本システムにより、帰宅時間の連絡がスピーディーにこなせるようになりました。
連絡される側も、LINEをわざわざ開く必要がないこともポイントです。
Web画面のイメージは、こんな感じです。
カスタムボタンを作成することも可能です。
実際の音声です。メッセージ前後にチャイムを入れています。
※ 音量にご注意ください。
製作例3 車内装飾LED操作スイッチ
製作経緯
マイカーの車内をオシャレにしようと思いたち、装飾用のLEDを購入して取り付けました。
ところが、色の変更や電源のオンオフは付属の赤外線リモコンで行うタイプの製品でした。
電源のオンオフはともかく、色の変更のために、わざわざリモコンを取り出すことは面倒で、いつかやらなくなってしまうだろうという確信がありました。
そこで、ボタンを押すだけで、電源のオンオフ、LEDの色変更ができるようにシステムを作成することにしました。
システム構成
本システムの構成は、別記事にまとめております。
本システムにより、手軽にLEDの色変更を楽しめるようになりました。
製作例4 猫型Wi-Fi電波時計
製作経緯
電波時計は時刻の補正が必要なくて便利ですが、室内にあると電波が届かずズレていきます。
そこでトイレや洗面所に設置する時計として、Wi-Fi電波時計を作成しました。
インターネット経由で正しい時刻を毎日取得するため、時刻がズレることはありません。
電源もUSB給電するため、全くのノーメンテを実現しました。
猫型にしたのは、猫が好きだからです。
システム構成
メインのハードウェアは、Wi-Fi接続機能付きのマイコン(ESP-WROOM-02)を利用しています。
本マイコンは、Arduinoのプログラムが動くため、比較的簡単に様々な機能を実現できます。
猫型の筐体は、3D CADで設計し、3Dプリンタで印刷しました。
設置イメージです。
4年ぐらい使ってますが今も元気です。
製作例5 温湿度計付きWi-Fi電波時計
製作経緯
製作例4と似ていますが、こちらは、温湿度計機能をつけたWi-Fi電波時計です。
こちらを作ったきっかけは、M5Stackという画面付きのマイコンの存在を知ったことです。
M5Stackは、Arduinoのプログラムが動きますので、とても簡単に様々な機能を実現できる上、カラーモニターまで付いています。
室内の温度と湿度をWebから取得した気温、天気と同一の画面で表示できるようにしました。
システム構成
本システムの構成については、別記事にまとめております。
モニターがあるおかげで、表現が豊かになります。
製作例6 LEDパネルを使った情報表示端末
製作経緯
筆者は、毎朝、服装を決めるため、アレクサに気温を聞く習慣がありました。
特に季節の変わり目は暑くなったり寒くなったりしますから、筆者にとっては重要な作業でした。
Amazonでプログラミングに利用できる何か面白いものがないか物色していた(日課です笑)ある日、このLEDパネルを見つけました。
これがあれば、毎朝アレクサに話しかけずに済むと思い、作成しました。
柴犬シミュレーションは娘が喜ぶかなぁと思い、遊びで実装しました。
システム構成
本システムの構成については、別記事にまとめております。
まとめ
プログラミングを趣味とする者にとって、アイデア発想は肝です。
アイデア発想の起点は、ちょっとした不便さです。
「ちょっとした」というところがポイントで、かなりの不便さがある場合、巨大なニーズがあるため、既に製品化されています。
少し不便で、小さなニーズがあるけれど、マネタイズが難しかったりするところには、まだまだ不便さが残っていますので、そこを見逃さないことが大事です。
そして、不便さを感じるには、常に新しいインプット、つまり、新しいことへの挑戦が必要になります。
新しいことへの挑戦というと大げさに聞こえますが、小さなことで良いです。
例えば、歩いたことのない道を歩いてみたり、入ったことのない店に入ったりするだけでも立派な新しいことへの挑戦です。
もちろん、新しい土地に引っ越したり、車を替えたりすることはかなり有効です。
そうして得た新しい発見が、不便さを見つける源泉になりますので、新しいことを追い求める心を大切にしましょう。
コメント