プログラミングを学んで、自作プログラムが売れるまで26年掛かった話
こんにちは、あらんです。御覧頂きありがとうございます。
この記事長いです。感情のおもむくまま、読み手のことを考えていませんんので、面白いかどうかわかりません。
先日、有料noteで公開したpythonで書いたプログラム(ツール)が、初めて売れました。やった~!その額なんと1500円。
仮想通貨関連ですが、自動売買BOTに比べると地味なツールです。しかも、BitMEXの複数口座をチェックしたいという非常にニッチなニーズに向けたものです。
最初のご購入者様は、
『応援』してくださったようです。しかも自身で同種のツールをつくってるそうです・・・。ん?
それってもしかして、使われてないんじゃね?
そらそうだよね。自分でおんなじ、かつ高性能なの作ってるんだもん。
でも気にしません。売れたことには違いありません。
しかし、そんなことで、なぜこんなnoteを書いたか。それは、私が、長年、自分のプログラムを人に使ってもらいお金をもらうことに憧れていたからです。
かつてはシェアウェア。最近ではスマホアプリ。個人がプログラムを書いて一発当てるのは、仮想通貨で「億る」よりも私にはドリーミングなのです。
■プログラムをはじめる(高校編)
15歳の春、私は都立の情報科という学科のある高校に進学しました。
そういえば、家にMSXがあってゲームとかしてましたが、特段、コンピュターに興味があったわけではなく、第2希望の学科に引っかかったのが実際です。
情報科なので、演算装置、記憶措置、補助記憶装置、といった用語から、1年生のときはBASIC。2年生のときはCOBOLを習いました。
そんなに落ちこぼれているわけではなく、隣の席の女子に、わからないところを教えるくらいには理解していたと思います。
しかし、全商の試験や、情報処理の試験(懐かしの2種)は、受験料をはらって、当日さぼるくらいにはやる気がなかったです。
というのも、高校時代はテニスの部活にはまってました。
当時は、松岡修造や伊達公子の全盛期で、日本のテニスの黄金期でした。照明設備のある高校だったので、毎日、夜までボールを打ってました。
ただ、ワープロ(一太郎)、スプレッドシート(Lotus123)、データベース(桐)など学び、人より高いITスキルがあるのは、この時の蓄積かなと思います。
■シェアウェアとの出会い(大学編)
1浪して入った大学は、つぶしが効くという理由で法学部に入りました。学校のPCルームは整備さたばかりで、利用者が多く、ほとんど使えなかったので、レポート作成やインターネットをするためにバイトの給料を貯めて、Windows95パソコンを買いました。
しかし、パソコンを買ったものの、ソフトが入っていません。当時のソフトウェアはとても高額で、気軽に買えたものではありません。
そこで利用したのが、フリーウェアやシェアウェアです。インターネットやパソコン通信(ニフティサーブ)から手に入れ、特に、決済手段が発達していない当時はシェアウェアといえばニフティのシェアウェアフォーラムだったと思います。
特に使っていたのは、『秀丸エディタ』。当時、テキストエディタの選択肢といえばこれでした。その時から、プログラムをつくったらお金になるんだと何となく感じましたが、その後、作者は秀丸御殿を建てたとか、フェラーリに載ってるとか(後にランサーエボリューションに乗ってたとインタビューで答えてます)そんな噂をネットで知り、
「俺もシェアウェア作りたい・シェアウェア御殿を建てたい」と思うようになりました。
思い立ったら、まず開発環境です。バイト代を貯めて、VisualStudioを購入しました。Visual BasicでなくなぜStudioを買ったのかは記憶にありませんが、おそらく、アカデミック版がStudioだけだったとかそんな理由だと思います。アカデミック版といっても10万円近くしたと思います。しかしそんな投資もシェアウェアをつくればあっという間に回収できる。なんといっても高校時代にBASICを学んでいるのだから、簡単にできるはずだと高をくくってました。
しかし、そう簡単に行きませんでした。
起動すると、まっさらなフォームがひとつ。
ぐらふぃっく・ゆーざー・いんたーふぇーす?こんぽーねんと?ぷろぱてぃ????
さっぱり理解できませんでした。そして、VisualStudioはハードディスクの肥やしとなり、また、VBよりも簡単だと聞いてDelphiも追加で購入するものの、やはりハードディスクの肥やしになりました。
■システムエンジニアになる(社会人編・新人時代)
シェアウェア開発には挫折したものの、バイト代は自作PC につぎ込み、当時流行りだしたLinuxをインストールしたりと、自宅サーバーを構築したりと、広義のITスキルは広がったため、就職氷河期のなか、なんとか大手SIerの関連会社に就職することができました。
SIerを志望したのは、もしかしたら、
「会社の金でソフトウェア開発の技術を身につけられるんじゃね?」
と、思ったからです。
しかし、配属されたのは情シス部門。社内のサーバ群やネットワークのメンテや、ソフトウェア的な仕事も、社内の業務システムの仕様検討や外注管理でした。同期はというと、大手SIerというところは、プログラミングをしている者は皆無で、上流工程をしているか、ネットワークやサーバ管理をしているひとばかりでした。
しかし、そんな私にプログラミングをするチャンスが現れます。メール以外で、「社内ホームページをつくり社員に情報を共有する方法を考えよ」(記憶はおぼろげ)というミッションが与えられます。いまでこそ、サイボーズなどイントラネット内の情報共有ツールはあたりまえですが、20数年前はあまりソリューションがありませんでした。
当初、「Movable Typeでブログを立ち上げたらいいんじゃないですか?」と提案するも、総務部の人はMovable Typeもブログも知りませんでした。説得を試みますが、社外のサーバに情報を置くこともダメ、保証のないオープンソースソフトウェアをつかうことは許されませんでした。
そんな私に与えられたリソースは、WindowsNT Server1台のみ。思案した私は、NT Server付属のIIS SererでWebを立て、ASP(Active Server Pages)でブログもどき社内ホームページを作ることにしました。
それから、2週間ほど、仕事の合間に開発を行いました。当時はGitHubもQiitaもない時代。ネットでサンプルコードを探すのは割と大変でした。それでもマイクロソフトのWebサイトを頼りに(英語ですが)、コピペ開発で、記事情報(xml)の生成機能と管理する画面と、社員が参照するフロント画面を備えた社内ホームページを完成させました。
プログラミングが出来るひとが全くいない情シス部門においては、なかなかの評価を得たのですが、全社的にはすこぶる評判が悪かったです。
何故か。それは、壊滅的にデザインがダサかったからです。
技術的には、HTML内に記事の情報を持たず、記事データをXMLで貯めとく思想は、組織変更の度にデータのディレクトリを変える運用担当者には重宝されましたが、見た目でしか判断できない他部署のおえらいさんはデザインのことしか言いませんでした。
しかし、そのダサダサ社内ホームページは、外部の業者に外注するまで、約2年運用されました。
■経理屋になる(社会人編・中堅時代)
就職して4年半、社内の経理システム全般に精通しているという理由で経理部に移動になりました。正直、「はぁ?」って感じでしたが、悲しき社畜、全く知見のない経理の仕事に従事することになります。
当時、その会社の経理部は残業過多でした。理由は2つ、「経理部員のOAスキルが低い」と「経理業務の複雑性とにくらべシステム化予算が少ない」ことにありました。
前者は、EXCELのVLOOK関数やピボット計算を知らないひとがほとんどだったので、EXCEL機能の布教活動をおこないました。
後者は、MS-ACCESSで簡易的なシステムを構築しました。会計システムの裏にあるオラクルデータベースとつないで、仕訳データをローカルにダンロードし、ローカル上で、クエリとSQLで集計加工し、最終的に、オラクルデータベースに仕訳データを流すという、現在の内部統制事情からすると完全にアウトなことをしていました。
そういえば、この時代、シェアウェアの話題はありませんでした。パッケージソフトが安くなったのと、フリーミアム全盛でタダのものが多かったように思います。
■iPhoneアプリ(社会人編・流浪人時代)
その後、転職を繰り返し、まっとうな経理担当者として、決算を出したり、ベンチャー企業の資金調達をしたり、経理だけでなくバックオフィス全般をとりまわしたりするなか、あれが登場します。
iPhone 3G
アプリストアをそなえ、端末による差異がなく、決済手段があり、個人登録もできる。これに、シェアウェアドリームの再来を感じました。個人の開発者で億稼いだという、噂もちらほら。ガチャゲーが流行るだいぶ前の時代です。
もしかしたら、アプリ御殿が建てられる。
そうiPhoneならね。
早速、macを買って、Xcodeをインストールし、Developer登録をしました。当時はドルでしかお金を受け取れなかったので、シティーバンクに口座を作るとこまでしました。
Objective-Cの本を何冊も買い。チュートリアルをいくつもやりましたが、
なんの成果も得られませんでした!!
GUIの部品からドラックドロップでコードエディタにつなげるとか、何のためにするのかよくわからず。また、流行っているアプリのようなリッチやおしゃれなインターフェースをつくる方法がわかりませんでした。
そしてSSDの肥やしに。
■仮想通貨BOTとの出会い(最近編)
最近、仮想通貨取引をはじめました。取引している中で、相場の急変などで、きっちり注文をとおして、利益をあげているひとが存在することを知りました。また、ビットフライヤー限定ですが、SDFの制度を利用して儲けている人がいると知りました。
人間業じゃできないけどどういう仕組なんだろうと疑問を持ち調べると。
どうやら、取引所は、APIを提供しており、ユーザーはBOTと呼ばれるプログラムを動かし、システムトレードをしていると知りました。
ビットフライヤーのAPIの解説ページを見るも、ちんぷんかんぷん。そもそもWebAPIって何よ?JSON?東洋経済が気味の悪いファイルとよんだあのJSON?
すっかりやる気は失せた中、サンプルコードでもないかぐぐると、世の中には、売買BOTを有料で打っているひとがかなりいることがわかりました。
それなら、俺でもシステムトレードできるかな?といろいろ吟味したところ。自分の目的に近そうなBOTを見つけました。
これに興味を惹かれたのは、売買システムなどの基本部分と、インジケータや、売買サインを司るロジック部分が切り離されており、ロジックを作る部分に専念できるところでした。
長い人生、株や為替FXでインジケータなどは理解していたので、その部分だけコーディングすれば自分もシステムトレードができると感じました。
実際、Pyshonのコードは理解しやすく、CCXTやTA-libなどのライブラリーが充実しており、ほんの数行書くだけで、難しいインジケータの計算ができました。そして、売買のルールをかくと、それは立派なシステムトレードのボットでした。
プログラミングに何度も挫折し、人がつくったプラットフォームを利用したとはいえ、初めてプログラミングらしい成果物ができたのは、何故なのか考えました。それは多分・・・
BOTには、GUIがないから
そうです、BOTには、空のフォームや、ダサいと非難されるWeb画面、リッチなインターフェース、そんなものは必要ありません。
私はプログラミングができないんじゃなく、GUIとデザインができないんだとここで気が付きました。
ふと、「ロジック売ったらいいんじゃね」とも思いましたが、将来の売買成果がわからないものがどんだけ価値あるか、ちょとわかんないですね。
そうこう考えながら、他人のつくったロジック、自分の作った複数のロジックを比較、運用し、いろいろ研究するうちに、困ったことに気づきました。
運用するBOTと口座が増えると、管理や現在の残高や含み益、トータルもうかってるのかどうか電卓叩かないとわからん。
うーんめんどくさい・・・
といいうことは。
そうだ、全部の口座、巡回してデータ取って、最後集計したら便利じゃね?
複数BOT運用している人は少数派だし、そんなに難しい技術じゃないけど。意外とこんなのつくってるより暇、BOT運用者はなくって、ロジックや新しいインジェクター考えるよね。
よし、これを売ろう!
そして出来たのが冒頭で紹介したこのツールです。
はじめての販売でよろこんで長文書きましたが、書いている間に2個めがうれました。やったー、今度の人は使ってくれるかな?
プログラミング初めてここまで来るのに26年。シェアウェア御殿にはまだ先は長いけど、来月ぐらいには、五反田で豪遊できるかな?
さて、最後まで読んでくださりありがとうございます。読み人のこと考えずに、長々書きましたが、面白いのかはよくわかりません。もし、よいとおもっていただけたら、『スキ』ボタンを押してください。
それではまた、なにか作ったらお会いしましょう。