
プログラミングは独学で学べるものなのでしょうか。この記事では、独学でプログラミングを始める方法や、おすすめの学習書籍やアプリについて紹介しています。未経験であるけれど、プログラミングを学びたいと考えている方は参考にしてください。

プログラミングを始める前に

プログラミングを始める前に、プログラミングの意味を把握する必要があります。プログラミングとはプログラミング言語を用いてコンピューターに指示を書くことを指します。
日本人が日本語でコミュニケーションを取るように、コンピューターにもコンピューター独自の言語(機械語)が存在します。しかしコンピューターの言語は0と1で構成されているため、人間には分かりにくいという欠点があります。そこで、人間にも意味が理解できるプログラミング言語を用いてコンピューターに指示を与えていきます。これが、一般的にプログラミングと呼ばれる行為です。
基本的な知識を抑えたところで、学習を始める前に考えておくべきポイントを紹介していきます。
事前準備をする
プログラミングを始めるために、用意するものが3つあります。
1つ目はパソコンです。OSについては、iPhoneアプリを作りたいならMacを選ぶ必要がありますが、そうでなければMacとWindowsのどちらでも問題ありません。
スペックについては、なるべくCPUがCore i5以上、メモリが8GB以上、ストレージが256GB以上のものを選ぶと良いです。値段が高いと悩むかもしれませんが、PCのスペックが低いと動作に時間がかかることもあります。
2つ目はネット環境です。調べながらプログラムを書くことになるので、快適なネット環境は必要です。
3つ目はエディタやIDE(統合開発環境)と言われる、プログラムを記述するためのソフトです。有名なものだとマイクロソフトのVisual Studio Codeなどがある他、PHPStormなど特定の言語に特化したソフトもあります。
エディタには便利なプログラムの補完機能など付いているものもあり、学習の効率にも影響してくるので、なるべく目的に合ったものを探すと良いでしょう。
おおよその学習時間を決める
個人差がありますが、プログラミングの基礎力を習得するのには200時間ほどかかると言われています。1日3時間ほどの勉強できると仮定すると、単純計算で約70日くらいの時間があれば習得できることになります。
しかし仕事もしながら学習を進めるとなると、平日に3時間も時間を確保するのは難しいかもしれません。一方で、スキル獲得のためには毎日の勉強の積み重ねが大切です。日々の生活の中で学習を継続していくためは、毎日の過ごし方を見直して時間を確保することが大切です。その際は無理なく継続できることを前提に置き、現実的な学習スケジュールを立てるようにしましょう。
プログラミング学習のステップ

ここからはプログラミング学習のステップについて解説していきます。今回は、目的を決める、環境構築を行うなどを始めとした4項目をピックアップしていきます。
これからプログラミング学習を始めるという方は、以下のステップを意識してみてください。
目的を決める
始めに、「プログラミングスキルを用いて何をしたいのか」という目的を決めましょう。
AmazonのようなECサイト、TwitterのようなWebアプリ、iPhoneやAndroidアプリ、VR(仮想現実)、AI、IoT(モノのインターネット)など、プログラム開発を必要とするものは多数存在します。その中から自分が最も興味があるものを選び、学習の最終目標を定めるイメージです。
人によっては、開発するものに拘りはないものの「転職したい」「手に職をつけたい」という気持ちからプログラミング学習を始めようとする方も居るでしょう。このような目的も学習のモチベーションとしてとても大切です。このような方はゴールをより明確に描くために、案件数という観点でどのような開発に携わりたいかを決めていくと良いかもしれません。
目的に合ったプログラミング言語を選ぶ
目的を決めた後は、目的に合ったプログラミング言語を選ぶ必要があります。なぜならば、開発するものによって使われる言語が異なるためです。ここからは学習目的の例として、Webサイト制作、Webアプリ制作、スマホアプリ制作、デスクトップアプリ制作、機械学習・AI開発に分けて解説します。
Webサイト制作
サイト作成にはHTML(Hyper Text Markup Language)やCSS(Cascading Style Sheets)、JavaScript、PHPなどの言語を使用します。
簡単に解説すると、HTMLは文字や画像の表示に使用する言語で、CSSはHTMLで記載された文字等に装飾(色、書体など)をつける言語を指します。JavaScriptやPHPは動的なWebサイトを作成するために使われるプログラミング言語です。
厳密に言うと、HTMLやCSSはマークアップ言語と呼ばれるものでプログラミング言語とは異なります。しかしながらWebサイト制作には重要な基礎となるので、習得しておくべき言語と言えます。
Webアプリ制作
アプリ制作でよく使用される言語はRuby、Javaです。
RubyはWebアプリケーション制作に使用される言語です。日本人が開発した言語であることから日本語で公開されている情報が多く、初心者は比較的取り組みやすいでしょう。フレームワークとしては、Ruby on Railsがよく使用されます。
Javaは様々なOSを動かせるというメリットを活かして、アプリ開発に使用される場面が多い言語です。バグのない大規模なシステムを作ることに向いています。
スマホアプリ制作
スマホアプリ制作をするのであれば、まずはAndroid向けなのかiPhone向けなのかを決めましょう。
AndroidアプリであればKotlinかJava、iOSアプリであればSwiftを学ぶことをおすすめします。AndroidとiOSの両方に対応したアプリを作りたいのであれば、クロスプラットフォームを利用するという手もあります。
KotlinとSwiftは歴史が浅い言語であるため、Rubyなどの言語と比較するとWeb上で公開されている情報が少ない傾向にあります。初心者にとっては学習がしにくい言語ではありますが、その分経験者が少ないため需要も高い言語と言えるでしょう。
デスクトップアプリ制作
デスクトップアプリはデスクトップ上で動作するアプリです。
デスクトップアプリ制作には、マイクロソフト社が開発するC#(シーシャープ)という言語が使われることが多いです。
Macのみを意識したアプリであればSwiftで開発が可能です。しかしながら、WindowsとMacどちらにも対応するアプリを開発したいとのことであれば汎用性の高いC#の学習をおすすめします。
機械学習・AI開発
機械学習・AI開発にはPythonやR言語がおすすめです。前提として、機械学習やAIの開発をするためにはプログラミング言語の知識に加えて統計などの専門知識も必要になります。1から学ぶのであれば、ある程度の時間をかけて学ぶことが必要になります。
PythonはWeb開発などにも使われます。言語としては非常にシンプルなので、誰が書いても同じようなコードになるという特徴があります。そのため、最初に学ぶプログラミング言語としては取り組みやすいでしょう。
R言語は、統計解析に特化しているプログラミング言語です。Pythonと異なり汎用性はありませんが、データを扱うという一点については非常に有用な言語と言えます。
環境構築を行う
ここで言う環境構築とは、プログラム言語を自身のコンピューター上で動かせるように必要なソフトウェアを導入し環境を整えることを指します。IDE(統合開発環境)やSDK(ソフトウェア開発キット)などの導入を行うのが一般的です。
ここまでのステップに進めば、学習の準備は完了です。初めはチュートリアルをなぞっていき、要領をつかむことがポイントです。まずは取り掛かることが大切になります。
プログラミング独学におすすめの書籍5選

ここからはプログラミング独学におすすめの書籍について解説していきます。今回は、すっきりわかるJava、10日でおぼえるPHP入門教室を始めとした5項目をピックアップしていきます。
リーダブルコード
1つ目はプログラミング学習を始めるにあたり基礎となる知識を身に着けるための書籍です。リーダブルコードを読むことで、綺麗なコードの書き方を理解することが可能です。
具体的には名前の付け方、コメントの書き方、ロジックの書き方などを通じて分かりやすいコードの書き方を解説しています。開発に携わっていると他人が書いたコードに触れる場面も増えるため、他人に伝わりやすいコードを書けるようになることは重要です。初心者の頃から意識するためにも、必読の本と言えるでしょう。
すっきりわかるJava
2つ目はJavaの入門書です。分かりやすくて読みやすいので入門書として読むのに良いでしょう。
入門編の「すっきりわかるJava」を一冊読めば、Javaの基本的なことは概ね身につくでしょう。シリーズ化されているので、入門編を読み終わった後に「実践編」を読むとさらに知識が深まるのでおすすめです。
10日でおぼえるPHP入門教室
3つ目は「10日でおぼえるPHP入門教室」です。短期間でPHPが学べる入門書で、PHPをイチから学びたい人におすすめです。
Webアプリの仕組みと作り方を解説しており、WindowsとMacどちらも対応しているのでおすすめです。
ゼロからわかる Ruby 超入門 (かんたんIT基礎講座)
4つ目は「ゼロからわかるRuby超入門」です。
こちらの入門書は、Rubyの基本を分かりやすく丁寧に解説しています。また、図を使って説明しているので、文を読むより見た方が理解しやすい方におすすめの本です。
独学プログラマー Python言語の基本から仕事のやり方まで
5つ目は「独学プログラマー Python言語の基本から仕事のやり方まで」です。
Pythonプログラミングの基本を学べるだけでなく、プログラマーとして必要なスキル(正規表現、シェル、バージョン管理、データ構造、パッケージ管理、アルゴリズム、仕事の始め方・やり方)も一通り学ぶことができます。
プログラミング独学におすすめの学習サイト・アプリ10選

ここからはプログラミング独学におすすめの学習サイトやアプリを紹介します。今回は、CodeCombatやProgateなど、10のサイトやアプリをピックアップして特徴や学べる言語を解説、各サイトへのリンクも貼っておきます。
CodeCombat
1つ目はCodeCombatです。プログラミングを学習できるブラウザゲームで、最初に取り掛かるのにはおすすめです。
CodeCombatではPython、JavaScripといった言語を学習することができます。
Progate
2つ目のProgateは、手軽にプログラムを動作させながら学ぶことができます。
初心者でも躓かないような作りになっているので、まずはProgateから取り掛かるのがおすすめです。無料版と有料版がありますので、始めは無料版から進めていくと良いでしょう。
Scratch
3つ目はアメリカで開発されたプログラミング言語のScratchを学習できるサイトです。
子供向けのツールではありますが、遊びながら学べるので何から勉強していいのか悩んでいる方にもおすすめです。
Rubyがミニツク
4つ目はRubyがミニツクです。Ruby入門コース、Ruby on Rails入門コース、Ruby演習コース、Ruby技術者認定試験(Silver)対策コースなどのコースから学習が可能です。
初心者でも身につくようにたくさんのコンテンツや動画が用意されており、全て無料で学習できます。
推しと学べるプログラミング
5つ目は推しと学べるプログラミングです。エンジニア男子と一緒にプログラミングが学べる仕様で、問題を解いてストーリーパートを進めていきます。お気に入りのキャラクターを見つけてみるのもおすすめです。
このゲームではPHP、Ruby、Python、Java、C言語、C#、C++、JavaScript、Kotlinの9つの言語が学べます。
codebelle
codebelleは、「いつでも学べる、誰でも学べる」がコンセプトで、Swift専用の学習アプリです。ステップアップ形式のスマートフォン用の学習アプリで、1つのレッスンが約3分で終わるため、通勤時間などのスキマ時間におすすめです。
Schoo
Schooはオンライン学習サイト(MOOC)でありながら質問が可能なため、学習に詰まった時などにおすすめです。独学で勉強するのは少し寂しいという人にもおすすめです。
スクールに行って質問するなどすると交通費などがかかりますが、それがかからないのも良いところです。
Udemy
Udemyは、動画教材で学びたい方におすすめです。
初心者向けの講座も出ていて、ハンズオン(実際にモノを作りながら学ぶ形式)のものもあります。ハンズオンはイメージがわきやすいですが、まずは基礎を学んでからの方が良いでしょう。
CheckiO
プログラミング独学におすすめの学習サイト・アプリの9個目に紹介するCheckiOは、PythonとJavaScriptを学べます。
出される問題を解きながら進んでいくシステムで、Web上でプログラミングできます。
Swift Playgrounds
Swift Playgroundsは、iPad用とMac用の学習アプリです。Swiftを使ってパズルを解きながら進めていくので、ゲーム感覚でコードが覚えられます。
プログラミング独学を効率よく進めるポイント7つ

ここからはプログラミング独学を効率よく進めるポイントについて解説していきます。今回は、プログラミング学習を習慣づける、疑問点・不明点を解消できる環境を作ることを始めとした7項目をピックアップしていきます。
プログラミング独学を効率よく進めるポイントについてご興味がある方は、参考にしてください。
プログラミング学習を習慣づける
繰り返しになりますが、プログラミング学習は知識の積み重ねなので、継続することが重要です。
スキマ時間を勉強に置き換えるなど、プログラミング学習を習慣づけましょう。初めは勉強するのは腰が重いことがありますが、取り掛かってみるとスムーズに進むことも多いです。
プログラミング言語の基礎知識を身につける
基礎をしっかり理解しておくことは重要となります。
書籍や動画教材で一通り基礎を学んだら、基礎の理解に執着せずハンズオンなどの次のステップに進みましょう。
目的や目標を具体的に設定する
何のためにプログラムを学び始めたのかは常に意識しておきましょう。副業でお金を稼ぐため、転職するため、オリジナルのアプリを作成するためなど、勉強の動機があるはずです。
目標が曖昧になるとモチベーション低下につながり、継続が難しくなることもあるので、最終的な目的に加えて、短期の小目標を複数設定しておくのがおすすめです。
疑問点・不明点の解消できる環境を作る
様々な学習サービスがあるとはいえ、初心者が独学で勉強する際には必ず詰まる時があります。ここで問題が解消できずに多くの時間をかけたりモチベーションが低下してしまうのは非常にもったいないといえます。
専門的なことを勉強していれば、分からないことが出てくるのは独学ならば当然のことです。なるべくスムーズに解消できるような環境を用意しておくのが良いでしょう。
おすすめはTerateilなどのプログラミング専用の質問サービスを利用することです。それでも解決しない場合や、時間効率をさらに優先するのであれば、MENTAなどの有料サービスの利用も検討しましょう。
サイトを模写してスキルを試してみる
HTMLやCSSでWebサイトの制作を考えているのであれば、既存のWebサイトを模写して学ぶ手段も有効です。独学では学べなかった、より実践的なコードや知らなかった書き方を勉強できます。
サイトの模写については、必ず基礎知識を勉強した後に取り組むようにしましょう。
行き詰まったら他の言語にシフトしてみる
独学で学習中にどうしても行き詰まってしまった場合は、他の言語を学ぶのも1つの方法です。この際も、なるべく目的に合った言語を選ぶようにしましょう。
また、複数言語を扱うことのできるメリットもありますので、行き詰まった場合は他の言語にシフトしてみることも検討しましょう。
独学にこだわらずスクールも視野に入れる
これまでに述べてきた方法でうまく学習ができない場合、独学にこだわらずスクールで学ぶことも視野に入れましょう。
現在はオンラインのスクールも充実しているので、仕事の都合など通うのが難しい方であっても受講することは不可能ではないでしょう。安い金額ではありませんが、独学より時間効率よく学べるという利点もあります。
独学でプログラミングを学習しよう

今は昔と違い、独学でプログラミングを学習するのにプログラムを勉強するためのサービスや書籍がたくさんあります。困った時には詳しい人に相談できるサイトやサービスもあるので、独学で学習をする方にはおすすめです。
この記事を参考に、独学でプログラミングを学習してみましょう。
おすすめの記事












