ノキアのフィーチャーフォン1台から始めたプログラミング——MITスタートアップで働くまでの道のり
2012年当時、私は夢とノキアのフィーチャーフォン(J2ME端末)しか持たない、ナイジェリアの村出身の少年にすぎませんでした。しかし今日、私は50以上のアプリの開発を手がけ、MIT発のスタートアップで働く19歳のAndroidデベロッパーになっています。私の名前はElvis Chidera。これが私の物語です。
ウェブサイト作りへの好奇心から始まった旅
すべての始まりは、「どうやってウェブサイトを作るのか」という純粋な好奇心でした。子どもの頃からゲームのダウンロードや「Society Of Robots」を読むのが好きで、オンラインで多くの時間を過ごしていました。当時は10MBのインターネットパケットを100ナイラ(約0.28ドル)で買うために何週間もお金を貯め、それを1か月かけて使うような生活でした。
コードの学習を始めた第一歩は、実にシンプルでした。「ウェブサイトの作り方」をGoogleで検索したのです。検索結果は数百万件。どこから手をつければいいのか分からず、最初に目に入ったリンク——W3CSchools——をクリックしました。
そこには「ウェブサイトを作るにはHTMLとCSSといった言語を学ぶ必要がある」と書かれていました。本当に必要なのか他の資料でも確認した上で、W3CSchoolsのHTMLとCSSのコースを開始しました。
毎日放課後になるとそのサイトへ向かい、ひたすら勉強しました。当初はコード例や解説の意味がほとんど分かりませんでしたが、それでも学び続けました。行き詰まったときはさまざまなチュートリアルを参照し、問題を多角的な視点から捉えられるようにしました。
実は私、幼い頃は学校での読み書きに苦労していて、継続的な練習によって少しずつ上達してきました。だからこそ、「どんなに時間がかかっても練習を続ければ、最終的には必ず理解できる」という考え方が頭の中にありました。プログラミング言語も同じだと信じていたのです。
「ザ・ソーシャル・ネットワーク」に燃えた初めての挫折
数か月の集中的な学習で、HTML、CSS、JavaScriptを使えるようになりました。学習を続ける中である日、友人が映画『ソーシャル・ネットワーク』を見せてくれました。観終わった後、私は「次のビッグヒットを作ってやる」という強いモチベーションに火がつきました。ありがとう、ハリウッド。
数日後、ひらめきが訪れました。「Facebookの改良版を作ろう」というアイデアです。当時のFacebookには、オンライン中の友人を確認する機能がありませんでしたし、そもそも現実世界で知り合った人同士をつなぐための設計でした。
というわけで、これが私の「10億ドルのスタートアップ構想」——Facebookにない機能をすべて備えたソーシャルネットワークを作ることでした。ザッカーバーグ、覚えていろよ——そう思っていたのです。
その後数か月間、思いつく限りの機能を詰め込んだ「より優れた」ソーシャルネットワークの開発に没頭しました。そして、勝てると根拠なく確信していました。
プロジェクトを完成させると、広告予算のない人間がやるべきことをやりました。何日も何日も、ネット中に宣伝をばら撒いたのです。
しかし数日のマーケティングの後、現実は容赦なく私を打ちのめしました。登録ユーザーはわずか200人。しかも、その200人にさえ戻ってくるよう頼み続けなければなりませんでした。
落ち込みました。何か月もの努力が水の泡になったのです。この経験から、私は2つの重要な教訓を痛い思いをして学びました。
- 新しいプラットフォームが直面する「コールドスタート問題(鶏と卵の問題)」を、早い段階で認識しなければならない。
- 私は自分が「人々が必要としていると思うもの」を作っていた。結局のところ、それは単なる機能の寄せ集めにすぎなかった。
プロジェクトに情熱を持つのは悪いことではありませんが、袋小路に入っていることに気づくことも大切です。さらに数か月、ユーザー獲得の可能性を探りましたが、継続率は0%へ向かって下がり続け、ついにこのプロジェクトを諦めました。
それでも、映画『未来は今』でルイスが口にしたモットー——「Keep moving forward(前へ進み続けろ)」——が私を支えてくれました。
人々が本当に必要とするものを作る——グループSMSアプリ「Xmx Me」
次のプロジェクトのインスピレーションを求め、地元コミュニティのニーズについて考え直しました。今回は、人々が本当に必要としていて、お金を払ってもよいと思えるものを作りたい。そう決意したのです。
そこで浮かんだのが、テキストメッセージを安価に、しかも複数人へ一度に送れるようにするというアイデアでした。いわば「SMSで実現するWhatsAppのようなもの」です。さまざまな人と話すうちに、これは次にやるべきことだと確信しました。
プロジェクト名は「Xmx Me」。J2MEアプリとして開発することになり、Javaを学ぶ必要がありました。今振り返ると、これまでで最大の試練だったと思います。いくつかのチュートリアルは完全に理解するまで何度も読み返しました。
Javaのコースをいくつか修了すると、いよいよ開発開始です。1行また1行とひたすらコードを打ち込み、バックエンドはPHPで、フロントエンドはHTMLとCSSで、モバイルアプリはJ2MEで丁寧に構築していきました。アプリは徐々に形になっていきました。
しかし、ここで重要な事実があります。——私はノートパソコンを持っていなかったのです。アプリのすべてのパーツを、J2MEのフィーチャーフォン上で開発していたのです。
えっ、待ってください。本当ですか?
そうです。お読みの通りなのです。
フィーチャーフォンだけで本番アプリを開発する方法
この時点まで、私はノートパソコンでプログラミングをしたことがありませんでした。買える経済力がなかったからです。両親は助けてあげたい気持ちでいっぱいでしたが、学費や生活必需品とノートパソコン、どちらを優先すべきか悩まざるを得ない状況でした。
パソコンを使った経験はほぼ皆無で、唯一の接点はネットカフェだけでした。パソコンの基本的な使い方(左クリック、ドラッグ&ドロップなど)を解説する動画を見てから、ネットカフェに行って実際に練習したことを覚えています。
幸運なことに、親戚からフィーチャーフォン(Nokia 2690)をもらっていました。この一台が私の人生を変えました。Xmx Me、失敗に終わったソーシャルネットワーク、その他多くのプロジェクトは、すべてこの端末で開発したものです。
1台の携帯電話と成功への意志だけを武器に、あの小さなキーボードで何時間もコードを打ち続けました。さらに幸運なことに、J2MEプロジェクトをコンパイルできるアプリを見つけました。そう、J2ME端末上でJ2MEアプリを開発することは実際に可能なのです。
SDKがリソースを大量に消費するため、バッテリーは頻繁に切れました。それでも諦めず、コードをすべて紙に書き出しては、文法エラーがないか見直す作業を繰り返しました。
こんなことを長期間続けてきたので、もうJavaのホワイトボードコーディング試験で落第することはないでしょうね。:)
グループSMSアプリのローンチと、事業運営の洗礼
数か月後、製品の準備が整いました。ネットフォーラムで知り合ったある人物を説得し、ウェブホスティング料金と一定数分の一括SMSサービスの費用を出資してもらうことができました。
アプリのローンチは順調でした——少なくとも初回のプロジェクトよりは。地元メディアにも取り上げられ、ケニアの有力ブログのひとつにさえ紹介されました。ユーザーは自然増加で約5,000人まで成長しました。
ビジネスは軌道に乗り、取引も日に数件発生するようになりました。
しかし、事業運営の経験ゼロだった私は、大きなミスをいくつも犯してしまいました。例えば:
- 課金手段の問題: ナイジェリアでは誰もがデビットカードを持っているわけではなく、簡単に利用者から課金する方法がありませんでした。そこで携帯電話の通話クレジットでの支払いを受け付けましたが、このクレジットを現金化する公式な方法が存在せず、換金業者に法外に低いレートで買い叩かれるしかありませんでした。
- 会計の欠如: 帳簿管理がほとんどできておらず、損失が出ていることに気づきもしませんでした。諸経費を計算に入れておらず、足りない部分だらけでした。
ノートパソコンを買うためにアプリを売却することも考えました。どうすればいいか分からず、ネットで懇願してみました。ええ、そこまで恥知らずで、飢えていたのです。結果は散々で、詐欺師扱いされました(最終的には解決しました)。やはり未熟だった私は、状況への対応もうまくできませんでした。
事業を維持するために何度も借金を重ねた末、私は白旗を上げることにしました。振り返れば、これは悪い判断だったと思います。もう少し学びと経験があれば、状況を改善できたはずです。SMSアプリに将来性を見出せなかったのかもしれません。実際、最近このアプリの復刻版をリリースしましたが、今でも多くのユーザーが使い続けてくれています。
道中で学んだ教訓
近いうちにパソコンを手に入れたければ、自力で稼ぐしかないと悟りました。そこで節約を徹底し、できるだけ質素な生活を送りながら、少しずつお金を貯め始めました。親戚に援助を頼み、個人的な所持品を売ることまでしました。
それでも足りませんでした。目標達成への決意から、残りの金額を稼ぐためにウェブサイト制作のフリーランス案件を引き受けました。
フィーチャーフォンでPC向けのウェブサイトを作るには? 答えは簡単です。毎晩Facebookの友人を邪魔して、彼のパソコンで自分のサイトを確認してもらい、フィードバックをもらえばいいのです。ネットカフェに通い続けるよりずっと安上がりでした。
また、アップロード前にPHPスクリプトの動作確認をするために、Ideoneというサービスを多用しました。
こうして、ついに念願のノートパソコンを手に入れました。あの喜びは今でも覚えています。新しい廉価パソコンの箱を開けたときのプラスチックの匂い。もう携帯電話の制約に縛られることなく、どんなプロジェクトにも取り組めるようになったのです。
J2ME端末は徐々に衰退していったため、やがてAndroidプラットフォームへ移行しました。Javaのスキルはそのまま活かせたので、プラットフォーム固有の知識を学ぶだけで済みました。
フリーランス時代とポートフォリオづくり
2015年、高校卒業後は家族を支えるために働くことを決意し、フリーランスとして活動を始めました。地元のフォーラムやグループで常に情報収集し、Androidアプリ制作の手伝いが必要な人を探しました。
立派なポートフォリオがなかったため、報酬の保証がないまま先にアプリを作って納品することもありました。このやり方で何度も裏切られましたが、おかげで十分な実績を積むことができました。
フリーランス時代に知っておきたかったことが、ひとつあります。
自分を追い込みすぎるな。責任を抱え込みすぎることは、自分の健康にも、家族のためにも、そしてクライアントのためにもならない。
ナイジェリア各地のクライアントと仕事をし、彼らは私の作品を高く評価してくれました。遠隔で協力したクライアントとの縁から、ナイジェリアのラゴスで正社員の仕事を得ることができました。
Dot Learnとの出会い——人生を変えた応募
ある日、ニュースフィードを眺めていると、Dot Learnという会社のAndroidデベロッパー求人を目にしました。調べてみると、MIT発のスタートアップで、私が情熱を持っている教育技術分野、そして私がよく理解している市場で事業を展開していました。彼らのアイデアはユニークでした。1時間の動画をわずか1MBという極めて軽量なデータ量に圧縮することで、オンライン教育へのアクセス問題を解決するというものでした。
まるで信じられない話でしたが、これこそ多くの人々に教育を届ける鍵になると直感しました。
実は私、アフリカの教育改革に強い思いがあります。すでに無料(広告収入モデル)の受験対策アプリ「PrepUp」を開発しており、35,000以上のインストールを獲得し、2016年のWest Africa Mobile Awardsではファイナリストに選ばれていました。だからこそ、Dot Learnの取り組みに参加したいと思ったのです。
開発者の募集要件を読んでみると、チャンスはあると感じました。しかし、インポスター症候群(詐病感)が私を足止めしようとしました。
何日も葛藤しました。応募すべきか、すべきでないか?
そして、あることに気づいたのです。私は失うものが何もない。
最悪のケースは不採用になること。でも死ぬわけじゃない。そう考え、思い切って応募しました。
指を交えて願いながら、以前ダウンロードしておいたMIT OCWの動画を何本も見直しました。コーディング面接の解答解説動画も夜な夜な観ました。これまでは主に実績と職務経験で採用されてきましたが、万が一コーディング面接を課されても慌てないように準備しておきたかったのです。
長い話を要約すると——入念な準備、難問への挑戦、電話面接、いくつかのコーディング課題を経て、私は採用されました。
信じられませんでした。有頂天になりました。
今振り返れば、これは私の人生で最良の決断のひとつでした。
Dot Learnでの仕事を通じて、キャリアは飛躍的に成長し、MITやハーバードなど素晴らしい場所から来たたくさんの仲間に出会うことができました。
TechCrunch Disruptのような大型イベントに出席したり(結局フライトに乗り遅れました)、自分がラップできることを発見したり……これまでのところ、楽しく刺激的な経験の連続です。
最後に
私はまだスタートラインに立ったばかりですが、この物語の目的は、私と同じような境遇にいる誰かにインスピレーションを与えることです。
最新情報についてはTwitterやMediumでフォローできます。LinkedInでのつながりも歓迎します。ありがとうございました。
この物語を楽しんでいただけたら、ボタンを押してシェアしてください。あなたのコメントもお待ちしています。
-
Windows 10 で起動時に「スマホ同期」アプリが自動的に開かないようにする方法
「スマホ同期(Your Phone)」は Windows 10 に標準搭載されたアプリで、Android スマートフォンや iPhone のメッセージ・通知などを PC 上で確認できる便利なツールです。しかし、PC を起動するたびに自動的に立ち上がると、作業の邪魔に感じることもあるかもしれません。 そこで本記事では、「スマホ同期」アプリが起動時に自動的に開かないようにする簡単な方法を、手順に沿ってわかりやすく解説します。 タスクマネージャーでスタートアップを無効化する手順 1. タスクマネージャーを開きます。キーボードショートカット「Ctrl + Shift + Esc」を使うと素早く起動でき
-
Google Pixelスマホの「Hold For Me」機能とは?設定方法と使い方を解説
銀行やカスタマーサポートに電話をかけたら、何時間も保留にされた経験はありませんか?「お客様のお電話は大切にされております」というアナウンスを延々と聞かされるのは、正直かなりのストレスですよね。そんなユーザーの不満を解消するため、GoogleはPixel 3、Pixel 4(5G)、Pixel 5向けに「Hold For Me」機能を搭載しました。なお、現時点ではアメリカ、カナダ、オーストラリアでのみ利用可能です。 Pixel電話アプリの「Hold For Me」とは? GoogleのAI技術「Duplex」を基盤とする「Hold For Me」は、録音された音声メッセージ(「お客様のお電話は大