非エンジニアがウェブサービスをつくるならプログラミングスクールに通うよりメンターを雇ったほうがいい

先日、個人制作のウェブサービス「イチオシ交換ガチャ」をリリースしました。

その際、勉強のためにプログラミングスクールに一瞬入学し、落胆して自主退学し、知人のソフトウェアエンジニア(以下エンジニア)にメンターをしてもらって無事リリースできた経験から得た知見を記録しておきます。

誰に向けた記事か

・非エンジニア・個人でウェブサービスを作りたいと思っている人・どのように勉強すればウェブサービスを作れるか悩んでいる人

に向けて書いています。

要するに過去の自分が読みたかったものを、同じ境遇にいるかもしれない人に向けて書いているということです。

なぜプログラミングスクールを勧めないか

プログラミングスクール、というと主語が大きすぎるかもしれませんが、なぜ私がこの結論に至ったかをお伝えするのがいいかと思うのでそうします。

まず私は非エンジニアで、プログラミングについてよくわかりませんでした。ただ、なにかしらプログラミングをしなくてはいけないことは自明なので、勉強する方法についていくつか調べました。以下がその方法の候補たちです。

・Progate(オンラインプログラミング学習サービス)をつかう・本を読む・プログラミングスクールに通う・知り合いのエンジニアに教えてもらう

そして、ぼくはまずProgateからはじめることにしました。オンラインで好きな時間に学習できるし、ちょっと無料部分をさわってみたところ「講座」→「手を動かして学んだことの復習」のサイクルがわかりやすくてよかったからです。有料と言っても1ヶ月で980円とバカ安ですしね。

実際、この選択は正解でした。

基礎的なものではあるのでしょうが、「本格的なWebサービスを作成しよう Ruby on Railsコース」を履修するとTwitterのようなWebサービスをつくる方法がなんとなーく習得できました。(期間的には2週間くらいかけたかと思いますが、個人差あると思うのであまり気にしないでください。一気にやったほうがいいとは思います)

ただ、ここで大きな問題にぶつかります。

基礎はわかっても、自分のつくりたいウェブサービスをつくるにはどうプログラミングしたらいいかわからないという問題です。

たぶん、これはあるある話で、教科書に載ってたりサンプルコードがウェブで見つかったりしてコピペできるところはまだしも、自分の手を動かさないといけないターンになると途端に手が止まるんですね。

そして、止まった手をどう動かしたらいいのか、どう検索したら自分のわからないことを解決できるのか、自分のわかっていないことはなんなのかすらわからないんです。

そしてこの状況を打破するために考えた方法が、「プログラミングスクールに通う」か「知り合いのエンジニアに教えてもらう」のどちらかでした。

結論として、ぼくはプログラミングスクールに通うことを選択しました。

知り合いのエンジニアに教えてもらう方法は、まわりにはいい人が多いので、たぶん助けてはくれると思うのですが、いかんせん聞きたいことが多すぎるし、そうすると相手にも負担をかけすぎてしまうと思ったからです。

ただ、プログラミングスクールもピンキリで、安くても1ヶ月15万円とかするのでかなり迷いましたけどね……。

いろいろプログラミングスクールを調べて、ぼくはTECH::CAMPに入会しました。理由としては、サイトのデザインがしっかりしていて好感を持ったのと、無制限で質問し放題だったこと、オリジナルサービスの開発支援をサポートしていること、なにより満足できなかった場合にも返金保証がされていたのが大きかったです。

TECH::CAMPに入会してすぐに、ぼくは溜まっていた質問を投げかけました。そして、丁寧に対応していただいて、自分ひとりではどうすればいいかわからかった問題もサポートしていただいて解決できました。

ただ、何度目かの質問のとき、「オリジナルサービスに関する問題の場合、問題解決は基本的に自力で行ってほしい、質問対応は教材に関するものを想定している」と言われてしまいました。

こう書くと「どうせお前が低レベルなことを調べもせずになんでも質問したのが悪いんやろ」と思われる方もいるかもしれませんが、自分としてはGoogle検索を駆使したり、そうして見つけた方法を使ってもうまく動かなかったときだけ質問したつもりでした。

また、教材というのも、正直Progateの0.1歩先くらいのレベル感で、先にProgateを終わらせてきている身からするとそこに関してはあまり聞くことがないなあという感じでもありました。(実際、Progateを終わらせたレベルから通い始める人はめったにいないと言われました)

そんなわけで、入会して1週間位たった頃、どうやら求めていたものとは違ったな、と思いTECH::CAMPを退会して返金を申し込みました。(別にTECH::CAMPを非難したいわけではなく、期待値が大きすぎたのだと思います)

でも自力じゃ無理なのでメンターを雇うことにした

とはいえ、ウェブサービスはつくりたいし、でも自力独学じゃキツそうだし、と考えて思いついたのが「メンターをお金を払って雇う」ことでした。

教えを請うのに対価を払うのは当然ではありますし、きちんとお金を払えば付き合ってくれるエンジニアもいるのではないかなと思ったからです。

調べてみたところ、世の中にはMENTAというメンターを雇えるサービスもあり、エンジニアの方もいらっしゃって予算感的にも問題なかったのですが、とはいえまずは知り合いのほうが安心なので身内をあたってみることにしました。

そして、頼むなら彼だな、と第一候補にあがった後輩エンジニアのMくんに相談したところ、快諾してくれました。

MくんはRuby on Railsもわかるし、HTML/CSS(デザイン)もわかるし、厳格すぎない(下手なコードや書き方も状況に応じて許容してくれる)し、物腰も柔らかいしでまさにうってつけの人材だったのです。(デザインもわかる人のほうがひとりに聞くだけで済んで話が早いだろうという打算がありました)

Mくんとは基本的にはSlack上で、問題に詰まったときや方針に迷ったときに助けを請い、問題の種類に応じて「このキーワードでググるとよいですよ」「このサイトが参考になると思います」「こんな風に書くといい感じです」といった風にコミュニケーションしてもらっていきました。

開発の後半は、デザインの調整とかで対面じゃないとうまく説明しにくいところなどがあったので、数回ペアプログラミング(隣りに座って教えてもらう)したりしました。

そして、開発をはじめてからトータル1ヶ月半くらいで無事「イチオシ交換ガチャ」をリリースすることができました!

リリースして3日で450投稿くらいしてもらえて嬉しかったですね……。(自慢)

おまけ

言いたいことは上記のように「非エンジニアがウェブサービスをつくるならプログラミングスクールに通うよりProgateをやってメンターを雇ったほうがいい」ということに尽きるのですが、その他にも非エンジニアの人にとってはウェブサービスをつくりたいときにわからないことが多いと思うので、得た知見はQ&A形式で共有しておきたいと思います。

Q.プログラミング言語はどれを選んだらいいの?
A.たぶんどれでもいいのですが、ぼくはまわりに使っている人が多くてネット上に情報も多いRuby on Railsにしました。間違ってなかったと思います。
Q. 最初からメンターを雇ったほうがいい?
A. 最初はProgateをやったほうがいいと思います。お互いに無駄に消耗してしまいますので。なんとなくプログラミングのことや用語がわかってきてからのほうがいいと思います。
Q. ウェブサービスの仕様をどうしたらいいか迷う
A. プログラミング上の仕様についてはメンターも相談に乗ってくれると思いますが、「なにをつくりたいか」はあなたにしかわかりません。ただ、あえて言うなら「夢を膨らませすぎない」ほうがいいと思います。できるかぎり機能はシンプルに、どうすればつくれるかイメージできる手頃なサービスからつくりはじめるのがいいんじゃないかと思います。
Q. どうすればウェブサービスで一発当てられますか
A. わかりません。ただ、「自分が作りたいもの」よりも「自分が一ユーザーとしてほしいもの」をつくったほうがいい気がします。

こんなところですかね。

ウェブサービスは、つくるのは大変でしたが、まったく不可能なことではないですし、なによりひとりでも使ってくれる人と出会えたり、いいサービスですねと言ってもらえたりして、挑戦してよかったなと思いました。

今度もまた、新しいサービスをつくるべく仕込み中です。

あなたもぜひ、挑戦してみてください。

もしなにか迷ったり相談したいことがあれば、ぼくでよければTwitterでご連絡ください。孤独が一番の敵だと思うので、できるかぎり力になりたいと思います。

それでは!

娯楽のために使います