当ページでは、プログラミングは独学で習得可能なのか?スクールに通うべきなのか?論に決着を付ける内容となっています。
また、独学で活用すべきサイトとして、ハーバード大学の教授が行っているプログラミング講座を無料で視聴できる有益すぎるサービスもご紹介しています。
しかも、この講座はプログラミング初学者の大学生に向けて行っているので、誰でも理解可能なんです…!
それでは、まず「プログラミングは独学で習得なのか?」結論を見ていきたいと思います。
【結論】プログラミング学習は独学とプログラミングスクールどちらがおすすめ?
【結論から申し上げると…】
人生で挫折経験が無く、人に教えられるのが苦手な人
➡プログラミング独学をおすすめします
人生で挫折した経験が数度ある人
➡プログラミングスクールをおすすめします
※理由は…?
プログラミングの独学においては、何よりモチベーション維持やコツコツとした毎日の継続が大変です。
また、挫折経験が少ない人の特徴として、モチベーションに頼らず”毎日の学習を習慣化する”事が得意です。
つまり、挫折経験が多い人は、モチベーション維持が不得意にも関わらず、モチベーションに頼ってしまい挫折する傾向があります。
よって、当ページでは主に挫折経験があまり無く、継続が得意な方向けに独学法を解説していくことになりそうですが…
とは言え、人生で挫折経験が多い方の中にも「どうしてもプログラミングを独学で習得したいんだ!」という方がいるのも承知しております。
そんな方にとっても有益な情報をお届けできるよう「挫折しないための秘訣」「そもそもプログラミングの独学は何から始めれば効率がいいのか?」「独学で活用すべき無料サイト」といった誰もが役立つ内容もまとめています。
ちなみに「プログラミングは独学で十分」というのは本当だった!?
今や無料でプログラミングスキルを学べるオンライン学習サイトが数多くあるため、プログラミングは独学でも十分習得できるスキルです。
独学で取り組むということは、学習していて分からない疑問点やエラーの解決法を自分で調べなければいけません。でもこの壁はエンジニアとして仕事を始めた時にも直面します。独学の時点で自分で調べて解決する力を養うことができれば、プログラミングの仕事を始めた時にも重宝される力です。
無料の学習サイトだけで分からないことは、Youtubeで解説動画を探したり、適宜必要なテキストを購入してみることもできます。プログラミングスクールに入学しなくてもスキルを学習できる手段はあるので、自分で準備するのは学習に適した環境だけです。
後は無理なく学習を続けられるコンテンツと学びたいプログラミング言語を選びます。ここでレベルを上げず難易度の低いものから学習してみれば、独学で挫折するリスクが小さいでしょう。
プログラミング独学でおすすめできるプログラミング言語は?
独学でおすすめできるプログラミング言語は以下の5つです。
- HTML/CSS
理由:Webサイトの開発に欠かせない基本言語。HTMLタグで画像や表の構造を作り、CSSで背景や構成要素の配置を装飾します。プログラミング言語の中でも難易度が低く独学でも習得しやすいです。 - Python
理由:統計処理などが得意で、AI開発にも活用される言語です。GoogleやYoutubeもPythonで開発されており、データ分析からアプリ開発まで多様なニーズに対応します。文法はシンプルで読みやすいです。 - PHP
理由:Webサーバー上で動的にデータ管理を行える言語です。データベース言語と相性が良く、ユーザーが入力した値を反映したWebページを生成可能。文法は比較的にシンプルで覚えやすいです。 - Ruby
理由:日本人が開発した言語なので、日本語のテキストが多く初心者も学びやすいです。フレームワークRailsを使えば、短期間で効率よくアプリを開発できます。とくにスタートアップ企業のニーズが高いです。 - JavaScript
理由:Webシステムに動きをつけられる人気の言語で、アプリからサイトの開発において幅広く需要があります。ポップアップウィンドウを表示できたり、画像をスライドするといったアクションを実装できます。
【統計】プログラミング言語によって独学難易度が変わる
プログラミング言語はたくさんありますが、どれを学ぶのかで独学難易度が変わります。
【低】独学難易度 | 【高】独学難易度 |
---|---|
・HTML/CSS ・Javacript | ・Python ・PHP ・Ruby |
基本だけ学ぶであれば、【高】独学難易度にピックアップしているプログラミング言語でも問題ないです。
しかし、【高】独学難易度のプログラミング言語で具体的な実装で稼げるくらいのレベルまでスキルを上げるには独学だと難しい可能性も。
というのは、PythonやPHPなどは環境構築やデータベースなどコーディング以外にも覚えることが多いからです。
一方、WebサイトのデザインなどHTML/cssであれば簡単な構文を学ぶのみ。
でも時間をかければどのプログラミング言語でも独学でいける
Pythonなど【高】独学難易度だと独学が難しいと言いました。
しかし、時間をかけられるのなら独学でも高度なスキルまで学べます。
というのは、習得 = 時間をかけて学ぶ = スキルが身につくからです。
自転車に乗る、日本語を喋るスキルは今は当たり前かもしれません。しかし、小さいことにそれを習得する時期があったはずです。
自転車に乗る、日本語を喋る、プログラミング。いずれもスキルで一括りにできます。そしてそれを習得するには、毎日少しずつでも学べば良いです。
そもそもプログラミングは無料かつ独学で学習可能なのか?
プログラミング言語は無料かつ独学での学習が可能です。しかし、お金をかけずにひとりで学習を進めると、コストがかかっていない分やる気が維持しづらいのが現実…。
学習の途中で理解ができないところがあると、その時点で諦めてしまうケースも珍しくありません。何と言っても、無料なので途中で諦めてもノーリスクなんです。挫折せずに言語を習得するモチベーションを維持できれば、無料でも独学で学習できます。
ぼんやりとプログラミングスキルを身に着けようという意識だけで勉強をしても、モチベーションを高く維持できないでしょう。プログラミング言語別にできるようになることや、気になる会社で行ってる事業を調べるなどして、プログラミングスキルを習得した後の具体的な目標を持っておけば、目標を達成するための過程として根気よく独学の学習を続けられるでしょう。
プログラミングの独学で挫折しないための秘訣
とは言え、独学をしているとどうしても勉強が継続できず挫折してしまうのは否めません。そこで提唱したいのが改良版の「If-Thenプランニング」です。
コンスタンツ大学が2015年に発表した研究論文によれば、「XX(If)したら、YY(Then)する」というIf-Thenプランニングにプラスで障害要素を想定して目標を設定すると、障害を乗り越えるアクションがトリガーとなって目標達成に向けたアクションを起こせることが分かりました。
Thenのアクションが「プログラミングを勉強する」とすると、Ifのアクションは自分が日常生活で行うアクションから選んでみましょう。
また、プログラミング勉強が億劫になるという障害が発生した時に乗り越えるアクションにします。たとえばコーヒーを飲むことをIfのアクションにしてしまうと、億劫な気持ちを乗り越えられるかは微妙です(個人差はあります)。
しかしパソコンを起動することをアクションにしてしまえば、プログラミングの勉強をしようという状況になりやすいです。
プログラミングを独学で学ぶメリット・デメリット
プログラミングを独学で習得するにあたって、次のようなメリット・デメリットがあります。詳しく解説しているので、参考にしてください。
プログラミングを独学する上でのメリット
- コストを最小限に抑えられる
- 問題解決力が身につきやすい
- 学習時に場所や時間の制限がない
プログラミングスクールに入らず独学で学習すれば、受講料はかかりません。必要なのは教材費くらいです。プログラミングスクールによっては数十万円かかる受講料が抑えられるのは独学の大きなメリットと言えます。
また、学習を進めるうえで疑問点があったら自分で調べる力が求められます。問題解決能力はエンジニアとして仕事をするうえで必要な力なので、独学であれば自ずと身についてくことが期待できるでしょう。
オンライン学習サイトであれば、自宅でない場所でも気軽に勉強をスタートできます。レッスンや講師との面談といった、決まったスケジュールもありません。仕事をしながらでもスキマ時間や深夜・早朝の時間帯で学習できる環境というのは独学ならではの強みとなります。
独学は自由がききやすいというのがメリットです。言語は多数ありますが、どの言語から学んでいくかも自由に決めることができます。
【逆に】どんなデメリットがあるのか…?
- モチベーションを維持しづらい環境
- 習得するまで時間がかかりやすい
- 自己評価に頼ってしまう
自由がきく環境だからこそ、逆にモチベーションを維持しづらい環境となってしまうのが独学のデメリットです。具体的な目標もないまま勉強を進めてしまうと、達成感を実感できないままモチベーションが落ちてしまいます。ほかの受講生や講師という存在もいないため、闇雲にひとりで勉強をする環境では学習意欲が高まるきっかけが生まれにくいです。
また、独学で学習をするということは具体的な勉強期間がないこと。分からないことを都度調べて解決するまでには時間がかかってしまいます。最終的にスキルを習得するまではスクールに通う人よりも長期間となるでしょう。
スキルを習得したと実感できるまで時間がかかるだけでなく、習得の可否はあくまでも自己評価になってしまうというデメリットもあります。実際に作成したサイトやアプリケーションを試してみて満足感があっても、見落としたところで上手く実装できていなかったケースも起き得ます。
【ステップ別】プログラミングの独学は何から始めればいい?
初心者がいきなり一人でプログラミングを学び始めるのは修羅の道とも言えます…。
なので、ある程度の目安としてステップ別に独学でのプログラミング学習方法を解説しておきます。
プログラミングの独学開始前に知っておくべきこと
プログラミングの独学を始める前に、どんなプログラミング言語があり、どういったサイトやサービスで使われているのか、言語ごとのニーズを調べてみましょう。
ニーズのある言語であれば習得後に就職や転職でアピールポイントに使えますし、副業やフリーランスでも案件を多く獲得できます。IT業界の移り変わりは早いため、数年前に需要の高かった言語を時間をかけて習得しても、その頃には別の言語の方が需要が高まっている可能性もあるのです。
そして学習を始めるうえで適切なインターネット環境や開発環境を整えなければいけません。プログラミングの知識がゼロという人は、どんな環境を構築するべきかを事前に知ったうえで準備を行うと、スムーズに独学の学習をスタートできます。
プログラミングスキルを学びやすい環境に自ら調べて準備していくことも、自走力を養うきっかけとなるでしょう。
ステップ①「習得しやすい」かつ「ニーズが有る」プログラミング言語を選ぶ
自分がスキルを習得して作ってみたいサービスと、それに合わせたプログラミング言語を選びましょう。言語は多数存在するので、習得しやすく難易度が低いもの・ニーズがあるという2つの軸でどの言語にするか選んでみてください。
たとえばアプリを作りたいならJavaやKotlin、ゲームを作りたいならUnityやUnreal Engineなど。紹介したもの以外にもたくさんの言語があるので、まずは作りたいものから絞っていくと選びやすいです。
ステップ②独学で勉強する際のツール(学習サイトやアプリ)を比較する
学習するプログラミング言語を決めた後は、学習するコンテンツを決めます。しかし今や無料で学習できるサイトやアプリは1つや2つだけではありません。それぞれのコンテンツの特徴や学習環境に適しているかなど、比較してから決めることをおすすめします。
オンライン上でプログラミングを学べる仮想空間があるサイトや、自分の開発環境で実践ができる動画教材もあります。スキマ時間を活用したい場合は、スマホからも学習ができるサービスかチェックしておきましょう。
ステップ③プログラミング言語の文法や使い方を学ぶ
学習したい言語が決まりコンテンツも決まった後は、簡単に基礎知識だけでも学んでみましょう。基礎知識となるのは文法やループ処理、変数・条件分岐といった内容です。インプットするだけでは理解ができないという場合は書いてみながら学ぶこともおすすめです。
言語だけでなく、便利ツールを提供するフレームワークも一緒に学習してみましょう。たとえばRubyを学習する場合は、アプリ開発に活用できるRuby on Railsも一緒に学習するというイメージです。
ステップ④Webサイトを模写するなどしてコードを書いてみる
基礎知識が身についてきたら、実際に使われているWebサイトをエディタで模写してみましょう。HTMLやCSSという学んだ言語のコード入力が分かりやすく、お手本が既にあるので「何が違うのか」をすぐに判断できます。
いろんなWebサイトを模写していくことで達成感や楽しさも実感できますし、効率よくコーディングの力をつけることが可能です。
模写の時点はソースコードを見ずにサイトだけを見て行いますが、まだコードを覚えられてない場合は写経としてコードを書き写す作業も繰り返しやってみてください。
ステップ⑤オリジナルのサービスを作ってみる
写経や模写で自分の力でサイトを作れることを体感した後は、既存のサービスではなくオリジナルのサービスを作ってみましょう。実際にサービス開発に携わることでプログラミングスキルが身についていき、完成度の高い物はポートフォリオにすることもできます。
学習した知識を活かせる・無理のないサービスを作れるよう、事前知識はしっかり入れておきましょう。どうしても難しい場合は一部を模写するなどして、モチベーションを下げずにアウトプットしていくことが重要です。
プログラミング学習の独学で活用すべきサイト3選と選び方
【独学サイトの選び方】
- 自分に合った学習スタイルを提供しているか
➡動画形式やスライド形式は自分のペースで短時間でも進めやすく、ゲーム形式は楽しみながら学習を続けられます。 - 初心者向けから上級者向けまで難易度が分けられているか
➡分かりやすい解説がないと初心者は付いていけませんし、スキルアップを狙っているのに基礎の内容しか学べないのでは物足りません。 - 学びたい言語や自分の学習環境が対応しているか
➡自分が学習すると決めた言語が対応しているか、自分で開発環境を構築できなくても学習できるのかなどチェックが必要です。
上記のようなポイントを元に、当サイト独自の視点でプログラミングの独学に活用すべきサイトを3つ厳選しました。
CODEPREP
CODEPREPは、すべての学習スライドが永久無料で利用できるCODEPREPでは、トレンドになっている技術から実践的に学べるものまで、初心者でも実際に作りながら習得できるコンテンツを100冊以上提供しています。
スライドはブックとして言語やツール別にまとまっていて、1冊10分とテンポよく学習可能。直感的にプログラムの動きを理解し、穴埋め式に取り組みながら進めます。自由編集モードに切り替えることで完全フリーでコードを入力できます。
挫折しそうな時はディスカッションボードでほかのユーザーと交流できるため、分からないことも気兼ねなく質問できる環境です。1日10分で習得できるのであれば、モチベーションも落ちることなくコツコツと学習を続けやすいです。
CS50 for Japanese
CS50 for Japaneseは、米ハーバード大学のコンピュータサイエンス入門講座「CS50」を日本語翻訳したコンテンツを無料公開しているサイトです。言語はC、Python、SQL、JavaScript、HTML/CSSと、初心者で習得しておきたい言語ばかり取り扱っています。
取り組む問題集は金融やゲーム、科学捜査など幅広い領域をテーマに9つのセットが提供されます。最終プロジェクトで高スコアを獲得すると修了証も授与されるので、達成したい目標として設定すると勉強の励みになります。
ハーバードの講座ということですが、スケジュールは自由。自分のペースで無理なく進められます。学習スタイルはYoutube上の映像講義で、機械翻訳ではない日本語字幕での翻訳化が順次進行しているので安心して学習が可能です。
Progate
Progateはイラスト中心のスライド学習を採用し、実際にプロダクトを作りながら学べます。ブラウザ上でコードを書けるので開発環境が整っていない人でもプログラミングに触れられます。
提供されるレッスンは段階を踏んで理解しやすいよう、最適な順番を提案してくれます。無料プランは初歩的なレッスンを一部利用することができ、プラスプランは月額1,078円ですべてのレッスンを利用できます。
初級から中級の基本知識を学ぶことができるprogateは、サイトだけでなくアプリ上でも学習が可能。スマホやタブレットの画面上にスライドとキーボードを用意してくれるので、スキマ時間にもゲーム感覚で学習を進められます。
【最後に】プログラミングを独学で習得して稼ぐまでのステップを解説
まずは初心者でも達成できるラインとして、月5万円以上の収益を暫定的なゴールとして設定しましょう。
月5万円は仕事をしている人でも副業として達成可能な金額です。もちろん達成までに時間がかかりますが、ゴールを達成するまでのステップを4つ紹介します。具体的なアプローチが分からない人は参考にしてみてください。
ステップ①ポートフォリオを制作する
Webサイトの模写や学習サイトの課題でコーディングが分かってきたら、オリジナルのサイトやアプリを制作してポートフォリオを作ってみましょう。自分が発揮できるスキルを最大限残したポートフォリオであれば、「自分はここまで出来ますよ」と応募先の企業にアピールできます。
自分の名刺代わりに見てもらう作品になるので、まんべんなく自分のスキルを伝えられるようなポートフォリオにしましょう。
とはいえ、アピールしたいものを詰め込んだばかりでは分かりづらい内容に。デザインや見やすさにもしっかりとこだわり、実際にユーザーが利用しやすいと感じてもらえるような作品を作る心がけが重要です。
ステップ②クラウドソーシングで案件を受注する
完成したポートフォリオを基に案件を受注していきましょう。案件はクラウドソーシングと呼ばれるマッチングサービスだと探しやすいです。
クラウドワークスやランサーズのような大手サービスだと、案件を依頼するクライアントも多く登録しているので受注先が見つかりやすいでしょう。
クライアントの応募内容を確認することで、実際に求められるスキルやできると良いことが分かります。ポートフォリオのリンクや資料を添付して応募してみましょう。
クラウドソーシングのサイトに登録しておけば、応募内容に沿って応募をするだけ。具体的な履歴書や経歴を直接提示する場面も少ないです。
ステップ③実際の受注で課題点を振り返り復習する
実際に受注して仕事を行うと、学習段階では気づけなかったところでニガテ意識や力不足を感じることがあります。また、クライアントと交渉するやり取りや納品の流れも最初の頃は手間取るものです。
これらの一連の流れを経験した後はしっかりと仕事内容を振り返り、課題点を見つけて早急に復習をしておきましょう。分からないことやニガテな部分を放置するのではなく復習しておくことで、だんだんとスキルが身についていきますよ。
ステップ④受注実績を積み重ねる
慣れてきたらクラウドソーシングを通して次々と受注実績を積み上げていきましょう。復習をしていくことで実力を磨き上げていけば、どんどんクライアントからの評価も上がります。
そして意欲的に新たな言語やツールを学んでいき、更に力をつけていけば、最初の頃よりももっとレベルの高いポートフォリオを作成できるでしょう。
実際に納品した作品をポートフォリオとして扱うことができれば、何よりもアピールポイントにできます。
このステップで独学で習得したプログラミングスキルを活かしていけば、月5万円の報酬を稼ぐゴールは達成できるでしょう。実力があがれば報酬単価もアップし、更に上の報酬額を目標にできます。