railsで0からの個人開発!マッチング+物件シェアサービス

こんちには。マルットウェブスタジオの渡部(@mako_maco2)です。

現在はウェブ制作全般を業務としているのですが、以前から「プログラミングを習得して、自分のオリジナルサービスを開発してみたい!」という気持ちが強くありました。

過去に独学を試みて挫折し、今回は「今できなきゃ・本気にならなきゃ一生できない!」という固い決意のもと、 「本」でもなく、「オンラインサービス」でもなくプログラムスクールの門を叩くに至りました!

今回の記事では、独学で挫折した経験~スクール選び~開発~公開までの全体をまとめた内容となっております!

プログラミングの独学は何故挫折するのか?

所感にはなるのですが、①~④が主な要因としてあると思います。

  1. 学習を継続出来るだけのモチベーションが維持できない(具体的な目標などがあると良い)
  2. 期間の制限も特に決めない(長期でダラダラやっても身につかない)
  3. 明確な目標も設定しないまま進める(モチベーションの維持にも直結する)
  4. エラーに遭遇した時に解決する力がない

自分は見事に全てに該当してしまっていました;
休日に少し本を読む程度で、「よっし、ちょっと分かってきた気がする」と完全に自己満足な充実感に満たされる自分; 当時の自分に言ってやりたい、いやいや。。そんな程度で分かる訳ないだろう(;´・ω・)気がするだけの勘違いだよ坊主と。

何かの言語の経験がある方は別としても、がっつりとプログラミングの経験もない素人がそれでは絶対に習得なんか夢のまた夢ですよね。。

プログラミングを学びたいと思う方は恐らく「本」や「オンラインサービス(ドットインストールやプロゲートなど)」を使って独学で初めてみる方が多いのではないでしょうか?自分も初めはその2つでした。しかし見事に数回挫折(笑)

「本」はそもそもどれを購入していいのかも迷うし、本によっては説明が省かれていたり、本の通りにやっても動かない事も結構ある。

「オンラインサービス(プロゲートや、ドットインストールなど)」は、イラストで図解されたり、動画に沿って手を動かすのでキット(制作物が決まっている説明書)の様な感じで確かに初めやすいです。
しかし、決められた流れに沿って進めるだけなので、不意のエラーに対応する力が身につかない。
決められた流れに沿って進めるので起こるエラーもほぼ決まっている。
参考と同じ環境にしていても何かしらが影響してうまくいかない事という事は多いです、そうなった時に初学者では対応が難しく、足が遠のく要因にも。。

ネットで「プログラミング 独学 挫折」などで検索してもよく出てくるのですが、独学での挫折率は9割越えてるらしいですね。多分間違いないです;

独学で見事に挫折した経験があるので、今回は何としても1つ言語を習得(オリジナルアプリが作成でき、エラーが出ても自分で調べて対処できるレベル)したいと固く心に決めていました・・!!
独学は自分には無理!と思っていたので、そこで初めてプログラミングスクールという選択肢が出てきました。

何故数あるプログラミングスクールの中で侍エンジニアを選んだのか?

今ってプログラミングスクールも凄い数があるんですね。調べはじめて分かりました;

その数あるプログラミングスクールの中でどうして「侍エンジニア」を選んだのか?

1番の決め手になったのは「カリキュラムを個人に合わせて完全オーダーメイド可能」という点です。実際これが侍の1番の売りにもなっていると思います。これが他のスクールにはない特徴です!

侍エンジニアを始め、様々なプログラミングスクールを調べて(1週間以上は時間かけて調べてました。。)、候補に挙がってきたスクールを5~6社程、体験入学までしました。
やっぱり実際話してみないと分からない事はかなり多いと思ったので、体験入学して「え?そうなの??」と気付く事も結構ありました;

体験入学といっても基本的にどのスクールもSkyp等のビデオ通話を利用して1h程度話を聞く流れになると思います。
なので一切無駄にしないために、事前にサイトや、ネットでの評判は調べて尽くして「聞きたい事リスト」を用意しておくと当日スムーズに進むのでオススメです。
数があまりにも多くなった場合には、項目に優先順位をつけて優先度の高い質問・聞かないと困る質問を先に確実に聞いてしまうと良いです◎

体験入学で話を聞いて意外だったのは「カリキュラムは元々決まっていて、そのカリキュラム内の事・関する事なら教えられるけどそれ以外の事にはこらえられない」というスクールが多かった事でした。
1~10は教えられるけど11~はダメ的な(;´・ω・)うーん

もちろん自分が何をやりたいかにもよるのですが、自分はオリジナルサービスの開発まで考えていたので、初めからカリキュラムが固まっているスクールはその時点で候補から外しました。
だって「決まった内容のカリキュラムをなぞるだけでは決まったエラーにしか遭遇しないのでは?」と思ったからです。それならオンラインサービスを使うのとそれほど大差ないのでは?と
また決められた制作物を作るだけでは興味がそれほど湧きませんでした。。

確かに初学者にとっては、キットの様な作るものがあらかじめ決められている、レールが敷かれていれば、入りやすいし分かりやすいとも思うのですが、、(今回の自分には合わなんだ!)

  • プログラミング言語+フレームワークの習得
  • オリジナルアプリの開発+公開
  • エラーに遭遇しても、自分で調べて解決できるスキル

今回自分が決めていた上記の目標を達成できそうな確立が1番高いのが侍エンジニアでした。元々第一候補で考えていたのですが、結局そこは変わらず。
ただ唯一のネックがプログラミングスクールの中でも結構高めの金額設定なので、そこだけが足を鈍らせていました(笑)しかし、金額がネックで他のスクールに妥協して、結局満足のいかない結果になるのが嫌でした。「やらない後悔よりやって後悔!」

侍エンジニアは自分好みのオリジナルカリキュラムが組めて自由度が非常に高いので、自分の目標が明確になっていたり、自分主体で積極的に動ける方には最適だと思います。その反面、目標が定まっていなかったり、自分主体で動けないと侍エンジニアのメリットを最大限生かせないと感じました。使い倒してやるぜ!ぐらいの勢いが良いと思います(笑)

大事なのは「自分は何をしたいのか?」「どんな目標があるのか?」をしっかり考えて、それに合った・達成できるスクールに行くのが1番良いんだと思います。
どのスクールには長所・短所・学べる言語・スキル等様々な違いがあるので、スクール選び凄く重要です!

学習・開発期間は?

自分の場合は6ヶ月半年間のカリキュラムでした。
下記ざっくりですが流れになります。

  • 1ヶ月‥PHP学習+自作アプリケーション作成
  • 1ヶ月‥Ruby+Rails学習
  • 3ヶ月‥Ruby+Railsでサービス開発
  • 1ヶ月‥公開に向けての設定・最終確認・調整

相応の時間を確保できるかどうかも重要だったので、仕事時以外は強く意識して時間を確保する様にしました。
睡眠時間を削ったり、週に2日取っていた休みを1日にしたり休まなかったり、自分の時間はほぼつぎ込んだので多い時は月に300h程プログラミングの為に費やせました。

「もうこれ以降の人生でこんなにつぎ込める事はないぞ」「ここで出来ないと一生できない」ぐらいに考えていたので、何とか半年間走りきれたかなと思います(笑)それに加えて安くない受講料払ってるので、正直一日も無駄にしたくなかったです。

何故Ruby+Railsを選んだのか?

当初はそもそも何の言語を習得するべきなのかという所から調べ始めました。
一口にプログラミング言語と言っても、多種多様な言語があります。

  • Python ‥ 「人工知能・AI・機械学習」
  • java ‥ 「Androidアプリ」
  • php ‥ 「ECやwordpress」
  • Swift ‥ 「iOSアプリ」

etc…

それぞれに「得意な領域」や「需要、求人数」「習得難易度」など様々な違いがあるので、まず自分の求める項目を箇条書きにしてみました。

  • 習得難易度がそれほど高くない
  • とっつきやすそう(元々日本人の方の開発した言語なので、困った時は日本語での情報収集がしやすい)
  • 需要・求人数が多い。
  • 自分のオリジナルサービス・アプリケーションの開発が可能。
  • フリーランス向き(RailsはWebアプリケーション向きで、逆に複数での開発や大規模な開発には向いていません)
  • PHPと似ている(元々PHPは少し分かっていたので)

etc…

上記の条件に1番近いのがRuby+Railsでした。

個人でオリジナルサービス開発する事でどんなメリットがあるか?

  • サービスの全体構成・DB構造を考える~サービス公開・運用・マネタイズまでトータルで経験出来るのでサービス開発の全体の流れを把握する事が出来る。
  • サービスを開発して公開するという明確な目標があるので、挫折しにくい。
  • 転職する際には充実したポートフォリオとして、フリーランスとしても強力な営業ツールになる。
  • 実際に自分1人で開発を行えるスキルが身につく。
  • エラーに対応できるスキルが身につく(重要)
  • 1つの言語を習得する事で、他の言語にも共通する部分が理解できる・入りやすい(方言と同じイメージで、根っこは同じ日本語だが、表現が少し変わってるという事)
  • 自社サービスとして上手く運用が回り始めれば、不労所得になる。
  • プログラマーってかっこいい気がする(大事)
  • これからエンジニア不足が更に加速する中、需要が高まる。
  • 今のご時世の中で間違いなく1番費用対効果の高いスキル。

etc…

プログラミングを学ぶメリットは数えきれないほどあると思います!

デメリットとしては、

  • 覚える事がやはりかなり多いので、ある程度覚悟が必要。
  • 相応の時間を確保しなければいけない。
  • そこそこお金がかかる(プログラミングスクール前提)

ぐらいでしょうか。

Shavillaはどんなサービスなのか?

「借りたいユーザーさん」と「貸したいオーナーさん」をマッチングして、全国の眠ってしまっている・手放そうと考えている物件・別荘を個人間取引(CtoC)で簡単にシェアできるCtoCサービスです!

何故Shavillaを作ったのか?

初めての開発とはいえ、せっかく作るなら実用性のあるものが良いと思い、「当初は※とかいなか × 別荘」で考えていたのですが、開発していく途中で「ピンポイント過ぎて利用がなくなるかも?」と感じ、現在の全国を対象としたものに変更しました。(※都会×田舎、都会から行きやすい田舎の意)

今思うと、CtoCサービス × 個人で初めて開発するには中々難しい題材だったなと感じます;
当初は「お、これいいじゃん♪」と勢いで開発に着手した部分もありまして(笑)
いざどんなサービスを開発しようか考え始めると、初学者という事もありまずは色々なサイトを見て、今はどんなサービスをあるのか検索しまくるのですが、これをしはじめると「あれも面白い」「こーゆーのも良いな」と際限がなくなってしまい工数を凄くとられてしまうと感じたので、自分の関心のあるものを思いついたらある程度の勢いも必要でした(笑)

結果敵に、想定していたものより凄くボリュームが膨れ上がり、様々なエラーに遭遇しましたが、今思えば逆に少し高めのハードルにチャレンジ出来て良かったと思います。ちなみにサイト構成・DB設計・デザイン・コーディング・プログラミング・動画作成・ナレーションと全て1人で作業しました。

Shavillaをどんな人に使ってほしいか?

貸したいオーナーさん

※対象となるのは完全に「個人で所有されている物件」のみとなります。賃貸などは対象外となりますのであらかじめご了承下さい。
(賃貸・分譲などを含めてしまうと契約時のシステムの敷居が高く、法が複雑に絡み対応できないため)

  • 物件・別荘は持っているけど普段は全く使っていない方
  • 普段は使っていないので手放そうか考えている方
  • 普段使っていないのに固定資産税だけかかっている方
借りたいユーザーさん
  • 買うのは難しい。でも気軽に別荘体験してみたい方
  • 日常の喧騒から離れて、田舎ライフを満喫したい方
  • いつもとは違った風景で気分転換したい方


1つでも該当する方に是非試して使っていただければと思います!
まずは掲載物件が登録されなければ始まらないので、貸したいと思っているオーナーさんお待ちしております!

Shavillaは主にどんな機能があるか?

新規登録+ログイン+プロフィール編集

‥ユーザーネーム+メールアドレス+パスワードなどを入力する事で新規会員登録を行います。
次回以降はその情報でログイン可能になり、プロフィール編集画面ではプロフィール画像のアップロードや、パスワードの変更も可能です。

掲載物件の周辺地図を表示

‥物件を掲載するために貸したいオーナーさんが掲載希望フォームから物件掲載に必要な項目を入力します。
その項目の中に物件の住所があり、入力された住所を緯度+経度として登録、google Mapで周辺地図として表示しています。

掲載物件の詳細ページを自動生成

‥物件を掲載するために貸したいオーナーさんが掲載希望フォームから物件掲載に必要な項目を入力します。
その入力された各情報を元に、入力確定と同時に「物件一覧」ページに掲載+「物件詳細」ページを自動生成します。

物件の検索機能

‥登録された物件は全て「物件一覧」ページに表示されます。
このページ内に物件の検索が出来る検索窓がありますので、気になるキーワードでお好みの物件を調べる事が可能です。

メッセージボード

‥Shavilla内でのみ利用できるメッセージボード機能です。
「物件詳細」ページの下部にオーナーさんに連絡するというボタンがあり、ここから気になる物件のオーナーさんにメッセージを送る事が出来ます。メッセージの送受信は「メッセージボード」ページで確認する事が出来ます。

メッセージボードページでは「差出人」「宛先」「件名」「日時」の項目、削除ボタンがあります。

メールで通知する自動通知機能

‥メッセージボードに新着メッセージが届いた時や、決済が行われた時に登録されたメールアドレスにメールをお送りする通知機能があります。

レビュー投稿機能

‥「物件詳細」ページにはレビュー投稿機能がついています。
サービスのご利用後など、利用した物件に対してレビュー投稿をしていただけますと、他ユーザーさんの参考にもなるので、是非お気軽にご利用ください!
またレビューは自分の投稿したもののみ編集・削除が可能です。他の方が投稿したレビューは閲覧のみ可能となっています。

クレジットカードの登録+決済

‥「物件詳細」ページのサイドメニューに「この物件を借りる」というリンクがあります(ログイン時のみ表示されます。)クリックすると何日間のご利用なのか?「ご契約日数を入力する」ページへと移動します。入力後、更にお支払い内容の確認をクリックすると、「決済前の最終確認」ページが表示されますのでご請求金額をご確認下さい。このご請求金額は「1日あたりのご利用料金」×「ご契約日数」で計算されています

確認後、問題がなければ「¥〇〇を支払う」ボタンから決済手続きを行う事が出来ます。

ご利用ガイド

サービス内の主な機能の使い方動画になります。

原稿を書いてそのまますぐ録音した事や、iphoneのマイク一発撮りで吹いていたりするのですが、ご了承下さい(笑)
そこに時間が割けずに(汗)本来であれば練習後、スタジオなど環境の整った場所で収録したかったのですがダメでした。。

※テスト運用中の為、本来の動き(動画)とは異なる部分もございます、ご了承下さい。

会員登録
借りたいユーザーさん向け① ~物件閲覧~オーナーへのお問い合わせまでの流れ~
借りたいユーザーさん向け② ~クレジットカードの登録・決済の流れ~
貸したいオーナーさん向け ~掲載希望フォームの入力~
メッセージボードの使い方

使用言語・使用ツール・開発環境

使用言語
  • HTML5
  • CSS3
  • Javascript
  • jQuery
  • Ruby
  • Ruby on Rails(Rails)
使用ツール
  • Adobe Photoshop
  • Adobe Dream Weaver
  • Adobe Premiere Pro
  • コマンドプロンプト
  • Sublime
  • HeidiSQL(当初はワークベンチを使っていましたが、挙動が不安定な事が多くやめました。この手のものは正直操作感はほとんど似ているので困りません)
  • Apowersoft(動画キャプチャ)
  • iphone(ナレーションは1発撮り!ポップガードもないから吹きまくり;)
開発環境
  • AWS cloud9
  • Heroku
  • Github

 

と今回は全体をまとめたような記事になりましたが、これから「それぞれの機能はどんな風に実装したか?」「どんな点でつまづいたのか?」等、自分のノートに書き留めたものを少しづつアウトプットしていければと思っています。ノウハウをまとめておきたい時って、アナログですが紙に自分で筆記していく行為が1番理解に繋がるみたいですね!自分は学習を始め、開発~公開までで計6冊程溜まりました。

インプットだけでは、何となく出来る気がする段階で終わってしまう事も多いと思うので、しっかりと誰かに伝える事を前提としたアウトプットまで意識すれば、「下手なものは書けない」「自分で理解しきれていないと感じる疑問・不明点は調べる」など自然と意識も高まり、より自身の理解にも繋がると思います。

現在はテスト運用という形での公開ですが、利用があり需要が見込める場合には本運用に切り替える予定はあるので、まずはお気軽にご利用いただければ幸いです!

関連記事

  1. サイトを公開しました!

  2. 新年の御挨拶 : 本年も何卒宜しくお願い致します。

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP
error: Content is protected !!