Rails】知識0から、3ヵ月で自分のWebサービスをリリースした話。Rails】知識0から、3ヵ月で自分のWebサービスをリリースした話。Rails】知識0から、3ヵ月で自分のWebサービスをリリースした話。初学者はこうして成長した!ツイートシェアはてブLINEPocketこの記事では知識が0だった僕が3ヵ月(正確には3ヵ月とちょっと)で自分のオリジナルのサービスを作成した話をしていこうと思います。どんなサービスを作ったかというと、基本的なCRUD機能を備えた簡易な投稿型Webアプリケーションです。実際にリリースしているのでこちらをご覧下さい。完成度は高くないですが、短期間でも正しい勉強法で集中してやればもっと効率よく出来たかなと思っています。いった教訓も含めて、これからWebサービスを開発していきたい!と思っている人の為になるように記事を書いていこうかと思います。Progateとの出会い2~3ヵ月目:どれだけプライベートな時間を犠牲にできるか3ヵ月目:自分を追い込んで実装その後まとめまずは決意を決めることプログラミング未経験からWebサービスを作るのは簡単ではありませんし、それなりの努力が必要になります。Webの技術は多くの技術が互いに複雑に絡み合っているため、正直覚えることが多いです。勉強していくうちに何が重要で何が重要でないのかが分かってくるようになります。異なる技術を学んでいても出現頻度が高い用語や、あまり出現しない用語、概念等が分かるようになってきます。ここで重要なのが、「勉強する決意、そしてプロダクトを完成させるという決意」を決める事です。やる気さえあれば、たいていの壁は超えられます。最初はとにかく目の前のやるべきことをこなし、つらいと感じることもありますがモチベーションの維持が大切です。モチベーションさえあれば、燃え尽きた時もエンジンを再点火できる可能性があるからです。その決意をしたら、次は勉強する言語を決めましょう。言語を選択するWeb系のサービスを作成するために現在主流で使用されている言語は大きく分けて2つあります。それが「Ruby」と「PHP」です。実際にはWebアプリケーションの作成が可能な言語は「Java」や「Python」「JavaScript」...等あるのですがWebが主戦場のサーバーサイド言語といえばこの2つです。そのためRubyかPHPこの2つの中からどちらかを選ぶという選択をしなければなりません。(勿論、この2つに絞らなくても良いです。好きな言語があればそちらを選んだ方が良いでしょう。RubyとPHPは高機能なフレームワークが台頭してきたことにより様々なエンジニアが扱い、その分リファレンスも多いです。困ったときに解決策を調べやすいといった特徴があります。)ネットで検索したり、書籍でざっとどのような言語か各自で調べてみましょう。その言語でどういうサービスが開発されているのかを調べて、自分が作りたいサービスにあてはめて考えるのも良いでしょう。基本的にどの言語を選んでも作れるものに特に制限は無いのですが、得意不得意はもちろんあります。Preprocesorの略として呼ばれています。PHPはスクリプト言語であり、HTMLに埋め込むことが出来ます。PHPのコードは<?phpではじまり?>で終わるタグの様なものが用意されており、HTMLに慣れ親しんでいるコーダーの人なら導入しやすく、分かりやすい言語であると言えます。一般的にPHPは比較的簡単な言語であると言われており、プログラミング初心者にも最適な言語の1つです。有名なCMSであるWordpressにもPHPが使われている上、エンジニアの数も多いので関連する情報が大量に出回っているのも勉強する上での利点です。近年はLaravelというフレームワークの台頭、Vue.jsとの親和性からさらに人気が高まっており、求人需要も増加しています。RubyとはRubyはPHPよりも柔軟性が制限される、逆に言うと保守性の高いオブジェクト指向言語です。基本的にはPHPよりも保守性に優れるのでバグが起こりにくかったり、チームで開発するのに向いている言語でもあります。Rails」と呼ばれるフレームワークによるものでしょう。(それ以外でもがっちり使われている部分もありますが)Railsを利用すると非常に高速でサービス開発を行うことが可能です。Railsはトレンドをいち早く導入して開発が進められているので年々使いやすくなっていっています。RubyはWeb開発言語ではなかったため、コアなプログラミングもできる上、Railsの様なフレームワークを利用してWeb系の設定も書けるようになったのが非常に有利な点であると言えます。自分はRubyを選んだ僕も始め勉強するときに言語の選択で迷いました。プログラミングの勉強を本格的に始める前はWordpress等を触っていたのでPHPが良いかな...とは思っていたのですが、個人的にPHPのシンタックスよりRubyの方が好みで非常に迷った記憶があります。Railsというフレームワークの存在を知り、色々調べていくうちにRailsに興味が湧いてきました。Railsで作られたサービスには、「cookpad」「Gnosy」「Airbnb」「Github」等、自分の好きなサービスの名前があったのでこれから勉強していく言語としてRubyを選択しました。自分はRubyを選びましたがこれが正解とかはありません。自分の直感に沿った言語を選択する事が大切です。基本的にWebの仕組みは同じなので、どちらかを勉強すればゆくゆくもう片方を勉強する機会が来た時に学習コストはグンとさがっているはずです。個人的にはRailsが素晴らしいのでRubyをお勧めします!また、Rubyは様々なプログラミングが可能なのでWeb系に飽きたら別の高度な開発も可能です。0~1ヵ月目:がむしゃらな1か月4月から勉強するという決意を決めて、この時はとにかくRailsの勉強をしたい!という一心で勉強を始めました。RubyとRailsは別物だということは多少分かっていたので、Rubyの勉強をしなくてもRailsを勉強していくうちに慣れていくだろうという目論見です。Railsとはオープンソースのフレームワークで、Web開発に使用します。名前にもあるようにRuby専用のフレームワークです。これを使えば驚くほど短いコード量でより多くの生産性を上げることができます。Railsは、最善の開発方法というものを1つに定めるという、ある意味大胆な判断に基いて設計されています。Railsは、何かをなすうえで最善の方法というものが1つだけあると仮定し、それに沿った開発を全面的に支援します。言い換えれば、ここで仮定されている理想の開発手法に沿わない別の開発手法は行いにくくなるようにしています。Way」、「Rails流」とでもいうべき手法を学んだ人は、開発の生産性が著しく向上することに気付くでしょう。従って、Rails開発において別の言語環境での従来の開発手法に固執し、他所で学んだパターンを強引に適用しようとすると、せっかくの開発が楽しくなくなってしまうでしょう。Tutorial」を読み始めました。多少PCは触れるので大丈夫だろうと思って挑み始めたのですが、このチュートリアルが実は曲者で、チュートリアルと書いてある割りには内容がかなり高度なのです。それに気づくまでに1週間程かかりました(笑)。RailsにはMVCモデルという非常に核となる概念があるのですがこれが全く理解できませんでした。「このまま続けてもわからないな」と思ったので一旦チュートリアルから離れて、一度動画教材を配信しているUdemyというサービスを使ってRailsの動画講座をざっと何本か視聴しました。当時Rails5が最新だったのですが、Rails4系の動画しかなく、コマンドを4系で勉強していたのですがMVCモデルについて多少の理解は得られたかと思います。動画だったので見るだけでこれからどういう勉強をするのかとか、雰囲気は学ぶことができました。それでも完璧な理解までは得られませんでした。ここで1か月が経とうとしてましたが、思い切って勉強の内容のハードルを下げてみました。Progateとの出会い2ヵ月目は、エンジニア関連の情報を集めようとTwitterアカウントを作成しました(興味のある方はフォローよろしくお願いします!)。下がって本腰を入れて勉強をしようと思い、こちらの書籍を購入しました。2018-03-09Amazon当時1つも深くまで理解してなかった僕にとってめちゃくちゃ最適な書籍でした。宝くじに当たったかのような感覚を味わいましたね(笑)初めて勉強する人にとってはかなり良書だと思います(今見たら全て理解できるほどレベル的には低いのですが、根本となる概念をカラーで簡単に説明しているのでめっちゃ良い本には変わりないです。)これを読み終わる頃に、作成したTwitterアカウントのタイムラインから「Progate」なるサービスがある事を知りました。実際に触ってみたらめちゃくちゃ分かりやすくて、しかも手が動かせるという点に惹かれて一瞬で有料会員になりました。僕は学生なのですが、暇な時間や退屈な講義中はProgateをとにかく進めていました。ボリュームがあるRailsのコースをひたすら学習しました。これから勉強する人はProgateから入るのが最も効率が良い気がします。一瞬で様々な言語の簡単な理解が得られます。物足りなくなってきたけど、ちょうどよい復習になるので今月もprogateは継続かな。2018年6月22日レベルアップが楽しくてやってしまう機能も非常に遊び心があって好きです。これが下地になって、遂にRailsTutorialへ踏み込みます。Tutorialを進めていました。それでも内容の難易度は高いのでたまにProgateに戻ってRailsコースの2周目をやったりしてました。Tutorialと親和性があるので(後で知りました!)休憩に丁度いい感じでしたね。同時並行でこちらの書籍も読み進めていってました。2017-11-25Amazonこの「プロを目指す人のためのRuby入門」はヤバいです。同ヤバいかというとかなり良書だという意味でヤバいです。RubyやRailsを勉強している方は一度は是非読んでください。これのおかげでRubyの理解が大幅に深まりました。Rails、そしてある程度知識が付くとHTTPやWeb系の関連技術本を読み漁っていたのですが、時間が大量にあったわけではありません。学生なので勿論授業やテストもあるわけです。この時期は中間テスト~期末テストがあったのでめちゃくちゃ忙しかったというか、自分の勉強時間が思う様に取れませんでした。Webの勉強は毎日欠かさずやりたいという思いが強かったので、無理やりにでも時間を取って勉強した記憶があります。友人との食事を断ったり、用事をなるべく入れないようにしてました。(断った友人のみんな、ごめんなさい。この場を借りて謝罪します。Tutorialを完走することが出来ました。Tutorialはもっと時間がかかるのですが、僕はTestの部分は所々読み飛ばしつつ勉強していったので平均より早めに完走する事ができました。(基本的には1-2ヵ月ほどかかると言われています)この時プライベートな時間を犠牲にしてよかったと思っています。自分が暇な時間は全てWeb系の学習に当てていたイメージです。勉強はある程度行い、基礎はある程度固まってきたかな...位で自分のオリジナルのWebサービスの開発に着手しました。始めは「死ぬかと思った」のような自分の不幸体験を投稿するWebサービスを作ろうかと思って色々考えていたのですが途中でやめて、ホラーが好きで夏ということもありもっと簡易なホラー体験談投稿サイトを作ることに決めました。(簡易にしたのはこれまで学んだことが実装できるかという確認と、単純に時間がなかったため。2018年7月13日ひたすら、ググりながら実装の毎日を過ごしました。Railsではなくデザインの面でした。フロントエンドの勉強はあまりしていなかったのでどうやって見栄えを良くするかをひたすら考えてました。そのせいで結構時間が掛かったというのはあります。サーバーサイドの実装が1週間くらい、デザイン実装が1週間位で大体2週間弱で完成しました。デザインは自分でCSSをかけなかったのでBootstrapで代用しました。Fontを使うなどして無機質なサイトにならないように気を付けました。Rails歴3ヶ月目にしてようやく簡易なオリジナルWebアプリをデプロイしました。ホラー体験談投稿サービス「Hiyari」です!スマホも対応。2018年7月9日このサービスが完成してデプロイした時の記憶は忘れません。今まで苦労して勉強してきた成果が1つのプロダクトとして公開された時のうれしさは半端じゃないです。なによりも、「自分1人でここまでできた」という経験がこれからの糧となるでしょう。その後リリースしてから実際に使ってくれる人はあまりいませんでしたが、見てくれる人は思ったより多かったです。ログインしないと投稿が見れない、登録するときの項目を多くしすぎた等まだまだ改善する余地はありそうです。このままで残しておこうと思います。将来また自分でプロダクトを作成した時に、どれだけ成長したかを比較したいからです。今見たら既にひどい出来ですが(笑)現在はRailsの学習を継続しながらフロントエンドも勉強しています。このプロダクトを作成したお陰で希望した会社のエンジニアインターンにも採用されました。いずれはフルスタックなエンジニアとなり、自分1人で思い描いたサービスを直ぐに作れるようになりたいです。ヒヨコなので、ニワトリになるべく毎日スキルアップしていきます。・行き詰ったら、一歩下がって勉強してみる僕は全て独学で勉強しました。プログラミングを勉強するにあたって最も重要なのは「モチベーション」です。やる気が無ければ向上心も起きません。モチベーションの維持に自信が無ければスクールに通うのも1つの手だと思います。スクールのメリット・デメリットについてもまた記事にしていこうかと思います。この記事が誰かの役に立てば幸いです!ここまで読んでくださってありがとうございました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。【GitHub】プルリクの方法を整理してまとめてみたNode.jsの同期と非同期処理についての覚え書きメモRECOMMENDこちらの記事も人気です。ru...Ruby2018.8.17【RSpec】RSpecの基本を0から学んでみた。Rails2018.7.8railsコマンドで「指定されたパスが見つかりません。(TECH::CAMP)の無料説明会に行ったら衝撃の事実が発覚した件について【2019年最新】テックキャンプ(TECH::CAMP)の評判と料金、概要まとめ。実際の最新情報を解説します。