独学でサービス作成までの一通りの流れをまとめてみた。

　恐らく、この記事を読んでいる方は、これからプログラミングを始めようとしている、またはプログラミングの勉強を一通り終えて、これからサービスを作ろうと考えている人がほとんどだと思います。この記事はそんな方のために、出来るだけ詳しく、サービス作成までの流れを書いたものになります。
　
　ちなみに宣伝ですが、僕が作成したサービスは、[Yapy](https://www.yapy.fun/)というサービスです（笑）
※現在公開停止中
　
　では、一連の流れを紹介していきます。
#1.プログラミングの勉強方法
　最初にプログラミングの勉強方法について紹介していきます。
　
　僕がプログラミングを勉強するために最初に利用したサイトは[progate](https://prog-8.com/)というサイトです。このサービスは、プログラミングを実際に書いて勉強することが出来ます。さらに、書かれたコードは当たり前ですが、そのまま動作するので自分で応用を利かせながら書くこともできます。また、プログラミングならではの一文字間違えただけで挙動が全く違ったり、エラーが起こったりという厄介なことも起こります(笑)
　[progate](https://prog-8.com/)は、確か、html,css,javascriptの途中まで無料だったと思います。その後は有料なので本気でやろうと考えている人は、はじめから有料会員で登録してもいいと思います。
　
　中には、プログラミングを勉強したいけど特にやりたいことがなかったり、プログラミングを使って何が出来るのかイメージできない人もいると思います。僕もそうでした。ですが、プログラミングがどういうものか分からず立ち止まっているのであれば、とりあえず勉強してみるのがいいと思います。
　僕も最初はプログラミングなんて天才が会得できる学問でしょって思っていたんですけど、実際にやってみると簡単なわけではないですけど、思っていたよりもハードルは低く、スムーズに学習することが出来ました。なので、うだうだ考えていないでやってみるのが一番かと。

　[progate](https://prog-8.com/)で一通り学んだら、とりあえずアプリ作成を始めて見るといいと思います。僕の場合は最初にhtml,css,javascriptを勉強して、「これらの言語でどのようなアプリを作れるのか、自分の力がどのくらいついたのか」が気になったので、[Monaca](https://ja.monaca.io/)というサービスを使ってアプリ作成を始めました。
　
　ここまでは大体1ヶ月くらいです。

　アプリ作成は、先ほども言ったとおり[Monaca](https://ja.monaca.io/)というサービスを使ったのですが、このサービスは、html,css,javascriptを使ってアプリの開発を簡単に出来るサービスで、制限はありますが、無料で使うことが出来ます。
　このアプリ開発でjavascriptの応用の知識や、開発の大まかな流れを確認することが出来るのでやってみてください。モチベーションにもつながります。
　
　このアプリ開発には、2週間くらいかけました。

　その後Rubyに興味を持ち、[progate](https://prog-8.com/)を使い、RubyのコースとRuby on Railsのコースを5周くらいした後、サービスの開発に入りました。
 [progate](https://prog-8.com/)でのRuby,Ruby on Railsの学習はかなり時間を使ってしまいました。
　5周するのにだいたい1日3時間くらいで1ヶ月くらいかかりました。
　
　僕の場合は最初にRubyを勉強しましたが、最初に何の言語を勉強するかは人それぞれ目標に合わせたほうがモチベーションもあるので続けやすいと思います。
　言語によっても、癖や出来ること、作れるものが違うので、それぞれの言語の特徴をしっかり調べて言語を決めてみてください。


#2.環境開発
　次に開発環境について紹介します。
　プログラミングについて調べていると環境構築だとか開発環境の構築がめんどくさいとかって言う記事を良く見ると思います。実際に環境構築は僕自身とても苦労しました。
　ここでは環境構築についてはあまり深くは触れません。ですが、環境構築をする際の注意点だけ紹介したいと思います。

　環境構築をする際の注意点ですが、まずは自分のOSの種類、どのくらいのスペックがあるのか、ダウンロードするファイルの種類がどれなのかをしっかり、調べてから行わないと、後々めちゃくちゃめんどくさいことになります。
　あとは、環境構築の方法を調べていると、よく分からない黒い画面に英語をたくさん羅列させている画面が出てきます。それもどのコマンドがどのような命令をしているのかを調べてから行わないと、不必要なコマンドを打ってしまって、やり直しということもあります。環境構築をする際は、コマンドについて軽く、学んでからのほうが安全だと思います。
　最後に、環境構築をする際は、バックアップを忘れないようにしてください。めんどくさいことになってからでは遅いので（笑）

　特にやりたいことも決まっていないけど、本格的にプログラミングに触れたいという方は、ネット上で利用できる開発環境もあるので、言語に合わせて探してみてもいいと思います！
　僕は使ったことがないので、詳しい説明は出来ませんが、統合開発環境というもので最初から環境が構築されており、登録したらすぐに言語を使えるサービスです。検索をかけると使い方が出てくると思うので興味のある方は、そちらを利用してもいいと思います。

#3.サービスの開発について
　環境構築をして準備が出来たら、サービスを開発したくなるかと思います。

　サービスの開発では分からないところが多々出現するので、[ドットインストール](https://dotinstall.com/)や[Schoo](https://schoo.jp/)といったプログラミング学習サービスに加えて、書籍を購入し、勉強しながら開発を進めました。

　[ドットインストール](https://dotinstall.com/)というのは、プログラミングを1本3分ほどの動画で学習できるというサービスで、ほとんどを無料で利用することが出来ます。早口での説明で最初は慣れませんが、慣れると、他の学習サービスの動画が遅くていらいらするようになります（笑）

　[Schoo](https://schoo.jp/)も動画でプログラミングを学習できるサービスなのですが、リアルタイムで視聴することで講師の先生に質問をすることが出来たり、説明が比較的丁寧なので、ドットインストールは早口で分かりにくいという方は、一部有料ですが、こちらを利用するといいと思います。

　書籍についてですが、強く興味のある言語を勉強する場合は、書籍は比較的早い段階で、購入したほうがいいと思います。書籍を購入し、一通り読むことで、今まで知らなかった記法やメソッドなどがたくさん出てきます。一度書籍を軽く読んでおくことで、サービス開発の際に、絶対に役に立ちます。
　
　最初にも言ったとおり、サービス作成では多くのエラーや、分からない問題に直面します。そういう時は、積極的に調べて記法やメソッドなどを学んでいきましょう。そのときに重要なのが、プログラムの意味を理解しないまま、コードを書き込むことです。これは、思わぬエラーを招くこともあるので、極力意味を読み取って、コードを記入するようにしましょう。

　サービス作成から完成までは、2ヶ月くらいでした。

　学習開始からサービス完成までの期間は、ちょうど半年くらいかかったと思います。

#4.まとめ
　ここまでがサービス作成までの一連の流れになります。人によっても進め方は違うと思いますが、大体このような形で少しずつスキルアップさせていくしかないと思います。
　
プログラミングは、難しいと感じる部分もありますが、自分の考えを形に出来る手段です。プログラミングを勉強することを目的にせず、新しいものを創造するために何が必要かを考えながらやると、モチベーションを保ちながら、学習できると思います。
　僕自身もまだまだ初心者レベルでコードが長くなってしまっていたり、複雑なコードがうまく動かなかったりと、まだまだ勉強の必要があります。
　お互いがんばりましょう！