本記事は、以下のような方向けに作成しています。
プログラミングをスクールに通わず独学で勉強したいけれど、本当に出来るか不安
上記のような方のために、実際にプログラミングを独学で学習してWebサービスを立ち上げた私自信の体験から、以下の内容について記事にしてますのでぜひご覧ください。。
簡単な言語を選びコツを抑えて勉強すれば、独学でプログラミングを身につけることは可能
本記事で独学でも挫折せずに勉強するコツを紹介します
独学とプログラミングスクールとの比較
プログラミングを学習する上で、大きく『独学する』と『プログラミングスクールに通う』の2つの選択肢があります。ここではまず、プログラミングスクールと比較した独学のメリットとデメリットについて紹介します。デメリットよりもメリットの方に魅力を感じる場合は、ぜひ独学でプログラミング学習を始めてみましょう。
独学のメリット
独学のメリットは、主に下記の3つが挙げられます。
- 学習の経費が抑えられる
- 時間や場所の融通が効く
- 自分で調べて解決する力が付く
学習の経費が抑えられる
独学のメリットの一つとして、学習するための経費が抑えられることが挙げられます。
プログラミングスクールは、しっかりとしたカリキュラムを作成して講師を用意してくれる半面、その相場は20万円〜50万円程度となります。
これに対して、独学であればオンラインの学習サービス、参考書籍であれば、使うとしても1〜2万円程度で十分学習することができます。
時間や場所の融通が効く
2つめのメリットは、時間や場所の融通が効くことです。
プログラミングスクールは、決められた受講時間に行かなければならず、スクールに通うための場所的な制約もあります。これに対して、独学であれば自分のスキマ時間に場所を選ばないので、忙しい方でもず学習を進めることが可能です。
自分で調べて解決する力が付く
3つめのメリットは、独学をすると自分で分からないことを調べて、解決する力が身につくことです。
もし、プログラミングで仕事をするようになった場合、技術は常にアップデートされていくのでプログラミングの勉強はずっとし続けなければならないものです。また、分からないことも自分で調べて解決しなければなりません。
プログラミングスクールでは、カリキュラムや講師で手取り足取り教えてくれる反面、上記のプロセスを経験する機会は少なくなります。一方で、独学ではわからないことは自分で調べて解決する力が身につくので、現場に出た際でもこの力が役に立つでしょう。
独学のデメリット
独学のデメリットは、主に下記の3つが挙げられます。
- 質問する相手がいない
- 学習するのに時間がかかる
- 途中で挫折しやすい
質問する相手がいない
独学のデメリットとして、分からなかったときに質問する相手がいないことがあげられます。
プログラミングを実際に勉強していると、必ず分からないことがあります。その際に、最も早く解決策を導き出せる方法は、熟練の方に質問することです。プログラミングスクールに通う場合は講師の方に質問することができますが、独学の場合はインターネットで調査して自分で導き出さなければなりません。
これに対して、本記事では学習する上での教材の選び方、分からないことに対する調査の仕方に関するコツを紹介していきます。
学習するのに時間がかかる
独学は、プログラミングスクールと比較すると学習する時間がかかります。
プログラミングスクールでは上述したように質問する相手がいるので、分からないことにぶつかった際にもスムーズに進めることが出来ますが、独学では自分で調べて、調べた内容を理解して、ようやく解決できるので、理解は深まる一方で時間がかかります。
また、独学の場合カリキュラムのようなものもないので、学習の進め方が良くない場合は学習時間がかかってしまうでしょう。
これに対して、本記事では独学する上での学習の進め方のコツについて紹介していきます。
途中で挫折しやすい
独学のデメリットとして、学習している途中で挫折しやすいことが挙げられます。
プログラミングスクールでは決められた受講時間に必ず行くことになるので、自動的に学習を継続させることができます。一方で、独学の場合は自分で学習するスケジュールや時間をコントロールしなければならず、また継続するためのモチベーションを維持しなければ、途中で挫折してしまうリスクがあります。
これに対して、本記事では簡単に独学できる言語やモチベーションを維持するコツについて紹介していきます。
独学で勉強する7つのコツ
ここでは、独学で勉強していくためのコツを7つ紹介します。
- ゴールを設定する
- 本での勉強は最低限にする
- プログラミング学習サイトを利用する
- インターネット上にあるコードを参考にする
- 一気に全てのコードを書こうとしない
- 時間確保しスケジュールを立てる
- 学習状況を発信してモチベーションを維持する
ゴールを設定する
プログラミングを勉強する際に、とにかく勉強する、というのが一番ダメです。プログラミングで勉強しなければならないことは、本当に無限に近いぐらい多いからです。開始する前には、必ずゴールを設定しましょう。ゴールは人によって異なりますが、例えば以下のようなものとなります。
- ブログやホームページを作る
- Webアプリケーションやモバイルアプリケーションを作る
- ゲームを作る
- 業務効率化するための自動化ソフトをつくる
- 転職やフリーランスとして働くためのポートフォリオを作る
上記のようなゴールを設定して、ゴールを達成するために必要なプログラミング言語を選び、必要な知識だけを勉強するようにしましょう。そうすることで、最短で必要なスキルを身につけることが出来ます。
また、本記事ではゴールを達成するために初心者にオススメなプログラミング言語をこの後で紹介してますので、ぜひ最後までお読みください。
本での勉強は最低限にする
勉強するとなると、本を買って本で学んだ内容をノートにとって、といったような勉強を思い浮かべがちですが、プログラミングの学習にとっては本で学ぶよりとにかく手を動かしてコードを書くことが大事です。
それでも本当に最初の最初は、学ばなければならない全体像を掴むために本を読むことも有効です。本で勉強する際には、覚える、理解する意識は最低限にしてスピードを優先させましょう。理解度としては40%ぐらい、『ふ〜ん。こういうことをするんだ』ぐらいで大丈夫なので、最短で全体像を掴むように本を使って勉強しましょう。
プログラミング学習サイトを利用する
プログラミングはとにかく手を動かして覚えることが大切ですが、実はその前にローカルPC上にプログラミングが出来る環境を用意すること自体も難しく、ここで挫折する人も多いです。プログラミングは、『こう書いたらこう動く』という体感が面白いところであり、環境構築ではそれを実感する手前の部分なので、これも挫折してしまう要因となります。
そこで、まずWeb上でプログラミングをすることが出来るプログラミング学習サイトを利用しましょう。プログラミング学習サイトを利用すれば、ローカルPC上に環境構築する必要なくプログラミングのコードを記述し動作させることが可能です。
ここでは、プログラミングサイトとして以下の3つを紹介します。
progate
progateは、HTML、CSS、JavaScript、Ruby、Python、PHPなどWeb開発に関する言語を学習できるプログラミング学習サイトです。講義はすべてスライド形式となり、自分のペースで進められることが特徴です。内容が比較的簡単なため、初心者の取っ掛かりとしては非常に良いサービスです。
ドットインストール
ドットインストールは、Web開発に関する言語の他に、Unityによるゲーム制作やKotlinやSwiftといったスマホアプリ開発用の言語も学べるプログラミング学習サイトです。短い動画によって学習をすすめることができることが特徴です。
Paizaラーニング
Paizaラーニングは、エンジニアの就職・転職のサポートサイトである「Paiza」が提供しているプログラミング学習サイトです。言語は、Web開発系の言語、機械学習やデータサイエンスに強いPython、現場に根強く人気のあるJavaやC#など、幅広く学ぶことができます。
インターネット上にあるコードを参考にする
本やプログラミング学習サイトで一通りの基礎を学習したら、今度はゴールを達成するために実際にコードを書いていきます。この際、ゼロからコードを書こうとすると何から手をつけて良いか分からなくなってしまうでしょう。しかし、インターネット上にもゴールとしているアウトプットに比較的近い内容のソースコードがほとんどの場合はあります。効率的にゴールに近づくためには、他の人が先人を切って書いてくれたソースコードを真似することから始めましょう。
ここでは、先輩が書いたソースコードを閲覧できるサイトとして、以下の3つを紹介します。
Qiita
Qiitaは、エンジニアに関する知識を記録・共有するためのサービスです。 プログラミングに関するTips、ノウハウ、だけでなく、ソースコードも記事の中に公開されているケースが多いです。また、プログラミングのソースコードだけではなく、環境構築の方法や周辺の知識についても書かれている記事が多くあるので、特殊な内容でもまずQiitaで検索してみることをオススメします。
Zenn
Zennもエンジニアが技術・開発についての知見を共有するためのWebサービスです。Qiitaと比較すると、Zennは一部有料の記事があるため、より体系的な、もしくは専門的なソースコードとその解説も存在します。もしQiitaで見つからなければ、Zennの方でも調べてみましょう。
github
githubとは元々はバージョン管理をするためのWebサービスです。バージョン管理をするためにソースコードをgithub上にアップロードする流れになっているため、公開しているものであれば、他の人が書いたソースコードを見ることが出来ます。最初はgithubは難しいと感じるかもしれませんが、少しプログラミングになれてきた段階であれば、周辺のファイルごとソースコードを見ることができ、非常に多くのことを学ぶことが出来るためオススメです。
また、githubで検索する際には以下の記事が参考になりますのでぜひご覧ください。
さらに、どうしても真似したいソースコードが見つからない場合は、自分だで悩むのではなく質問が出来るサービスなどを利用しましょう。プログラミングの質問が出来るサービスとしては、下記の『teratail』がオススメです。
一気に全てのコードを書こうとしない
ゴールのアウトプットを作る際のコツは、一気に全てのコードを書こうとしないことです。一つのアウトプットは、小さな機能の組み合わせで出来ます。
この小さな機能を小さなゴールとして細分化してき、小さなゴールの一つ一つを達成することで最終的なゴールのアウトプットを仕上げていくイメージでコードを書いていきましょう。
時間確保しスケジュールを立てる
独学では、プログラミングスクールのように時間が決まっておらず、カリキュラムが用意されていないため、学習を継続させるためには時間の確保とスケジュールを立てることが重要となります。
時間の確保ですが、毎日必ず割り当てられる時間を決めましょう。プログラミング学習は何百時間もかかる長期戦になるので、勉強する仕組みを生活の中に組み込んでコツコツ進めることが効率的となります。朝起きた後や、仕事終わりの1時間でも良いので、無理のない時間で確実に出来るように時間を確保しましょう。
また、1日の中で確保した時間の中で小さなゴールを達成できるようにスケジュールを立てましょう。例えば、Webサービスを作成することをゴールとしていのならば、『ログインページのHTMLを書く』や『一つの関数を作成する』ぐらい小さな内容で良いです。小さなゴールを設定することで毎日達成感を得る上に、着実に最終ゴールに近づくことが出来るでしょう。
学習状況を発信してモチベーションを維持する
独学では学習するモチベーションを継続させることが大事になりますが、オススメの方法は学習状況を発信することです。発信する媒体は、ブログやSNS、何でも構いませんが、他の人からフィードバックを受けやすい媒体を選ぶことがオススメです。何もない方は、twitterがオススメですので、まずアカウントを作ってみてツイートしてみてください。いいねや返信をもらうと、日々のモチベーションの継続に繋がります。モチベーションを継続させるために、学習した内容は他の人に発信することを心がけ、発信する時間も十分に確保しましょう。
独学にオススメのプログラミング言語
学習する言語は、目標を設定し作りたいものが決まったら選びましょう。ここでは、初心者でも比較的簡単に学習できる言語について紹介します。
- Python
- Ruby
- PHP
- HTML & CSS
- JavaScript
Python
Pythonは機械学習やAIを活用したアプリケーションの開発やWebサービスの開発に適しているプログラミング言語です。少ないコードで簡潔にプログラムを書くことができるため、初心者でも簡単に学習することが出来ます。また、専門的なライブラリが豊富にあるため色々なことが出来ます。そのため、どんな制作物を作る場合でも、とりあえず選んでおいて間違いない言語です。
Ruby
RubyはWebアプリケーションフレームワークであるRuby on Railsがあり、Webサービスの開発でよく使われている言語です。Ruby on Railsの特徴として、短期間・低コストでWEBアプリの機能開発が可能であり、学習難易度が低いため初心者でも簡単に学べる言語となっています。また、多くの企業で採用されており、転職やフリーランス、副業の案件数が多いのも特徴なので、エンジニアとして働き始めたい方にはオススメの言語です。
PHP
PHPも主にWebサービス開発で使われており、WEBサイト制作に必須の言語・HTMLをコード中に埋め込んでWebアプリケーションを作成できることが特徴の言語です。こちらも、学習難易度が低いため初心者でも簡単に学べる言語です。また、ブログなどを作る際に最も使われているコンテンツマネジメントシステム・WordPressもPHPで開発されたシステムです。ブログ作成やWordPressのカスタマイズなどが目的の場合はPHPを選びましょう。
HTML & CSS
HTMLはWebページを作成するための言語、CSSとはWebページの文字の色や大きさ、背景、配置といったスタイル(見た目)を設定する言語です。これらは厳密にはプログラミング言語というわけではありませんが、Webページを作成するためには絶対に避け通れない言語となっています。難易度的にも簡単ですので、Webページを作成する方は必ずHTMLとCSSを学習しましょう。
JavaScript
JavaScriptは、クリックした際の動作をつけたり、文字や画像やの表示・非表示を切り替えたり、動画を再生したりと、Webページ上で動作を出来るようにするためのプログラミング言語です。他のプログラミング言語で「Java」という言語がありますがこれとは全く異なる言語です。JavaScriptは使用している人の母数が多いためインターネット上にも情報も多く出回っており、初心者の方でも学習しやすい言語です。Webサイトに動きのある機能を持たせたいという方は、JavaScriptを学びましょう。
さいごに
これで、独学でも挫折しないためのプログラミング勉強法と5つのコツについての紹介を終わります。
プログラミングを独学する上でゴールを決めることやスケジュール立てることが重要となりますが、これらを管理する上でタスク管理ツールを活用することが有効となります。そして、学習用のタスク管理ツールとして、私が運営するアプリケーション『Goal-Path』をおすすめします。
Goal-Pathをおすすめするポイント
1.やること、スケジュールを見える化
ガントチャートとToDoボードによって小さなゴールとやるべきことがひと目で分かります。
2.自動でスケジュール作成
スケジュール作成や日程調整を自動化することで時間を削減します。
3.タスク完了時のSNS投稿機能
タスク完了時に、その内容をSNSに投稿することができ、モチベーションを継続できます。
これらの機能が無料で使用できますので興味がある方はぜひ以下のリンクからご利用してみてください。
また、Goal-Pathは成功したスケジュールを他の誰かに販売できるプラットフォームとなっています。
私がWebアプリケーションを作成するまでに学んだprogateでの学習スケジュールを下記にて紹介しておりますので、興味のある方はぜひご利用ください。
また、実際にWebアプリケーションを作成する手順についても下記にて紹介しておりますので、Webアプリを学習のゴールにしたい方はこちらも合わせてぜひご覧ください!
コメント