えぬ億までの道

アラサープログラマが一発当ててn億を得るまでの記録

生産性の高いプログラマーの特徴

生産性の高いプログラマーの特徴

問題を言語化する

まず問題を言語化する。

思考は幅優先探索

先に大きな方針を決める。ダメそうなら深みにハマる前に他の代替案を考える。例えば、ライブラリの挙動が想定通りでない時、どうにかして動かそうとするよりそもそもそのライブラリを捨てて別のライブラリを使うことを検討するなど。

あまりにハマるようであれば、そもそもその機能は捨てる、という判断もありうる。

公式ドキュメント,GithubリポジトリのIssueを読む

公式ドキュメントを見るのがまず最初にやるべきこと。その際、バージョンをしっかり確認すること。公式ドキュメントが充実しているかどうかはライブラリ選定の判断基準の一つになる。

英語で検索する

日本語で検索し、訳のわからないブログの記事を理解もせずコピペするプログラマーがいるが、最悪である。量、それに伴う質の観点から、英語で検索する以外ない。

仮説と事実分ける

何を想定していて何が事実なのかはっきりさせておく。そもそもの前提から間違えている事がある。

検証はメモを取りながら一個の事だけをやる

原因の究明や挙動の確認に検証を行うことが多いと思うが、一気に複数のことはやらない。仮説検証のパラメータは1個にする。「で、なんだっけ?」とならないようにメモを取る。

掛け算で効いてくるプロセスを最速の環境にしておく

hot loading、AndroidならInstant Runなどを駆使して毎度のビルド等は高速化しておく。キーボードショートカット、ツール、IDEリファクタリング機能など、掛け算で効いてくるところには最初に学習/構築コストを払って整備しておく。

コードを読む時はhow/what/whyの観点に注意する

問題の解決には、どう実装されているか(how)より何をしているのか(what)のみで十分なことも多い。これは関数の実装ではなく関数の呼ばれ方でわかる。全体像を把握し、何をしているのかを把握し、最後に必要ならどう実装されてるかを読み解く。なぜこのような実装になっているのか(why)はコードではなくコメントやドキュメントを参照する。

一旦放置する

30分以上ハマっている場合、一旦放置する。戻ってくるor次の日にすぐに解決することが非常に多い。ハマっている状態だとなかなか出来ない行動だが、非常に有用なテクニック。

効率よく実装を行う方法

本業がある中、限られた時間でえぬ億を狙うには圧倒的に時間対効率を上げる必要がある。

効率をあげるには2つの方法しか存在しない

  1. やることを減らす
  2. やるスピードを上げる

常にこの2つを意識することが非常に重要。

各々気をつけるべきポイントは 

1.やることを減らす

そもそも外れそうなサービス/アプリは作らない。事前にマネタイズ出来るか検証しておく必要がある。その検証もとことん作業を削ぎ落とし最低限にする。LPを作り、広告を回しCPAを計測する。ダメなものはさっさと諦める。

機能を削ぎ落とす、実装せずに楽できる方法を考える(ライブラリ、そもそも作らない、サービスイン時は運用でカバー等)

検証の方法は『リーンスタートアップ』、CPAなどの考え方は『グロースハックの教本』が参考になる。

リーン・スタートアップ

リーン・スタートアップ

 

2.やるスピードを上げる

何の技術要素(プラットフォーム、フレームワーク、ライブラリ等)を選ぶかは生産性に大きく関わるので常に気をつける。

基本的には既に馴染んでいる、多く使われている枯れた技術で、一貫したアーキテクチャ思想で、シンプルに実装するのが良い。

エンジニアならば、触ってみたい新しい技術やプログラミングパラダイムがあるとは思うが、往々にして想定以上の学習コストを払うことになる。一方で今後スタンダードになると思われる新しい技術要素ならば、モチベーションが維持できる、今後のプロダクト開発に役立つ等のメリットが考えられる為トータルでプラスになり、選択肢になりうる。

技術要素の選択以外に、デバッグを高速化するテクニックがあるが、それは別途まとめる。

えぬ億のロールモデル達

一言でプログラマー、エンジニアと言っても色々な生き方をしている人がいる。

  • OSS活動に精を出す人
  • 大企業の出世コースを目指す人
  • 特定の分野(データベース、機械学習等)に特化したスキルを磨く人
  • 仕事でのみコードを書き、出来るだけ定時で帰宅しプライベートを充実させる人

各々それぞれの価値観に沿った生き方をしており、どれが良いという話ではないのだが、確実に言えることは予め方向性を定めておくことが非常に重要ということ。

特化したスキルを磨きたい人と出世コースを目指す人では、やるべきことは往々にして大きく異なる。

私は上記のどれにも該当せず、

  • とにもかくにもえぬ億を手にして人間になる

という明確な方向性で生きることに決めている。

プログラマー界隈ではOSSへの貢献至上主義な空気があるが、えぬ億コースの私にとってはOSSへの貢献よりもやるべきことはとにかくプロダクトを出し続けることであり、「OSS、やった方がいいのかな・・」と悩むのは時間の無駄である。

 

自分の方向性を見直す、モチベーションを保つ為に、ロールモデルは重要である。

えぬ億コースのロールモデルとなるプログラマー達がいる。

 

Instapaper、Tumblr創業者 Marco Arment

こちらのブログ記事が詳しい。

ウェブ業界で起業したいならMarcoを目指そう - quipped

ぼくがMarcoをお手本とするべきだというには、3つの理由がある。

  1. Marcoがウェブプロダクト制作に関して平均的に能力があること
  2. Marcoが(いい意味で)エリートではないこと
  3. Marcoが冷静で、現実的であること

とある。

特に1と3が重要で、とりあえず形にして出す、冷静にポジショニングを考える、この重要性がわかる。

 

日本だと、せせり氏

blog.sesere.net

ロールモデルになる。

Twitterもやっており

twitter.com

こちらを見ると、サービスを作る事自体が好きなタイプに見える。  

今までプライベートで作ってきたもの

今までプライベートで一発当てんとし、作ってきた物たちとその反省点などまとめ

為替による価格差収集&ランキングサイト

円高だった頃に公開したもので、アニメDVD等日本と海外の価格差が大きいものを収集するサイト。収益はアフィリエイト報酬であった。

当時せどりブームもあり、今思っても目の付け所はそんなに悪くはなかったのだが、技術力不足でサイト自体のクオリティが低く、アクセス数も伸びなかった為、すぐに閉鎖。

利益

 マイナス(サーバー代)

反省点など

 一言で言うと作りきって力尽きた。もともと、一人で何か作って世の中に公開するという経験がないのに劣等感があったことがきっかけで作り始めたため、公開までが目的になり、公開して満足してしまった。

エロ動画ブックマークサイト

Railsで実装。初めて基礎的なWebサービス(DB設計、AWSを使ったサーバー構築からフロントまで)を作りきったのがこれ。ちなみに国内だと法的にアウトっぽいのでビビりながら海外VPSホスティング。収益は広告。アクセス伸びず半年ほどで閉鎖。

利益

 マイナス(サーバー代)

反省点など

 お粗末な話だが、改善や集客という観点がごっそり抜けていた。しかしこれで、何かしら一人で作って世に出す、というのは割と出来るもんだなと自信が付いた。

動画アプリ

iOS(swift)で実装した、Youtube依存型動画アプリ。収益は広告。

中身はほぼWebViewで、WebViewはSPAでAngular。バックエンド&管理画面はRailsでHerokuにてホスティング

動画の収集を手動にしていた為、運用の手間がかかり配信はしているものの実質死にアプリに。

利益

 数百円?

反省点など

 勉強会での発表を目的に作成。今振り返るとこの頃までは「勉強のため」という自己完結型のものが多い。自分の出したアプリ/サービスで利益を得るのをビビットに想像出来てなかった。完全に若さに甘えていた。

映画関連アプリ

iOS(Swift)で実装。

収益は広告。

利益

 ほぼゼロ

反省点

 仕事が暇な時期だったため、一回単純に自分が欲しいアプリを作ってみようと思い作成。この辺りから無闇に勉強とて色んなものをいじってもしょうがないとようやく気づく。ソリッドに利益を求める必要性を感じるように。

資産管理シミュレーションアプリ

React Nativeで作成。自分が欲しい、かつマネタイズが見込めるアイデアを思い付き作成。特段UXをカリカリにチューニングする必要性が無いこと、iOS/Android両方書けるが実装コストは極力減らしたい、という理由からReact Nativeを採用。

収益は広告。目の付け所、タイミングが非常に良くピークは想定以上の収益を生んだ。収益で集客のための広告配信、クラウドソーシングによるクリエイティブ作成など、改善にもちょいちょい費用をかけてみるように。実装以外にもプロダクト改善を回せる余裕が出てきた。

利益

 最大瞬間風速月28万円

反省点

 ピーク時に売却すべきだった(今は月数千円から一万円くらいまでに鎮火)。

ここで一回React触っておいたのは非常にいいタイミングだった。現在開発中のWebサービスの開発で大いに役に立っている。

想定以上の利益を得たことは自信と次のモチベーションに繋がった。

 

このブログについて/自己紹介

このブログで書くこと

アラサープログラマーが一発当ててn(n>3)億円を手にするまでの記録。 

考えたことなどメモしていきます。

プログラマーですが、技術的な話はおそらく書きません。

 

自己紹介

アラサープログラマー

使用言語はSwift,Java,Node.js,Python,C等

iOS,Andorid,React,React Native,組み込み,AWSなど経験あり。

仕事ではフルスクラッチで一人でiOS(Swift)&Android(Java)アプリの開発、AWSを使用したバックエンド実装などをしてきました。

プライベートでは、スマホアプリをメインに一発当てる活動をしてきました。

今のところ最大瞬間風速は月28万(後に0円になりましたが・・・)