見出し画像

個人開発を始めよう ~初心者が知識ゼロからWebアプリケーションを作れるようになるまでのステップや参考書をまとめてみる~

一年間、ほぼ初心者から個人開発の勉強をしてみました。最初は手探りでやっていたのですが、最近ようやくちょっと分かるようになってきました。

自分が初心者のころにこういう順番で勉強していたら効率的だっただろうなと、Webアプリケーションの開発をゼロ知識から行う場合の、効果的な学習ステップを簡単にまとめてみました。勉強に使ったサイトや書籍、URLなんかも置いておきます。

--- 初心者向けの個人開発学習ステップ ---

■作りたいサービスを考える。

 まず、これが基本です。

 これがない場合はやめましょう。作りたいものがない場合は頑張っても続かないので。

 自分が使いたいものや、機能なんかに想いを馳せましょう。勉強するモチベーションにつながるので、楽しいサービスを思い浮かべておきましょう。サービス名を付けると愛着がわきます。

 アイデアや初心を忘れないようにどこかにメモをしておくといいです。定期的に見返しましょう。

 個人開発はかなり勉強量が多いですが、それを知ってでも作りたいと思ったら次に進みます。

  ↓

■Webの仕組みを知る。

 とりあえずどんな仕組みで動いているか簡単に知りましょう。ドメイン、サーバー、静的サイト、動的サイト、Webアプリケーション、スマホアプリあたりの知識を知っておけばいいです。

 すでに知っている人はスキップ。学習時間は2時間くらい。

 書籍より、Webサイトの方で十分。各用語をググってなんとなくの理解で結構。どうせ使わないと覚えないから。

  ↓

■HTML/CSS/JavaScriptについて学習する。

 どこでも大抵必要になるのがこの3つの言語。バックエンドに徹する人でも、知っておいた方がいいので必ず勉強しましょう。特に近年ではバックエンドにもJavaScriptを使うところが増えてきているので抑えておきたいですね。

 すでに知っている人はスキップ。ただ、古いHTML/CSSを覚えているだけの場合は再履修が必要です。

 時間がない方は最低限HTML/CSSだけは覚えてください。完璧でなくてもいいです。ひとまず、使い方と役割だけ覚えれば大丈夫。詳細なものは実際にやるときに勉強しないといけないので。

 書籍だと入門書を一冊程度、Webサイトのまとめを見るのでもいいです。そこまで徹底してやらなくても問題ないかなって思います。学習サイトのコース履修でもいいですね。

 JavaScriptは絶対にES6の書き方を勉強してください。昔の書き方では通用しないことが増えてます。書籍を買う場合も最新版の書き方が載っているものを見てください。


 各言語は2~4時間ずつくらいの学習でいいです。実践しながらじゃないとなかなか身につかないので。ひとまず、どんなものか、どう使うのか程度を目安に。

  ↓

■バックエンドの言語/フレームワークを学習する。


 とりあえずバックエンド用の言語 (フレームワーク)を選びましょう。言語というよりはフレームワーク選んだ方が手っ取り早いですかね。初心者の方はRuby/PHP/Python/JavaScriptあたりから選ぶと間違いはないです。

 学習難易度が低いのと参考書がそろっているという意味では初心者はRubyがいいと思います。それかJavaScript。まぁどれでもいいですが、ひとまず選んでおきましょう。何個か試してもいいです。

 言語の勉強はしてもいいですし、しなくてもいいです。簡単な書き方くらいは覚えておくといいですが、フレームワークを使う場合は書き方が決まってるのであとでも平気。

 初心者向けの書籍一冊を眺めるだけで問題ないです。1~2時間くらいの学習でいいと思います。

 ここまでをできたら一週間以内に終わらせましょう。座学に時間をかけすぎてもあまりよろしくないので。作りながら覚えましょう。


  ↓

■エディタを用意する。

 Webアプリケーションを作る場合は高機能なエディタが必須です。開発効率が段違いです。言語によっておすすめのエディタが違うので色々と評判を調べて何種類か使ってから選んでみてください。VSCodeあたりが無難かなって思います。

 無料版でもいいですが、時間を無駄にしたくない場合は有料版を選んでおくといいです。チュートリアルでエディタのことについて触れているところもあるので、チュートリアルで選んでもいいです。

  ↓

■チュートリアルをクリアする。

 大体のフレームワークにはチュートリアルが用意されているので、その中から2、3個選んでクリアしてください。流れと書き方が身につきます。できたら公開の部分までやっているチュートリアルがおすすめですね。

 書籍でも学習サイトでも構いません。ひとまず、全体の流れと使い方さえわかればいいので。書籍の場合は初心者向けの本が大抵あるのでそれを選びましょう。経験者向けの本は選ばないようにしましょう。小説投稿サイトを作りたいのだったらブログサービスを作るチュートリアルをやるといいですね。

 組み合わせとしては初心者向けのチュートリアルと公式チュートリアルを押さえるといいかなって思います。有名なフレームワークはいくつもチュートリアルがあるので、自分が作りたいサービスに近いものを選びましょう。

 できる限り公開までチュートリアルでやってるものを選んでおくと後々役立ちますし、サービスを作るのが現実的になります。

 自分が作ったものを眺めるのはモチベーションにつながります。

 
 学習時間はチュートリアルにもよりますが、数時間~十数時間くらいの分量ですかね。

 周回してもいいです。最初は単に写経して、ひとまず動くところまでやってしまうといいです。2週目に内容を理解しながら進めると全体がわかっていいかなと思います。

 この部分はできたら1週間以内に終わらせましょう。流れを理解するのが目的です。
 

  ↓

■設計する。

 作り方がわかったら、作りたいもののコンセプトや、対象について真剣に考えてください。どんなものを作りたいかを明確にしておけば後が楽です。できたら画面についてもここである程度決めておくといいでしょう。

 少なくとも、コンセプトだけはしっかりと考えてください。ここが崩れるとすべて崩れます。

 また、サービスが最低限成り立つ機能は抜き出してください。最初はそれで公開することになります。

  ↓
 

■スケジュールを立てる。

 最初は1か月以内に終わるようなものを作るのがいいです。最大でも3か月以内にとりあえず完成させてください。それ以上かかるものはやめましょう。概ね失敗します。経験があれば、どうにかなりますが、初心者だと大体モチベーションがなくなって挫折します。

 できれば、最低限の項目と、余裕があれば作る部分、挑戦する部分に分けておきましょう。最低限の項目ができたら公開して使ってもらってフィードバックを貰うのがいいと思います。

  ↓

■開発する。

 できる限りタスクは分割しましょう。必ずやること、余裕があればやることに分けてやると効果的。わからなかったらすぐ調べましょう。

 新しく機能を思いついてもメモするくらいで、脇道にそれないようにしましょう。一心不乱に作ります。最低限の機能だけ確実に終わるようにしましょう。

 デザインが気に入らなくてもとりあえず動くようならそれでいいと思います。どんなに不格好でも動けば問題ないです。

 一番大事なのは動くものを作ることです。完璧なものを作ってからという考えはやめましょう。

  ↓

■公開する。

 最低限の機能ができたら公開しましょう。作ったものはサーバーで動かして公開してください。
 【フレームワーク名 + デプロイ + サーバーサービス名】で検索すると動かし方は分かると思います。

 サーバー会社はどこでもいいですが、無料利用期間があるものがいいかと思います。チュートリアルや書籍の内容が公開まである場合はそのサービスを使うと楽です。
 
 ここまでの流れがわかったらあとは大丈夫だと思うので、ここまではできるだけ早く到達しましょう。1か月以内が理想です。できたら3か月以内にたどり着くのが挫折しないコツです。

 公開の仕方までたどり着くことができたら、個人開発者として名乗れます。

 サービスは友人などに使ってもらってフィードバックを受けるといいでしょう。

  ↓

■改善する

 悪いところがあったら改善しましょう。また、作ってない機能があったら追加しましょう。

 ユーザーからの改善要求が来るかもしれませんし、不満も出てくるかもしれません。

 ですが、どんなサービスでも絶対に不満は出ます。AmazonであれTwitterであれFacebookであれGoogleであれ、口コミを見ていると不満は出てきています。どんな大手企業が作ったものでも不満は出るのですから、個人開発でも不満は出てきます。

 完璧なサービスをあまり求めないようにしましょう。

  ↓

■まとめる

 はてなブログやQiitaやnote、Zennなど技術公開しているところでやったことをまとめましょう。アウトプットは大事です。

 記録を付けていると後々見返した時に発見があったり、リニューアルするときに役立ちます。

  ↓

■新しく作りたいものを考える/新機能を考える。

 だいたい予定していたことが終わったら、既存の物を改良したり、新しく作りたいものを考えてまた作りましょう。

 いくつも分野が違うサービスを作ると、色々な知見が得られて楽しいと思います。

以上。


--- お役立ちサイト ---

自分がよく使っていて便利なサイトを紹介します。

■GitHub
https://github.co.jp/

ソフトウェア開発のプラットフォーム。多くのオープンソースプロジェクトが存在。
開発の参考になるコードも多数存在。開発者にとってとても便利で有益な場所。

■MDN Web Docs
https://developer.mozilla.org/ja/

CSS、HTML、JavaScript などのウェブ標準の学習プラットフォーム。ウェブ技術とウェブを支えるソフトウェアについて学ぶことができる。
HTMLの要素、CSSのプロパティなど使い方がわからない場合はこちらを見るのがとても参考になる。

■Django Girlsチュートリアル
https://tutorial.djangogirls.org/ja/

Djangoのチュートリアルさいとの一つ。おすすめのチュートリアルを見たらここの評判がよかった。
ブログ投稿サービスを作るためのチュートリアルが用意されている。ちょっとのアレンジで簡単な小説投稿サイトができる。

■Qiita
https://qiita.com/

エンジニアリングに関する知識を記録・共有するためのサービス。プログラミングにおける多くの知見を有しており、参考になる記事が多数存在。

■伝統色のいろは
https://irocore.com/

日本色を多く取り揃えている。色に悩んだ場合は眺めていると楽しい。
和風のサイトを作成するときの色使いに役立つところ。

■HTML&CSS入門 -サルワカ
https://saruwakakun.com/html-css/basic

サルでもわかるを合言葉に、分かりやすくHTML/CSSを学べるサイト。
はじめてHTMLとCSSを学ぶ人にとってもとても参考になる場所。
初学者におすすめ。


--- お役立ちサイトだけどあんまり使わなかったところ ---

自分は動画形式の学習には向いてないのであんまり使ってない。(試してはみた)。

■Udemy
https://www.udemy.com/

動画形式の学習アプリケーション。
動画形式の学習が合う人には多くのコースがあって便利だと思う。
セール期間にまとめ買いするのがオススメ。

■YouTube
https://www.youtube.com/

プログラミング言語を検索すると結構出てくる。
動画形式の学習が合う人にはいいかと。

■Progate
https://prog-8.com/

初心者向けのプログラミング学習サイト。スライド形式、イラスト多め。
ある程度学習するためには有料会員になる必要がある。

--- 買った本 ---

個人開発をするためにあたって多くの本を買って読んだ。その中でもよかった本を紹介します。

■個人開発について

個人開発者の生の声を集めた本。個人開発ってどんな感じなのかを知るのにいいかと思う。

■HTML/CSS/JavaScript

HTML/CSSの基礎を学ぶのにちょうどいい本。これを何回も読み直して勉強した。

そのあとは、こっちもおすすめ。最近のHTML/CSS事情がまとまっている。

本当のJavaScript初心者におすすめ。基礎の基礎から丁寧に書かれている。ある程度知っている人には優しすぎるかも。

基礎がわかったら、実戦用にこれがオススメ。具体的にどう使うかが示されているのでパラパラと眺めながら気になったものを勉強がてら使ってみるのがいいかと。


HTML/CSSについては、「1冊ですべて身につくHTML & CSSとWebデザイン入門講座」とサルワカのホームページで十分かな。JavaScriptはES6に対応した参考書を買うのが一番。古いサイトでvarを使っているところも多いので、そういう場所はなるべく避けるようにした方がよいかと。個人的に入門書を一冊買って覚えたら、あとは「JavaScript コードレシピ集」を眺めて使えるようにするのがいいかと。

Python、Django

自分はバックエンド用の言語をPythonにしてフレームワークはDjangoを選びました。それを勉強するために色々と買いました。なかなかDjangoの書籍少ないですね。

Pythonのことについて学ぶならこれがよかった。一冊でまとまっているのでお得。

Djangoを勉強するうえで必修の2冊。とりあえずこの2冊を押さえておくのがベター。少なくとも基礎編だけでもいいかも。

PythonはともかくDjangoの日本語参考書は少ない。


Pythonは最低限の文法だけ見につけばいいので初学者用の参考書と独学プログラマーをよんでおけばDjangoを使う分にはをいいかと。

Djangoの参考書としては「現場で使える Django の教科書」は必須で、あとはDjangoチュートリアルの中から何個かやれば問題ないと思う。色々と買ってみたけど、似たり寄ったりの内容でひとまず現場で使える Djangoを読むのがいいのかと思う。

ただAWSを使ってデプロイする場合は「動かして学ぶ! Python Django開発入門 (NEXT ONE)」が実例でやっているので参考になるかなと思います。HerokuやPythonAnywhereなんかはググるのが早いかと。

・Git

Gitの使い方はこれがよかった。最低限必要なことが網羅されているし、使う場面が分かりやすい。

Googleアナリティクスの勉強として読んでみた。結構知らないことも多くて、実際に運営するときには使い方を覚えるのには必須なのだろうなぁと思う。ひとまずどんなことができるかを学ぶのがいいかな。

・UIデザイン

UIデザインに関する参考書。

ユーザーが操作する画面をどうやって考えればいいか、役に立つ。開発に慣れてくればこれがとても参考になると思う。特にインタフェースデザインのお約束を守っていればそれほど変なデザインにはならないかも。

・ヘルプ

ヘルプサイトを作るうえで大事なことを説明してくれる参考書。実際に運営するときに役立ちそう。

・利用規約

利用規約を作るうえで大事なことを説明してくれる参考書。実際に運営するときに役立ちそう。

・職業として

もし、職業としての開発者になりたかったら、この本を読むといいかも。
必要な知識やどんな業界かなど説明されています。まぁ私は職業としてはならないかな。趣味としてだけでいいかと思った。

とりあえずこの辺りの参考書を全部読んだら個人開発するうえで大体はいいのではないかなぁと思います。


なんだか思ったよりもいっぱい本買って読んでたなって気分。

良ければサポートお願いします。サポート費用はサーバー維持などの開発費に使わせていただきます。