情報のデジタル化が進み、何かと重宝されるプログラミングスキル。
小学校や中学校でも必修化が始まるなど、必須のスキルになりつつあります。
学生のうちに習得する方や転職を目指して勉強を始める方も増えています。
しかし、プログラミングは難易度が高く、マスターするのに時間も費用もかかることで知られています。
費用を抑えるために独学での習得を目指すとなると、90%以上が挫折すると言われるほど。
「プログラミングを始めたいが独学だと続けられるかな」と不安を抱えている方も多いのではないでしょうか。
この記事では独学でプログラミングの学習を始める方向けに以下の内容をご紹介します。
- プログラミング独学のメリット
- 独学を始める前の準備
- プログラミングの勉強法7ステップ
- 独学で挫折しそうになったら
- プログラミングの独学におすすめの本7選
- 無料で試せるプログラミングのサイト2選
これさえ読めば、独学でも迷わずにプログラミングの勉強を始められます。ぜひ最後までチェックしてください。
プログラミングとは
教育現場で必修化するプログラミングですが、プログラミングが何を指すのかあまり理解していない方も多いのではないでしょうか。
端的にいうと、プログラミングとは「PCにさせる処理を順番に書き出した指示」のことです。
プログラミング=「プログラム」を作る作業を指します。「プログラム」という言葉は聞き覚えがあるでしょう。
例えば、運動会などでも「プログラム」がありますが、そこには1番から順にやるべきことを書き出してあります。
そうすると運動会に参加する人みんなが理解できますよね。
同じことをコンピュータにするのが「プログラミング」です。
コンピュータにさせることを順番に書き出すと、コンピュータがその通り実行してくれる仕組みになっています。
人間に命令する場合との違いは言語です。コンピュータが読み取りやすくするため、「プログラミング言語」という専門言語を利用して命令していきます。
つまり、プログラミングを学ぶには「プログラミング言語」と「言語の組み立て方」の両方が必要になります。
プログラミング独学のメリット
ではプログラミングを独学するメリットとは何でしょうか。冒頭にも説明した通り、プログラミングの独学は「挫折しやすい」ことで知られています。
当たり前のことですが、挫折しまってはプログラミングを武器として転職することもできません。
学生時代から独学に慣れておらず、自分でモチベを保って勉強できない方には独学は難しいでしょう。
そんな中でもプログラミングを独学で始める方には3つのメリットがあります。
- 費用が安く済む
- 自力で学ぶ能力が身に付く
- 自分のペースで進められる
誰でも簡単にできるものとは言えませんが、「絶対やり切る」強い意志があればきっと大丈夫です。
プログラミングの独学とスクール通学の違い
プログラミングを学ぶ上で独学とスクール通学はどちらを選べばいいのでしょうか。
両者の違いについてまとめました。
メリット | デメリット | |
独学 | 費用が安く済む 自力で学ぶ能力が身に付く 自分のペースで進められる | モチベーションを維持するのが難しい 質問や相談する相手がいない 就職や転職も自力 |
スクール | カリキュラムが組まれている モチベーションが維持できる わからないことをすぐに聞ける 就職や転職サポートがある場合も | 費用が高い 定期的・集中的に時間をとる必要がある スクール任せの勉強になってしまうことも |
以上を見てもわかるように、生半可な気持ちで始めようと思っているのであれば「独学」はおすすめできません。
多めに費用を払ってでもスクールに通い、整った環境で勉強する方がいいでしょう。
独学は費用を安く抑えたい方、自分のペースで学びたい方向けです。
一方でスクールはプログラミング以外のことを考えず勉強に集中したい方、モチベーションの維持に不安がある方に向いています。
初心者が独学でプログラミングを学べる?
はたして初心者が独学でプログラミングをマスターすることは可能でしょうか。
最近は初心者向けの参考書やwebサイトが多いので、勉強を進める上での情報収集には困らなくなっています。
勉強の順番を間違えないようにすれば独学でプログラミングを学ぶことはできます。
きちんと基本を身につけ、スキルを磨くよう、最初にロードマップを描いてから始めていきましょう。
次項からはプログラミングを始める前の準備から勉強法、最終的にエンジニアを目指すためのルートを順を追って説明します。最後までついてきてくださいね。
プログラミングの独学を始める前の準備
プログラミングの独学を決めたなら、まずは事前に準備が必要です。準備するのは以下の4つ。
- プログラミングの独学にかかる期間を知る
- 期間や予算を設定する
- 目的を決める
- 必要なものを揃える
少々ややこしい内容もありますが、「急がば回れ」です。基礎からきちんと理解していきましょう。
以下、ひとつずつ解説します。
プログラミングの独学にかかる期間を知る
はじめにプログラミングの独学にかかる期間を把握しましょう。
独学にしてもスクールに通うにしても、勉強に必要な時間はそうは変わりません。やった分しかスキルは伸びないからです。
そのため、アプリやwebサイトを作れるようになるまでにどのくらいの時間がかかるのかを理解して始めることが肝心です。
初心者が自力でアプリを開発できるようになるまでには300時間が目安だと言われてます。
ですので、まずは300時間の学習を目標に進めましょう。
大まかな目安ですが、プログラミングができるようになる時間は以下の通り。
- 簡単な電卓アプリ・・・12時間〜
- ToDoアプリ・・・36時間〜
- Web掲示板・・・240時間〜
ここから汎用的なプログラミングをできるようになるためには3000時間が必要です。
エンジニアの転職を目指すとなると、さらに実務経験も求められます。
かなりの時間をプログラミングの勉強と実務に費やすことになるので、独学で思い悩んでいる人は実際に仕事を受けながら学ぶことをおすすめします。
期間や予算を設定する
独学にかかる目安の時間がわかったら、実際にあなたの生活スタイルに当てはめて考えてみましょう。
仕事をしながらゆっくりと勉強を進めるなら、1日3時間として100日必要です。
1ヶ月で集中的に学びたいのであれば1日10時間の学習をしなければなりません。
あまりのんびりと進めてしまうと、最初に勉強したことを忘れてしまうことにもなりかねませんので、ゆっくり進めるとしても1日2〜3時間程度の時間をとる方が効率も良いでしょう。
同時に予算も設定します。独学なら費用が抑えられるとは言え、一通りの参考書を揃えたり、練習用のWebサイトを有料利用したりするのにはある程度の予算を用意する必要があります。
初期投資にはあまり節約せず、きちんと評価の良い教材を揃えることをおすすめします。
今後、エンジニアとして活躍すれば回収できますので、まずはスキルを磨くことを考えましょう。
これはどの分野にも言えますが、お金をかけると勉強にもより精が出ます。使った分の費用の元を取ろうとするからです。
「プログラミングをマスターするしかない!」というところまで自分を追い込むことも、時には必要です。それがモチベーションに繋がりますよ。
目的を決める
ここでようやく目的(ゴール)を設定します。作りたいものを決めずにプログラミングを始めることは出口のない迷路に迷い込むことと同義です。
プログラミングは学べば学ぶほど奥が深くなっていきます。目的がなければ果てしない道のりに挫折してしまうでしょう。
そうなってしまわないように、まずは目的を設定しましょう。「楽しいゲームを作りたい」、「す@ポーツの掲示板を作りたい」など目的は自由です。
プログラミングについてよく知らない場合は、まずプログラミングの全体図を把握できる初心者用の読本を購入することをおすすめします。
プログラミングで何ができるのかを知れば、より明確にゴールを定めることができるでしょう。
ゴールが具体的なほど目的に向けて短期目標を立てるのにも役立ち、学習の効果は上がります。目的を決めるのに悩んでいる方は以下を参考にしてみてください。
プログラミングを学ぶ3つの方向性
プログラミングといっても種類はさまざま。初心者から見ると主に3つの方向性に分かれています。
- アプリ制作
- Web開発
- 統計(AIやデータなど)
それぞれどのような勉強をする必要があるのか、どのような人に向いているのかを表にまとめました。
方向性 | 学習する言語 | 向いている人 |
アプリ制作 | Ruby、Swift、Kotlin | 作ってみたいアプリがある |
Web開発 | HTML、CSS、JavaScript、PHP | デザインが好き、マーケティング力がある |
統計 | Python、C++、Julia | 物事の相関を考えるのが好き |
プログラミングを始める前に大まかな方向性は決めておきましょう。それに沿って学習する言語を選ぶことになります。
フロントエンドとサーバーサイド
独学の難易度はプログラミング言語や開発の対象によって大きく異なります。
特にWeb開発については「フロントエンド」と「サーバーサイド」という2つに分けられます。
のちのち必要になる知識なので、先に整理しておきましょう。
フロントエンド |
|
サーバーサイド |
|
基本的に初心者はフロントエンドを目指して独学を進め、その後必要に応じてサーバーサイドを学ぶという順序が良いでしょう。
必要なものを揃える
ゴールが見えてきたら、必要なものを揃えましょう。最低限はPCとインターネット環境です。
PCは特にこだわりがない場合はMacがおすすめ。初心者でも直感的に操作ができ、アプリ開発ではiOS向けの開発も可能になるからです。
インターネット環境は情報収集やサイト上の演習を行う上で必須です。
接続が遅くてイライラしてしまわないよう、一定以上の接続速度があるところを選びましょう。
まとめると、
プログラミングの独学に必要なもの
- PC・・・Macが好ましい
- インターネット環境・・・高速だとストレスがない
プログラミングの勉強法を7ステップで解説!
ようやくプログラミングの独学を始める用意が整いました。ここからは勉強法を順序立てて説明していきます。
勉強の進め方は以下の7ステップです。
- タイピングを学ぶ
- 言語を選ぶ
- ツールを決める
- 言語を学び始める
- 小さなプログラムから組んでみる
- Linuxを学ぶ
- レベルアップを図る
プログラミングに不安がある方は助走としてプログラミングの全体像を掴む読本から始めても良いでしょう。
STEP1:タイピングを学ぶ
プログラムはコンピュータ上で組むもの。タイピングの速さはシンプルに仕事の速さに直結します。
タッチタイピング(手元を見ずにタイピングすること)ができるのが理想的。
また、毎回モタモタと手元を見ながらプログラミングを進めるとなると、マスターするまでの期間を延びてしまいます。
タイピングに不安がある方は「寿司打」や「皿打」などのタイピングゲームで訓練しておきましょう。タイピングに問題ない方は次に進みます。
STEP2:言語を選ぶ
プログラミング言語にも難易度があります。
初心者がチャレンジするのは簡単な言語が無難。その後、少しずつ難易度を上げていくのが好ましいです。
難易度が低いからといってプログラミングの質が劣るわけではありません。
つまりは言語を扱うことができれば良いので、目的に合わせて慎重に選びましょう。
まずはHTMLとCSSがおすすめ
プログラミングの独学初心者におすすめなのは「HTML」と「CSS」というマークアップ言語です。
プログラミング言語がどのように動くのかを目で見て確認できるので、コンピュータとプログラムの関係を知ることができます。
- HTML・・・Webページの構造や装飾などを決定する(文字の大きさや画像の挿入など)
- CSS・・・Webページのデザインを作る
あまり慎重にならずに実際に動かしながら勉強しましょう。
コードを確認せずに、簡単なWebページを作れるようになればマスターしたと言えます。
主にWebサイトで使用される言語ですが、最近ではWebアプリ制作にも活用できるようになってきており、学んでおけば一石二鳥が狙えます。
目的に合わせて言語を選ぶ
目的ごとに学ぶべき言語は異なってきます。
アプリ開発であればiOS・Androidでも使用言語が変わるので注意しましょう。
ざっくりと目的ごとにおすすめの言語をご紹介すると以下の通り。
- アプリ制作→「Kotlin」、「Java」(Android全般)、「Swift」(iOS向け)
- Web開発→「JavaScript」、「Ruby」、「PHP」
- 統計→「Python」
これらは比較的シンプルで学びやすいプログラミング言語です。
ここで主なプログラミング言語と特徴などを整理しておきましょう。ここから勉強する言語を選びます。
名前 | できること | 特徴 |
Swift(スウィフト) | iOSアプリ制作 | Apple社が開発した自社製品向けの言語。コードの読み書きがしやすく、不具合が発生しづらい。 |
Kotlin(コトリン) | Androidアプリ制作 | Swiftに似た文法でJavaと親和性が高い。 |
Java(ジャバ) | Androidアプリ制作 Webアプリ開発 システム開発 | Webページ制作からアプリ開発まで幅広く利用できる。習得に時間はかかるが、大規模なシステム開発もできる高性能な言語。 |
JavaScript | Web開発 ブラウザゲーム | Web上で画像を動かすなど動的なWebサイト制作に欠かせない言語。HTMLとCSSとの併用が必須。 |
PHP | Webサービス開発 システム開発 | 問い合わせフォームやショッピングカートなどWebサイトを双方向にするために必要。シンプル。 |
Ruby | Web開発 | 日本人が開発した習得しやすい言語。HTMLとRubyを使ってWebアプリを作るフレームワークがある。 |
Python(パイソン) | Webアプリ開発 統計 | AIやデータサイエンスの業務にぴったりの言語。少ないコードで書ける。他言語の応用に向かない。 |
STEP3:ツールを決める
選んだプログラミング言語をコンピュータ上で動かすためには「IDE」と呼ばれるツールが便利です。
プログラムの実行や修正ができる優れもので、必要に応じて活用できます。
目的に合わせてツールを選ぶ
ツールもプログラミング言語と同じように目的に合わせて選びます。
プログラミング初心者におすすめのIDEは以下の4つです。
- iOSアプリ→「Xcode」
- Androidアプリ→「Android Studio」
- Web開発→テキストエディタとWebブラウザ(Chromeがおすすめ)
- Webアプリ→「Ruby on Rails」
STEP4:言語を学び始める
いよいよプログラミング言語の勉強スタートです。
気になる言語の参考書を購入し、一通り本を読んでなんとなく理解ができたら、実践あるのみです。
動きがよく分からなくても、ひとまずコードを書いてみて正常に実行できるか試してみるのが大切。
コードをひとつ覚えるごとに書いて練習していきましょう。最初から全てを理解する必要はありません。「なんとなく」コードの動きと書き方がわかればOKです。
ひとまず参考書を一冊通してみて、大枠を理解することを目標にしましょう。
理解が足りない場合は何度も繰り返して体で覚えていけば大丈夫です。
STEP5:小さなプログラムから組んでみる
プログラミング言語をある程度理解したら、小さなプログラムから組み始めましょう。すぐに完成できるようなレベルで構いません。
ここで大切なのは成功体験を積むことです。「できた!」という達成感と喜びが次の学習に向かうためのモチベーションになります。
できることを組み合わせて簡単なプログラミングをどんどん作りましょう。
STEP6:Linuxを学ぶ
簡単なプログラムを組めるようになったら「Linux」を学ぶことをおすすめします。
LinuxはOSのひとつ。無料で改変可能なオープンソースプログラムのため、中身を書き換えながら OSの基礎を体当たりで学ぶことができます。
今後エンジニアとして活躍したいのであれば身につけておいて損はありません。
STEP7:レベルアップを図る
なんとなく基礎を理解して、なんとなくプログラムを組めるようになったら、あとは勉強や実践を重ねてレベルアップを図るだけ。
レベルアップの方法は人それぞれだが、ここでおすすめの方法を4つ紹介します。
- さらに基礎を理解する
- 組んだプログラミングを公開する
- ポートフォリオを作成する
- 案件を受注する
さらに基礎を理解する
エンジニアとしてIT業界を渡り歩くには途方もない知識量が必要になります。
「何となく理解した」時期だからこそ、さらに知識の底上げが大切です。
もう一度プログラミングの大枠を学び直し、理解が足りない部分やより応用的な部分を勉強することをおすすめします。
それはきっと今後のエンジニア人生の糧になります。
組んだプログラミングを公開する
プログラミング言語を扱えるようになり始めたら、一度大きなプログラムを完成させてみましょう。
できる範囲のコードを駆使して、頭を捻りながら完成させる経験があなたを一段階成長させてくれます。
もし公開しても問題のない内容なら、「GitHub」などのソースコード管理サービスを利用して公開してみると良いでしょう。
「GitHub」はエンジニア転職のための実績作りとしても有効です。
ポートフォリオを作成する
フリーランスとして働くにしても、転職・就職するにしても、自分の作品を持っておくことは必須。
ポートフォリオは自分のプログラミングスキルを証明するための大切な資料です。
これぞ!という作品を作っておけば応募や面接で自信を持ってアピールできます。
作品はWebページでもアプリでもなんでもOK!一つを完成させる能力があることも立派なアピールポイントになります。
案件を受注する
インプットした知識はアウトプットしないと身につきません。特にプログラミングは手を動かしただけ身に付くスキルです。
コードを動かす練習を重ねるのもいいですが、ある程度できるようになったら、クラウドソーシングを通して案件を受注してみるのも手です。
「クラウドワークス」や「ランサーズ」がおすすめ。
まずは単価が低くて簡単な案件からはじめて実績を積みましょう。スキルが上がれば、その分案件の難易度や単価も上げていくことができます。
お金が絡む契約なのでもちろん責任は伴いますが、自分の得た知識やスキルを活かす場としては最適です。
最終的にエンジニアを目指すなら
エンジニアとして転職・就職を目指すのであれば「実績」を作っておきましょう。
インターネット上にWebサービスやアプリを公開し、実際にユーザーに評価してもらうのが手っ取り早いです。「GitHub」でコードを公開する方法でも可。
どんな大作でも世に出さなければ腐っていくだけ。多少不出来でも怖がらず公開してみましょう。
フリーランスを目指すなら「人脈」が大切。顧客との人脈もそうですが、同業者とも繋がっておくことをおすすめします。
勉強会はスキルの底上げと横のつながりの構築に役立ちます。積極的に参加していきましょう。
プログラミングの独学で挫折しそうになったら
プログラミングの意欲もある。勉強の順番も間違っていない。それでも挫折しそうになることはあります。
プログラミングをひとりでやり続けるのは辛いものです。
分からないことを聞く相手がいないことやモチベーションが続かないことも代表的な挫折の原因として挙げられます。
挫折しそうになったらぜひ以下のことを試してみてください。
- プログラミングの独学コミュニティなどで仲間を作る
- 勉強会に参加してプロのエンジニアに相談する
- SNSやブログで勉強内容をアウトプットする
独学は孤独を感じがちなので、なるべく意識を外に向けてみることが肝心です。
勉強仲間や尊敬するエンジニア、応援してくれる人の存在がモチベーションにつながります。
プログラミングの独学におすすめの本7選
ここからはプログラミングの独学におすすめの本をご紹介します。
初心者でもわかりやすい内容の本を集めました。最終的には本をめくってみて、とっかかりやすいものを選びましょう。
Webとプログラミングのきほんのきほん
プログラミング独学の準備段階にぴったりなのが「Webとプログラミングのきほんのきほん」です。
どのプログラミング言語にも共通する基礎部分をメインに解説。個別のプログラミング言語に入る前に、全体の枠組みを理解することができます。
プログラムの動き方やインターネットの仕組みも網羅しているので、「なんとなくわかってた」ことを「しっかり理解」するのに役立ちます。
おすすめポイントは以下の通りです。
- プログラミングの全体図を把握できる
- 独学を始める前の準備に最適
スラスラわかるHTML&CSSのきほん
プログラミング言語の入口として学ぶ「HTML」と「CSS」。
「スラスラわかるHTML&CSSのきほん」では小さなサイトを作りながらHTMLとCSSの基本を網羅できます。
ゼロからサイト作りの基本を学べるので全くの初心者でも安心です。
見落としがちなレスポンシブデザインにも対応しており、作ったWebサイトをスマホやタブレットに最適化できます。
おすすめポイントは以下の通りです。
- HTMLとCSSの基本はこの一冊でOK
- Webサイトを作りながら実践的に学べる
さわって学ぶ Linux入門テキスト
エンジニアとしての高みを目指すなら「Linux」の理解が必須。
一通り学びたい初心者には「さわって学ぶ Linux入門テキスト」がおすすめです。
つまずきやすいポイントも丁寧な解説でついていくことができます。
手順に沿って学習環境を構築し、実際にコマンドを叩きながら身につけられます。
おすすめポイントは以下の通りです。
- 「Linux」の基礎が理解できる
- コマンドを叩きながら学習を進められる
Webエンジニアの教科書
「Webエンジニアの教科書」はWebエンジニアを目指すなら読んでおきたい一冊。
「Ruby on Rails」などのツールの使い方や便利なサービスなどが詳しく載っています。
プログラミングの勉強や実践で使える技術を一通り頭に入れることができるので、少しプログラミングをかじったタイミングで読むと良いでしょう。
おすすめポイントは以下の通りです。
- プログラミングの勉強や実践で使えるサービスを知ることができる
リーダブルコード―より良いコードを書くためのシンプルで実践的なテクニック
言語に関わらず、良いコードの書き方を教えてくれる「リーダブルコード―より良いコードを書くためのシンプルで実践的なテクニック」。
一通りコードを学んでみたものの、読みやすいコードとわかりにくいコードの違いが分からない方向けです。
独学で身につけた知識は他人が理解できないこともしばしばあります。そんな時に軌道修正してくれる一冊です。
おすすめポイントは以下の通りです。
- 言語問わず綺麗なコードの書き方がわかる
独学プログラマーPython言語の基本から仕事のやり方まで
「独学プログラマーPython言語の基本から仕事のやり方まで」はPythonに興味のある方向けの基本書です。
「Python」を学びながら、プログラミング全体の枠組みを理解できます。
おすすめポイントは以下の通りです。
- Pythonに興味がある方向け
- プログラミング言語だけでなくプログラミング全体を知ることができる
退屈なことはPythonにやらせよう
「退屈なことはPythonにやらせよう」はプログラムがどう働くのかを知ることができる初心者向けの一冊。
学校や職場でもよく使うGmailやスプレッドシートなどの操作にプログラミングがどう生きてくるのかなどを学ぶことができます。
Pythonを通しての説明ですが、どの言語にも当てはまる内容です。
おすすめポイントは以下の通りです。
- プログラミングで日常業務の何が変わるのかを学べる
無料で試せる!プログラミングのサイト2選
プログラミングの独学に役立つサイトもご紹介します。
まずは無料で試して、気に入れば本格的に有料利用もできるサイトです。
本よりも手軽に始められるので、モチベ作りにもぴったり。
Progate
「Progate」は初心者でも気軽にプログラミングを学べるWebサービスです。
わかりやすいイラストを使ったスライド形式で、直感的にプログラミングを理解できるカリキュラムになっています。
学べる言語はHTML、CSS、JavaScript、PHP、Ruby、Pythonなどメインが揃っています。無料のレッスンが気に入ったら月額1078円で本格利用もできます。
インプットだけではなく、実際にプログラムを書きながら学習を進めていけるので、「とりあえずプログラミングに触れてみたい」という方におすすめです。
おすすめポイントは以下の通りです。
- イラストでわかりやすい教材
- 無料のお試し利用あり
dotinstall(ドットインストール)
「dotinstall(ドットインストール)」は動画でプログラミングを学べるWebサービスです。
学べる言語はHTML、CSS、JavaScript、Java、Ruby、PHPなど。
たった3分の短い動画が6千本以上も配信中です。電車の中や夜寝る前など隙間時間を利用してサクッと学習ができます。
プレミアム会員になればレッスンの質問も受け付けているので、周りに相談できる人がいない独学者にぴったりです。
おすすめポイントは以下の通りです。
- プログラミングの全体図を把握できる
- 独学を始める前の準備に最適
正しい勉強法で独学マスターを目指しましょう
プログラミングは学べば学ぶほど先が見えなくなる分野です。挫折率も高いですが、継続するコツを押さえれば独学でも習得は可能です。
正しい勉強法を通してできることを少しずつ増やしていけば、きっとプログラミングの楽しさに気づけるはず。
小さな成功体験を積み重ねながら、独学でプログラミングをマスターしましょう。