【完全版】初心者向けにプログラミングの勉強方法をまとめてみた!

はてブ

「プログラミングはどうやって勉強するのがいいのですか?」

こんな質問を、プログラミング初心者の方に、よく聞かれます。
結論を先に書いておくと、世の中には色々な勉強の仕方などの情報が出ていますが、最短でスキルをつけるには、
「実際に動くものを自分で作ってみる」 ことが結局、一番早いです。

今は無料の学習サイトや学習サービス、スクール、本など、プログラミングを学ぶ方法は数多くありますが、何よりもプログラムを自分で書いてプロダクトを作り、それを自分のPCやオンラインのサーバー上で動かしてみることの方が、圧倒的に学ぶことが多く、結果身につくのも早いと断言できます。

とはいえ、完全な初心者にとって、動くものを作れと言われても、そもそも何から始めればいいのかわからない。。と言う方も多いと思います。
そんな方に向けて、実際にどうやって実際に動くものを作りながら、プログラミングを勉強していけばいいか紹介していきます!

プログラミングを勉強する手順

作りたいものを明確にする

まずは、作りたいものを明確にしましょう。

  • 日々の仕事のタスクを管理する簡単なiPhoneアプリ
  • 仲良い友達だけが書ける掲示板サイト
  • 自分の好きなサッカー選手だけが表示されるニュースアプリ
  • 好きな女優の画像を毎日WEB上から取得してきて保存してくれるWEBサイト

などなど、作りたいものは何でも大丈夫です。「実際にプロダクトを0から作りきる」 その過程こそに意味があるので、自分が欲しいものという軸で、サービスを考えましょう。

ポイントは、あれもこれもと色々な機能をいきなり盛り込み過ぎないことです。
このサービスは「シンプルに1つの事ができる」と言うような形で、必要な機能をかなり限定しておくと、開発がスムーズにいきます。

作るために必要な技術を知る

何を作るかによって、必要な技術が変わってきます。
作るアプリやサービスにもよるのですが、かなりざっくり分けると、以下のようになります。(初学者の早期理解のためかなり簡略して書いてあります。語弊がある可能性がありますが、ご容赦ください。)

  • WEBサイト : html/css
  • WEBアプリ : html/css + サーバーサイドの言語 + データベース + サーバー
  • ネイティブアプリ : (iPhone) Swift + サーバーサイドの言語 + データベース + サーバー
  • ネイティブアプリ : (Android) Java + サーバーサイドの言語 + データベース + サーバー

一番最初は、一番習得が簡単なWEBサイトを作ることをオススメします。
というのも、html/cssは全てのWEBサイトの汎用的な知識なので、学んでおいて損することはありません。また、学ぶことも他の技術に比べると少なく、簡単に表示させるところまで持っていけるので、達成感を感じやすいこともおすすめする理由の一つです。

WEBアプリに関しては、勉強するべき技術/知識は圧倒的に増えますが、インターネットの仕組みを学ぶことができます。
iPhoneやAndroidアプリを作りたいという方ももちろんいるかと思いますが、少し複雑な(ログインしたり、何かデータを保存したり)ものの場合は、結局サーバーサイド/WEBに関しての知識も必須になってきます。

最低限の基礎固めをする

自分の作りたいサービスと、それに必要な技術がわかったところで、最低限必要な技術の基礎を勉強しましょう。今は無料で勉強できるサービスが揃っていますので、まずは気負わずに、軽い気持ちで、学んでいくことをオススメします。

基礎固めの無料で学べるサービスの紹介(無料)

Progate( https://prog-8.com/ )
Progateは、ブラウザでプログラミングが勉強できるサービスです。分かりやすいようスライドも準備されているので、初心者でもとっつきやすいサービスで、ゲーム感覚で進めることができます。もちろん無料です。

[ おすすめポイント ]
なんといっても、環境を作らなくても良いことです。WEBブラウザ上で、開発環境を提供してくれるので、何も準備をせずともすぐにコードを書き始めることができます。

ドットインストール ( https://dotinstall.com/ )
dotinstall はプログラミング学習サービスの中では老舗で、3分動画でプログラミングが学べるというのがコンセプトになっています。370ものレッスンがあり、動画数は5500本を超えている(2019年1月時点)ので、必要な技術や少しニッチなものまで学べるようになっています。

[ おすすめポイント ]
エンジニアが実際に手を動かして、その画面を見せてくれると言うような体験が得られるため、開発環境の構築から、実際のコード、簡単なサービスまで、自分で実践的に勉強するときに、非常に便利です。

※ 環境とは?
プログラミングは、コードを書いただけで動くようになるわけではなく、そのプログラムが実行できるよう、OSやミドルウェアを整える必要があります。初心者の方は、環境構築に時間がかかってしまい、結局挫折すると言うことが、よくあります。環境構築は、プログラミングをする上で必ず必要になってきますが、その壁を突破できずに学習が終わってしまうのが一番勿体無いので、なるべく環境でつまづかないよう勉強していけるのがベストですね。

上記のサービスを使って、最低限の知識を学びましょう。
といっても、どのレッスンを受ければいいの?という方、
WEBであれば、必ず必要になるHTML/CSS + サーバーサイドの言語を一つ選び、その基礎を学びましょう。

Progateの場合
HTML & CSSのレッスン
PHPのレッスン

ドットインストールの場合
HTMLの基礎
CSSの基礎
PHPの基礎

ひとまず、上記を勉強していきましょう!
わからない部分は、繰り返して、何度も見て勉強します。

※ 色々な方向があるのですが、ひとまず汎用的でかつ、人口も多く、実際副業などにも繋がりやすい、PHPを勉強していくという前提で上記をお勧めしています。

WEBや本に載っているサンプルを一度作り、公開までやってみる

基礎を勉強するところまで来たので、次は実際に手を動かして作って見ましょう!ここが一番重要です。

これは実際に自分がやって、よかった経験なのですが、
本を一冊買って、読み込み、それに付いているサンプルをそのまま写して、公開までしてみる。
サンプルがあるので基本的には同じものができるはずなのですが、実際にやってみると、動かないことがあったり、サーバー/ドメイン関連で必要な知識あったりと、非常に学ぶことが多く、実戦で身に付けることができます。
私は下記の本を読み、サンプルを動かすところまで行きました。

PHPの本

WordPressを公開
WordPressは世界中で人気のあるCMS(ブログみたいなもの)です。
実際この世の全てのWEBサイトの30%がWordPressで作られていると言われるほど、汎用的になっています。実際このprogg.techも、WordPressでできています。WordPressもPHPでできていますので、とりあえず作ってみるのはいいかもしれません。

公開したものを手直ししてみる

ここまで来たら、少し楽しくなっているはずです。自分がここまで作ったものを、徐々に改修していきましょう!
例えば、上記で挙げたサンプルは、簡単なTwitterを作るサンプルがありますが、これを友人だけが使えるようにしたり、誰が呟いたかわからないシークレット機能をつけたり、自分の好きにカスタマイズするのです。

もちろん、サンプルには載っていないことなので、少し時間がかかるかもしれませんが、基本的にGoogleで検索すれば、大体のことが出て来ます。

世界で活躍するエンジニアも、多く同じように作ったものを、少し変えてみて公開、また少し変えてというような、上記のステップを踏んでいます。

世界で活躍するエンジニアも、同じようにとりあえず作ったものを少しずつ改造して、プログラミングを学習して言ったという人も多いようです。

よくある質問

プログラミングを勉強したい!エンジニアになりたい!という方と話すと、いくつかよく聞かれる質問があるので、まとめておきます。

プログラミングスクールって必要ですか?

初心者の方に、プログラミングスクールは行った方がいいのか?とよく聞かれます。上記やり方通りにやればできるようになるとは言っても、なかなか上記を一人でやりきるのは難しいかもしれません。

最初は、分からない部分に無駄に悩み、同じ部分でハマってしまい、気づくと数時間経っているなーんてこともよくありました。
僕の場合は、知り合いのエンジニアに、幾らかお金を払って、毎週一回1時間、分からないところを聞くというようなことをしてました。

重要なことは、分からない部分に無駄に悩まないということです。
もちろん適切なワードでぐぐって何とか情報を見つける、その工程で、周辺知識がつくと言うのは間違いないです。ただ一番のリスクは、プログラミングをせっかく勉強始めたのに、挫折してしまうことです。

上記の独学方法で、挫折してしまった or できなさそうと感じる人は、プログラミングスクールに行ってみるのは、いいかもしれません。
講師がいるので、わからない部分を、無駄に悩まず聞くことができるため、学習速度は高まります。

スクール選びの基準
数多くのプログラミングスクールが存在しますが、重要なポイントは

  • 手を動かせること
  • コードレビューがある事

の2点です。いろんなスクールがありますが、まず自分で手を動かしコードを書く経験ができるところ、また経験者のレビューがあり、自分が作成したソースコードに対して、適切なアドバイスをもらえることが重要です。
スクールに行く最も重要な理由の一つが、経験者に聞くことで悩む時間をスキップできることなので、悩んでいる方は、上記を確認してからスクールを選ぶと良いでしょうあ。

スクールの紹介
ポテパン
https://camp.potepan.com/

現役エンジニアからのコードレビュー(コードを見てフィードバック/アドバイスをくれる)があるため、実戦でプログラミングを学ぶことが可能です。経験者しかわからない、作法なども、学ぶことができるので、おススメです。

写経って意味あるの?

写経とは?
写経とは、仏教のお経を、そのまま書取るのと同じように、プログラミング言語を、WEBや本のサンプルを書き写す作業のことです。

写経のメリット
結論 : メリットはあるが、時間がかかります。写経をすることで、プログラミング自体になれることはできますが、継続してやる意味は大きくないと考えています。もちろんやり方次第ですが、ひとまず、自分の手でプロダクトを出すことに集中することをオススメします!

プログラミングを学ぶ心構え

上記、やり方等を見て来ましたが、プログラミングを0から学ぶ上で一番大切なのは折れない心です。実際にやってみると分かりますが、プログラミングを習得するのは、非常に時間がかかります。また、わからないところをググったりして、何も進歩がないまま何時間も経過したりと、人によっては苦行に感じる方もいるかもしれません。

ただ、活躍しているエンジニアも、必ず初心者の頃は、同じようにかなりの時間を苦闘することに時間を使っているはずです。
一度手にした技術と経験は一生役に立ちます。ぜひ、上記を参考にプログラミングを勉強して、将来の糧にしてください。

おまけ
プログラミング経験0からサイトを公開し、報酬を得るまでの過程が、細かく書いてあります。
https://anond.hatelabo.jp/20101203150748

関連記事