東大を出てゼロからプログラミングを学び、1年後にWebサービスを作ってみた話

# 自己紹介
こんにちは。
tetsuo akaneyaといいます。

僕は去年、東京大学を卒業しました。
生物の勉強・研究をしていたのですが、自分の中で「違和感」が大きくなって、生物に対する熱意が冷めてしまいました。
どういう違和感かというと、生物の研究はどうしても研究が製品になるまでに時間がかかります。10年以上かかることもよくあり、これは本当に誰かの役に立つのか？ほとんどの人にとっては役に立たないんじゃないのか？という自問です。

スキルなんて全くないものの、卒業後はITで自分のサービスを持ちたいと思うようになりました。

そこで、みんなが社会人として巣立っていく中、僕は卒業翌月の4月から東京を離れて田舎の家に引きこもり、**すがるような気持ち**でLaunch School（ローンチスクール）（https://launchschool.com/ ）というオンラインのプログラミングスクールに通いました。

通うといってもオンラインスクールなので、朝起きてパソコンを付けて黙々と課題をこなして、夜になったら寝る、みたいな生活です。

就職も考えましたが、やめました。
「プログラミングを仕事としてやりたいけど、企業に未経験で入社すると、体系的には学べないのではないか。そうすると一人で仕事をする力は身に付かないのではないか」と勝手に考えたのが理由です。本当だったかは今でも分かりません。

ローンチスクールは世界中にたくさんある歴史の浅いオンラインブートキャンプの1つで、学位などは得られません。
なので当時の僕を一般の人から見たら、単なるニートです（今も見方によっては変わりませんが。。）

ちなみにローンチスクールの前はProgateをやっていました。4年生の秋頃です。
Progateが終わって、ローンチスクールを知ったのが4年生の冬。
その頃は本当に進路に迷っていて、何とか希望を見つけた感じでした。

本格的にローンチスクールを始めたのが卒業翌月の2017年の4月。
そこからは、教材を消化していく日々でした。
プログラミングスクールは、大きく分けてオンラインとオフライン（=現地型）に分けられます。
オフラインは100万円以上するものも多く、オンラインよりも高価です。
しかし、ローンチスクールはオンラインの中でも安い方で、月額199ドルでした。

## ローンチスクールの実際
ローンチスクールでは、基本的にブラウザで示された教材を順番に進めていきます。
また、ローンチスクールでは、次のコースに進むのに筆記またはスカイプ面談によるオンラインテストを受ける必要があり、これがローンチスクールのウリとなっていました。
実際、テストに落ちると次のテストが1週間受けられないので、テストのたびに念入りに準備して臨みました。これのおかげで定着率がとても良くなった気がします。

まとめると、ローンチスクールは英語でがっつりプログラミングを学びたい人にはおすすめです。

コースの内容はRuby, Sinatra, Heroku, HTML&CSS, JavaScript, Express, Rails　などでした。

結局、ローンチスクールは9ヶ月後の2017年12月に終わり、そこから3ヶ月かけて初めてのWebサービスを作りました。

# 1. 作ったサービスとその背景

## 学習支援のための書籍専門Q&Aサービス

「Bookwiz(ブックウィズ)」という、学習支援のための書籍専門Q&Aサービスです。
https://bookwiz.net/

![Screen Shot 2018-04-14 at 19.04.36.png](https://qiita-image-store.s3.amazonaws.com/0/149425/47cb3dac-cc8a-0aac-4d8c-368304404584.png)

先月の末にリリースしました。

サービスの主となるターゲットは、受験や資格、趣味で市販されている「本」を使って勉強する全ての人（特に中学生以上）です。
今のところ集まっている質問は高校以上の内容が多いですが、これに限らず機械学習の本から資格の参考書、問題集までどんな本でも質問できます。


## 本 × Q&Aサービスを選んだ背景
本は出版不況などと言われて活気のある市場ではありませんが、「体系的に知識をまとめたもの」として、2018年の今でも重宝されているし、今後もしばらくそれは続くと思います。

ただ個人的に「本」で勉強する上での一番の課題は、「分からなくなったとき、誰かに聞ける環境がない」ことだと思っていました。

## 自分が本で勉強していて辛かった
僕は、一般に売られているプログラミングや数学、物理などの本は今まで何度も挑戦しては挫折してきました。
それは、「本の分からないところを聞ける環境がなかったから」というのが理由（の大きな一つ）だと思っています。
昔の自分が欲しがるようなサービスとして、書籍専門Q&Aを考えました。

自分が分からないところは他にも必ず分からない人がいるはずです。
本にページ単位で質問＆回答が蓄積すれば、それはその本を後から勉強する人にとって大いに助けになるのではないか、と思いました。

## マネタイズについて
一般にQ&Aサービスというのはマネタイズが難しいと思います。
実際広告くらいしか良い方法は考えられていません笑

とにかく自分が使いたかったし、他の人も使いたがってくれるんじゃないかな、と思って勢いで作りました。

またマネタイズが難しい＝企業は入って来にくい、ということだとも思うので、僕みたいな個人の開発者が時間をかけて運営するのには良いのかな、とも思いました。




# 2. 使用した技術
## バックエンド
シンプルにRailsをHerokuサーバーで使いました。やはりネット上にドキュメントも豊富にあり、使いやすかったと思います。現状、少し動作が重いと感じるのですが、それはおそらくSQLのクエリが非効率に発行されていたりなどHeroku以外の部分だと思うので、Herokuで行けるところまで行きたいと思います。
他は列挙すると、
Rails...5.1
DB...postgresql
書籍のデータ...アマゾンのProduct Advertising API
メール...Mailgun
画像の保存...S3
などを使いました。

また、メールを送ったりとか画像を保存したりとかいった処理はSidekiqにバックグラウンドジョブとしてやってもらっています。
また、質問した際に質問の画像を生成してツイッターでシェア出来るようにしました。画像生成は、Prawnでまずpdfで作成し、それをrmagikでjpgに変換しています。ここは流石に非効率だと思うので、改善しようと思っています。

![DabNXvOW4AA2pnV.jpg](https://qiita-image-store.s3.amazonaws.com/0/149425/40dd0953-4d34-cc72-2b38-23885c27da72.jpeg)
シェア用画像の例

## フロントエンド
ローンチスクールで習った内容でとりあえず動くものを作りたいと思い、jQueryとBootstrapだけで作りました。習ったフロントエンドのフレームワークはBackboneを使うものだったのですが、今はどうもReactが（使ったことはないのですが）使いやすそうに見えました。それならまずは知ってる知識で作って、必要なら後からReactに置き換えてしまおうと思いました。

細かいところでいうと、
mathjax...LaTeX用
cropperjs...画像の編集用
jQuery-File-Upload...画像のアップロード用
などを使いました。

# 3. 作るまで
## アイディア1年半

アイディアは昔からありましたが、技術力がありませんでした。そして暖めること1年半、ようやく開発を始めることが出来ました。
学習系Q&Aということで、特にすぐに収入などに結びつく訳ではないのは分かっていました。けど1年半もあったら、もう少し良いアイディア思いつくんじゃない？　と思ってました。自分でもビックリですが、他のアイディアが思いつきませんでした。
それに、他に同じようなサイトを作っていた人もいなかったので、作りました。

## 実装 2 + 1 ヶ月
実装 2 + 1 ヶ月というのは、苦い思い出です。
まず2ヶ月たったところで、一通り動くものが出来たので、ツイッターで告知し、公開しました。
けれども誰も人が来ません。。実はそのころは質問するのには有料、という風にしていました。
「このアイディア誰も思い付いていないみたいだし、もしかして有料でもイケるかも！？」などと思ってはいけなかったのです。アイディアに価値はない、という厳しい現実にさらされました。

特にサイトを広める手法というのも知らなかった（今でもわかりませんが）ので、結局一度クローズしました。
1ヶ月かけて無料でも使えるようにして、少し見栄えも直して改めて公開しました。
すると、少しずつユーザーが増えてきました。ですが、まだまだユーザーは多くありません。もっとPRを頑張らねば、、という感じです。

# 終わりに
本の質問は、たとえ回答されなくてもその本を後から勉強する人が、「やっぱり、ここってわかりにくいよね」と知って安心できるというメリットがあると思います。

是非、本で勉強される際は利用してみてはいかがでしょうか！？

ここまでお読みいただきありがとうございました。
サイトについて感想、ご意見、アドバイス等なんでも構いませんので、いただけるととても嬉しいです。

アドレス
support@bookwiz.net
サイト
https://bookwiz.net/