転職実績No.1🔰エンジニアスクール
転職実績No.1🔰エンジニアスクール

プログラミング独学の始め方!初心者が基礎から学ぶための入門方法・勉強法や壁の乗り越え方

更新: 2024.03.14

プログラミング教材を購入してみたけどついていけない…
プログラミングを基礎から学びたいけど、そもそもの始め方が分からない…
プログラミング独学のやり方を、初心者にも分かるように教えて!

プログラミング人口が増えている現在、独学でプログラミングにチャレンジしようと考えている方も多いでしょう。しかし、難易度の高さからスタートでつまづいてしまうことも多々。

そのため、独学でプログラミングスキルを習得するには、挫折しないための正しい独学の始め方をおさえることが必須です。

そこで本記事では、「プログラミング独学の始め方入門」と題して、初心者が基礎から学ぶための勉強法、独学を効率的に進めるコツ、壁の乗り越え方などを徹底解説します。

この記事は現役エンジニアによって監修済みです。

この記事の目次

プログラミングを独学する前に知っておくべきこと

そもそも「プログラミング(プログラム)とは何か」と聞かれて、相手にわかりやすく説明するのは初心者にはなかなか大変だと思います。

そこで本章ではまず、手探りの状態で学習を始める前に知っておきたい、プログラミングの基本知識や必要なものを解説しましょう。

  • プログラミングとは?
  • プログラムは単純作業の高速処理・自動処理が得意
  • プログラミングの独学は難しい?

プログラミングとは?

プログラミングとは、コンピュータに実行させたい振る舞いや行動を順番に書き出すこと。簡単にいえば、コンピュータへの指示書のようなものです。

コンピュータは機械語を用いて行動します。そのため人間が話す言葉は理解できません。そして機械語は人間が理解することは困難。

そこで、人間とコンピュータが意思疎通するための「専用の言語=プログラミング言語」を用いてコンピュータに指示を与えるのです。

プログラミング言語は250種類以上あるといわれています。しかし身の回りで実際に使われている言語は、およそ10分の1程度

そのため、自身の目的に合わせて最適なプログラミング言語を選ぶ必要があるのです。

プログラムは単純作業の高速処理・自動処理が得意

プログラミングによって開発されたプログラムの用途はさまざま。しかし共通するのは、単純な作業の高速処理や自動処理に便利であることです。

つまり、テクノロジーが発達しインターネットが普及した現在、私たちの生活を支えているのはプログラミングといっても過言ではありません。

LINE・X(旧Twitter)・FacebookなどのSNSアプリ、ビデオゲーム・ソーシャルゲームなどは、すべてプログラミングで開発されました。

また、プログラミングを活用すれば、Excel作業の自動化や異なるツール間の連携も容易になり、利便性も向上するでしょう。

プログラミングの独学は難しい?

初心者が知識ゼロの状態からプログラミングの独学を始めた場合、高い確率で挫折する可能性があります。

実際「SAMURAI ENGINEER」のアンケート調査(2019年)では、プログラミング学習をしたことのある240名のうち、87.5%が「挫折や行き詰まりを感じたことがある」と回答しました。

プログラミングの独学で挫折してしまうおもな原因は、以下の通りです。

  • 学習の目的・ゴールが明確ではなかった
  • プログラミングの環境構築が難しい
  • 教材が難しく理解に苦しんだ
  • エラーや不明点を解決できなかった
  • モチベーションの維持が難しかった
  • 十分な勉強時間を割けなかった

上記の通りで、業務で扱えるレベルのプログラミングスキルを習得するには1,000時間を要するともいわれているので、プログラミングの独学は決して簡単ではないのです。

プログラミングの独学は初心者でも可能!

プログラミングに興味がある。けれど、初心者や未経験者には難しそう…
いきなりお金をかけてプログラミングスクールに通うよりは、まずは独学してみたい
独学とプログラミングスクールでの受講、どっちがいいのだろう?

プログラミングを初めて学ぶ上で、こうした疑問を持つ方も多いでしょう。

前章で解説した通り、プログラミングの独学は簡単ではありません。しかし正しい独学方法を実践すれば、初心者でもプログラミングスキルを独学で身につけることが可能です。

独学を始める前に大事なことは「必要なものの準備」と「学習時間の確保」です。それぞれ詳しく解説します!

  • プログラミングに必要なものを用意しよう
  • 【目的別】独学の目安学習時間とロードマップ
  • プログラミング独学を始めた人の本音は?

プログラミングに必要なものを用意しよう

まずはプログラミングを始めるために必要なものを用意しましょう。プログラミングを始めるために最低限必要なものは以下の3つです。

  • PC
  • インターネット環境
  • 開発環境

まずはPC(パソコン)が必要です。最近では性能が上がってきたこともあり、タブレットでもプログラミングは不可能ではありません。

ただ、がっつりとコーディングを行うのであれば、やはりPCの方が作業が行いやすいです。

インターネット環境は環境構築や不明点を解決するための情報収集などを行う際に必要です。Web開発を行いたいのであれば、なおさらインターネット環境は不可欠。安定性が高く高速な回線を用意しておくと、プログラミングに集中できるでしょう。

その他、開発環境はテキストエディタやIDE(統合開発環境)などの用意も必要。

プログラミングに必要なものの詳細は、「プログラミングを始めるために必要なものとは?準備の流れや用意する環境も解説」を参考にしてください。

プログラミングにはMacがおすすめ!

プログラミングに向いているOSはWindowsかMacか迷うと思います。結論から言いますと、プログラミングにはMacをおすすめします。Macを選ぶメリットは以下の通り。

  • 初心者でも直感的に操作できる
  • Apple製品向けのアプリが開発できる
  • 仮想環境でWindowsも利用できる
  • プログラミング向けのサードパーティのツールが豊富

これからパソコンを購入する方は、Macを購入するとよいでしょう。

かといって、Windowsユーザーの方は無理してMacを用意する必要はありません。初期コストを抑えるなら、WindowsPCを購入するのもアリ。

ただし、iOSアプリやMacアプリ開発を希望する場合は、Macが必須です。

【目的別】独学の目安学習時間とロードマップ

こんなサービスであれば、このくらいの時間で作成できるという目安をご紹介します。あくまで目安ですので、勉強方法やペースによって時間は変わります。

以下で、学習時間の目安や開発アプリごとに必要な時間をざっくり紹介。

  • 初心者はまず300時間の学習時間を確保しよう
  • 電卓:12時間程度
  • ToDoアプリ:24~36時間程度
  • Web掲示板:240時間以上

初心者はまず300時間の学習時間を確保しよう

日経XTECH(2016年)にて、弊社(株式会社div)元代表の真子が述べているように、言語を学んで最初の実用的なアプリを作れるようになるまでの時間は300時間程度。

1日10時間勉強するとして、最低でも1ヶ月の学習が必要です。

短期間の独学でスキルを身につけたい方は、まず「300時間の学習時間を確保するのに、どれだけの日数が必要か」を考えてみると良いでしょう。

電卓:12時間程度

電卓アプリの場合は変数の扱い方、算術演算のやり方、値の入力・出力方法をといった基本的な知識が理解できれば作成可能です。

JavaScriptを用いて12時間程度で、整数の四則演算ができる電卓を作れるでしょう。

参照元:Qiita

ToDoアプリ:24~36時間程度

ToDoアプリの場合は、電卓アプリで必要な学習事項に加えて、変数の内容をプログラムが終了しても保存できる仕組みの理解が必要です。

また、デザイン(UI)もToDoアプリらしくする必要があるので、JavaScriptを用いるとおおよそ24~36時間ほどかかるでしょう。

参照元:Qiita

Web掲示板:240時間以上

Web掲示板の作成には、最低でも240時間以上はかかると考えられます。以下のようにPHPでの作成がよいでしょう。

参照元:Qiita

ここで紹介した学習時間の目安は、あくまで「参考」にすぎません。

効率よく学習すれば、もっと学習期間は短くて済みますし、学習方法が間違っていればどこかのステップで詰まって先に進めなくなります。

「せっかく勉強したのに途中でわからなくなって挫折した」そんな事態を防ぐためには、後述する学習の4つのステップを守りましょう。

プログラミング独学を始めた人の本音は?

未経験から学習をスタートしても、300時間あればアプリを作れると紹介しました。短い学習期間でも、電卓やToDoアプリなどが作れるようになるのは事実です。

しかし、実際に独学してみると思うようにいかず、挫折したり、途中で飽きるのが人間の性でもあります。

本当に独学で学習をはじめて、エンジニアとして成果を残した人や「皆に使われるサービス」を生み出した人はいるのでしょうか。ここでは、参考までに筆者の例を紹介します。

iOSアプリのケーススタディ(筆者の場合)

大学1年生の時に、独学でiPhoneアプリを作ろうと思い立って勉強し始め、当時、iOSの開発言語だったObjective-Cを学ぶのに2週間かかりました。

高校時代にC言語を学んでいたため、if文やfor文などの制御構文は問題ありませんでした。

しかし、Objective-Cをはじめとした、オブジェクト指向言語ならではの機能を習得するのに時間がかかりました。

次に、ボタンやテキストフィールドなどのUIパーツの使い方を学ぶのに1か月かかり、途中からは並行して、iPhoneアプリ制作を開始。

最終的に全期間を通してかかった期間は、約3ヶ月ほど。

なお、1日の勉強・作業時間は平均して1時間半ほどで、一つのアプリを作るまでに135時間程度かかったことになります。

このことからiPhoneアプリを作る場合、全くプログラミングに触れたことがない方でも200時間程度でそれなりのアプリを作成できるはずです。

何から始める?プログラミング独学の勉強法【4ステップ】

プログラミング独学の勉強法は、以下の4つのステップで進めることです。

  1. 作りたいものを決める
  2. プログラミング言語を決める
  3. 環境構築とツールの使い方を学ぶ
  4. プログラミング学習を始める

以下で、1つずつ詳しく解説します。

作りたいもの(目標)を決める

「作りたいものは決まってないけど、プログラミングをしたい」は、「目的はないけど、山を登りたい」と同じです。

何となく山を登りたいと思ってスタートしても、「山の景色を楽しみたい」「山頂を目指す」などの目的が決まっていなければ、想像以上のつらさに挫折するでしょう。

「山頂を目指す」と決めたら、必要な装備は何か、どのような経路で進むかといったことが具体的に考えられます。

プログラミングもそれと同じです。もしあなたがプログラミングを学ぶことで自分を高めたいと思うなら、目標を決めましょう!

「iPhoneの〇〇みたいなアプリが作りたい!」「世界を変えられるようなアプリを開発したい!」など、目標は自由に決めてOK。ただし、できるだけ目標は具体的に決めてください

なぜなら、具体的な目標を決めて学習に取り組むとロードマップが明確になるので、モチベーションや学習効率が向上するからです。

また学習意欲が下がったときに、なぜプログラミングを学ぶのかが明確だと、目標・ゴールを再認識してモチベーションの再燃にもつながるでしょう。

作りたいものが明確に思い浮かばないときは、以下のような手もありです。

  • 短期的な目標を設定してステップアップする方法もあり
  • 市場動向を考えて作るものを決めるのもおすすめ

短期的な目標を設定してステップアップする方法もあり

どうしても何も浮かばない場合は、先に紹介した電卓やToDoアプリなど、比較的短い学習期間で開発できるアプリを作ってみることをおすすめします。

いきなり高い目標を決めてしまうと挫折しやすいので、自分の手が届きそうな範囲で設定しましょう。

短期的な目標を決めて、それを達成したら次の目標を設定するというアプローチもありです。

以下の記事では独学でアプリ開発を検討している方向けに、プラットフォーム別の開発環境を紹介しています。

市場動向を考えて作るものを決めるのもおすすめ

もし作りたいものが明確に決められないという場合は、最近のIT分野の市場動向を見て決めるのも良いでしょう。

プログラミングを身につけて就職・転職をするのであれば、よりニーズの高まっている分野に必要なスキルを持っていることで「即戦力」として採用される可能性が高まります。

先ほど説明したiPhoneなどのアプリ開発。スマホ向けアプリは端末自体の普及に合わせて市場拡大中ですあり、未だにニーズの高い分野です。

その他にはVR(仮想現実)、AI(人工知能)、IoT(モノのインターネット)などの分野も勢いがあり、今後も大きく市場が広がると予想できます。

これから伸びる分野を狙ってスキルを身に付けるということも、プログラミング独学の十分な目標と言えるでしょう。

プログラミング言語を決める

「初心者が最初に学ぶべき言語」や「初心者オススメの言語」と検索してみると、JavaScript、Pyhon、C言語などの記事がたくさん出てきますよね。

では、一からプログラミングを学びたい初心者は、どのような言語を学べば効率良く開発できるのでしょうか?以下で、プラットフォームごとの代表的な言語を4つ紹介します。

  • iOSアプリ開発の代表的なプログラミング言語:Swift
  • Androidアプリ開発の代表的なプログラミング言語:Java・Kotlin
  • Web開発の代表的なプログラミング言語:Ruby
  • AI開発の代表的なプログラミング言語:Python

iOSアプリ開発の代表的なプログラミング言語:Swift

swiftscreen

Swift(スウィフト)は、2014年にAppleが発表したプログラミング言語です。

言語のコンセプトに「モダン・安全・高速・インタラクティブ」を掲げており、初学者でもとても扱いやすい言語になっています。

Swiftが登場する以前、Apple系ソフトウェア開発言語では一般的にObjective-Cが使用されていましたが、他の言語と比較して学習コストの高いプログラミング言語でした。

そんなObjective-Cが抱えていた扱いにくさを、Swiftはモダンな文法や仕組みを用いて解決しています。よりシンプルなコードとなり学びやすくなりました。

また、SwiftはObjective-Cと互換性を持つため、Apple系ソフト開発では今後も重要な言語です。

現在もアプリの市場は拡大しており、多くの企業が参入しています。エンジニアの中でもSwiftが使える技術者の需要は高まっています。

Swiftは他の言語と比べると新しい言語です。そのため、経験者がまだ少ないという現状から影響しているようです。給与や待遇などもよくなる傾向にあります。

Androidアプリ開発の代表的なプログラミング言語:Java・Kotlin

Java ジャバ/Kotlin コトリン プログラミング言語

Java(ジャバ)は、1995年にSun Microsystemsによりリリースされたプログラミング言語およびコンピューティング・プラットフォームです。

もともとはWebページ上での使用を想定して開発された言語ですが、あらゆるOS上で動かせるという特徴から、今ではAndroidアプリ開発を始め多種多様に用いられています。

またJavaと合わせて、Kotlin(コトリン)もおすすめです。

2017年5月17日のGoogle I/O(Googleが主催する開発者向けのイベント)にて、Androidの開発言語にKotlinが追加されることが発表されました。

KotlinはSwiftに似た文法を持ち、簡潔かつ安全なプログラムを記述しやすい言語です。

現状だとJavaと比べ参考文献や学習のメソッドを記したサイトが少ないので、初心者の方が勉強するにはハードルが高いかもしれません。

しかし将来性は非常にあるため、これからAndroidアプリ開発を学習したいという方にもオススメできる言語です。

KotlinがAndroid開発言語として追加されてからまだそれほど時間が経っておらず、Kotlinを扱えるエンジニアは多くないのが現状です。

Anddoidアプリ市場も未だ拡大中であるため、Kotlinを扱えるエンジニア、プログラマーの需要も高まっています

求人数も増えており、給与や待遇も他の言語を扱えるエンジニアより良くなる傾向にあります。

Web開発の代表的なプログラミング言語:Ruby

HTMLは、Webページを記述するためのマークアップ言語(※)です。CSSは、それらの文章の構造や修飾情報をどのように装飾するかを指定する言語です。

Rubyは、SwiftやJavaとは異なりスクリプト言語という分類に入るプログラミング言語です。

比較的実行速度が遅いという欠点があるスクリプト言語ですが、簡単なプログラムであれば、短時間で構築して実行できるので、主にWebアプリケーション開発に用いられています

また、Rubyは日本人が開発したこともあり、公式の日本語リファレンスが豊富で初心者でも非常に習得しやすい言語です。

まず最初に学習するプログラミング言語としてRubyを選ぶ人は多く、プログラミングの教育の場でもRubyが採用されるくらい習得しやすい。

そんなHTMLやRubyを使って、Webアプリケーションを作るためのフレームワーク(ソフトウェアの部品集のようなもの)がRuby on Railsです。

素早く、高品質なアプリケーションを開発できることから、Webアプリケーション開発においてはRuby on Railsはスタンダードのフレームワークとして採用されています。

※マークアップ言語…コードの一部を「タグ」と呼ばれる特別な文字列で囲うことにより、文章の構造(見出しやリンクなど)や修飾情報(文字の大きさや組版の状態など)を、コード中に記述していく記述言語のことです。

AI開発の代表的なプログラミング言語:Python

AI(人工知能)という言葉をご存知でしょうか。

AIとは、コンピュータ上で、人間の知能のように物事の判断・判別などを行おうとする技術のことです(開発者により定義は様々)。

2000年から現在まで、世界的にAIへの注目が高まったことから「第3次人工知能ブーム」が到来しているとされています。

過去にも1950~1960年代に第1次人工知能ブーム、1980〜1990年代に第2次人工知能ブームが訪れました。AIは60年以上前からある技術だということがお分かりでしょう。

しかし第1次、第2次ブームの際にはまだ技術力が乏しく、理想のAIからは程遠いものしかできませんでした。

2000年以降はAIの精度が高まりを見せており、3回目のブームとなっているのです。そしてこのAI開発に使われる言語がPython(パイソン)です。

コードがシンプルで、AI開発用ライブラリが豊富なことからPythonが採用されています。

AI開発なんて聞くと、初心者にはハードルが高く感じてしまうでしょう。しかしPythonにできることは他にもたくさんあり、Webアプリ開発やデータ解析など汎用的に使える言語なのです。

学習難易度はRubyのように低めで、プログラミング入門用として人気を集めています。

環境構築とツールの使い方を学ぶ

環境構築とは、選んだプログラミング言語をコンピュータ(パソコン)上で動かせる環境を作り上げることです。

料理でも調理器具やキッチンが必要な通り、ソフトウェアでもIDE(統合開発環境)と呼ばれるソフトウェア開発に必要なツールが揃ったソフトウェアがあります。

これ一つでコーディングからプログラムの実行、デバッグ(プログラムの動作の誤りを修正すること)まで、一通りサポートしてくれます。

使い方は隅々まで覚える必要はありません。必要なところを部分的に使えればOK。プログラミング初心者にとって、大きなメリットとなるでしょう。

以下では、よく用いられるIDEを紹介します。

  • iOSアプリ開発の代表的なツール:Xcode
  • Androidアプリ開発の代表的なツール:Android Studio
  • Webサイト制作の代表的なツール:テキストエディタ・Webブラウザ
  • Webアプリ開発に必要なツール:専用の環境構築が必要

iOSアプリ開発の代表的なツール:Xcode

images (6)

Xcodeは、Appleが提供するiOSやmacOSのソフトウェアを開発するのに特化されたIDEです。

iOSシミュレータをはじめとして、開発に役に立つソフトウェアが多数用意されています。

XcodeはmacOSのみ対応していますので、環境構築方法もMacのみの紹介となります。

Androidアプリ開発の代表的なツール:Android Studio

andoro

Android Studioは、Googleが提供するAndroid向けのIDEです。

Xcodeと同様にAndroid開発をサポートするソフトウェアが用意されています。

Webサイト制作の代表的なツール:テキストエディタ・Webブラウザ

images (7)

Webサイトは、テキストエディタとWebブラウザがあれば開発が可能。テキストエディタでHTMLファイルを作成し、ブラウザで確認を行います。

またJavaScriptを使うことで、ページの動的な書き換えもできるようになります。

具体的にはページの要素の書き換えや、ダイナミックな色の変更が可能で、JavaScriptもエディタとブラウザがあれば開発が可能。

テキストエディタはメモ帳でも利用可能ですが、筆者がオススメするテキストエディタはVisual Studio Code(通称:VSCode)です。

Visual Studio CodeはMicrosoft製のコードエディタ。ショートカットや拡張機能が豊富で大変使いやすいのが特徴。

Webブラウザはお使いのものでも良いですが、Webアプリのデバッグ用に開発メニューが用意されているChromeやSafari、Firefoxがオススメです。

Webアプリ開発に必要なツール:専用の環境構築が必要

ECサイトやクラウドファンディング、TwitterのようなSNSなど、ユーザーとの「対話性」を持つサイトは「Webアプリケーション」と呼ばれます。

対話性の無いWebサイトとは、管理者からの一方的な情報提供のみが行われる静的なサイト。

対話性を持つサイトとは、ユーザーがフォームのクリックや情報の入力、商品の購入などを行えるものです。

コンピュータゲームも、ボタン操作を行い敵を倒すなど「対話」を行います。こうした対話性を持つサイトは、ブラウザ上でアプリを操作する「Webアプリ」です。

Webアプリ開発はテキストエディタとブラウザだけでなく、あらかじめ専用の開発環境を用意しておく必要があります。

Webアプリ開発のスタンダードとして使われるのは、Ruby on Railsです。Ruby on Railsを扱うには、お使いのPCにRuby on Railsをインストールが必要。

プログラミング初心者は、テキストエディタやデバッガなどが全てインストールできるIDEを使うのがおすすめです。

プログラミング学習を始める

いよいよプログラミング言語を学び始めましょう。

プログラミング言語も言語の1つです。外国語を身につける時と同様プログラミング言語も使わないといつまで経っても身につきません。

1つ学んだら1つ簡単なプログラムを作る心構えで挑むと良いでしょう。どの程度理解できたら次に進めば良いかわからない方は、次の質問を自分に投げかけてみてください。

「どうやってそのように動くかは分からないけど、とりあえずコードを書いて正常に実行できるか?」という問いにイエスと答えられるなら、どんどん次の学習に進みましょう。

一度で完璧に覚えようとするより、大枠を理解し、復習を繰り返すことをおすすめします。

プログラミング言語の学習方法は、「【初めてのプログラミング】ゼロからプログラミングを始める手順や勉強法」の記事も参考にしてください。

プログラミング独学を効率的に進める3つのコツ

プログラミング学習は時間がかかるもの。特に初心者は、最適な勉強方法や、勉強に対する心がけを見つけにくいかもしれません。

ここからは、プログラミングの勉強を始める前の段階として理解しておきたいことについて解説していきます。

以下の3つのコツを把握しておけば、壁にぶつかったとしても解消するきっかけを見つけ出せるでしょう。学習の準備を始める前に目を通しておいてください。

  • 目標・目的は細かく設定する
  • 1日30分でもいいからプログラミング学習を続ける
  • 正規表現の基礎を学ぼう

初心者向けのプログラミング勉強法については「【プログラミング勉強法】初心者が効率よく成長する6つの学習法!」でも解説しています。

目標・目的は細かく設定する

1つ目は、目標や目的を細かく設定することです。

目標を細かく設定することで、自分がどれだけ進んだかが分かりやすくなり、モチベーションの維持や残りの行程の確認にも役に立ちます

できれば、1日どれくらい勉強したのかを記録しておくこともおすすめします。

メモ書き程度でも記録しておくと、自身の成長を振り返りやすくなるでしょう。とにかく日々達成感を覚えることが挫折を防ぎます。

1日30分でもいいからプログラミング学習を続ける

2つ目は、短い時間でも毎日学習を続けることです。プログラミングの独学は、学習を習慣化すると挫折しづらくなります。

習慣化すれば、学習に取り組む心のハードルが下がり、知識の定着率もアップするでしょう。

例えば、毎週の休日にまとめて7時間学習をする場合、前週の復習に最低でも1時間くらいはかかってしまいます。

毎日少しづつ学習を続ければ、復習にかける時間を少なくでき、より効率的に学習が可能。

プログラミング入門者にとって、最初のうちは日々のプログラミング学習を始めるハードルが高く感じるでしょう。

無理に長時間やろうとすると、集中力やモチベーションの低下につながりかねません。

少しずつ勉強しながらプログラミングの全体像をつかみ、本格的な勉強へと移りましょう。

まずは理解しできなかった部分があっても、現在取り掛かっている教材を一通り終わらせてしまうことをおすすめします。

そしてその教材を2周・3周と繰り返し、わからなかった部分を潰していってください。

正規表現の基礎を学ぼう

正規表現とは、いくつかの文字列を一つの形式で表現するための表現方法です。

この正規表現を利用すれば、たくさんの文章の中から容易に見つけたい文字列を検索できます。

例えば、Apple製品が収められたデータベースの中から「iPod」「iMac」「iPad」などの「先頭に”i”がついていて、そのあと3文字続くもの」を取り出したい。

その場合には、正規表現では「^i…」と入力します。

正規表現をマスターすると、文章処理作業の効率が飛躍的に向上するでしょう。

それはプログラムの処理を簡単にできるだけでなく、検索・置換する際に正規表現を扱えるエディタならば、ソースコードを大規模に改良する時にも役に立ちます。

プログラミング独学における4つの壁の乗り越え方

入門者にとって、プログラミング学習は高い壁のように感じてしまうこともあるでしょう。

原因のわからないエラーなどに遭遇すると、解決方法がわからず、集中も乱れがちです。環境を構築するところから手が止まってしまうことも考えられます。

まずは以下の4つの方法から試してみてください。

  • 思うようにコードが書けない → まずは真似をする
  • 概念が理解できない →「振る舞いが理解できればOK」と割り切る
  • 面白くない → 一部を作ってみる
  • モチベーションが続かない → 独学にこだわらない

思うようにコードが書けない → まずは真似をする

理論やコードの意味は分かるけど、思うようにコードが書けない方は、まずはソースコードをそのまま真似して書いてみましょう

コピペせずに書き写し、変数の値を変えるなどすると、動作の理解を深められます。

自分より上手な方のコードを知ることで、適切なインデントやコメントの書き方や、より効率的なコードを学べます。

ちなみに、「学ぶ」という言葉は「真似ぶ」という言葉から生まれたという説もあり、真似をすることはすなわち学習することにつながるとも考えられるのです。

概念が理解できない →「振る舞いが理解できればOK」と割り切る

始めのうちは、仕組みまで完璧に理解する必要はありません。なぜなら、その時は理解できなくても、別の概念を覚えると理解できることも多いから。

仕組みを理解できるのがベストですが、まずはプログラムの振る舞いを理解することを重視して進めていきましょう。

何度か説明してきましたが、わからないことがあってもどんどん先に進め、同じ部分を繰り返し学習することが肝心です。

面白くない → 一部を作ってみる

インプットばかりで面白さを感じられず、モチベーションが低下することもあるでしょう。

そんな時は、今まで学習した知識を元に、プロトタイプとして一部分でもアプリなどを作ってみると、モチベーション回復につながります。

頭の中にあるアイディアを少しでも形にすることで、あなたの目的へと近づいている感覚が得られるでしょう。

また、しばらくしてそのコードを見直し、学習不足だった点を認識することで、別のアプリや本番となるアプリを開発する際、同様のミスがないように役立てられます。

モチベーションが続かない → 独学にこだわらない

本当に一人でどうしようもなくなった時は、他人に助けを求めましょう。

身近にプログラミングに詳しい人や、エンジニアやプログラマーとして働いている人がいるのであれば、聞いてしまったほうがより早く身につきます。

その人の学習メソッド、コーディングのやり方を真似してみることで、学習のヒントを得られるかもしれません

もしそのような人がいないのであれば、SNSやブログなどを活用するのも一つの手です。

自分がわからない部分やつまずいている部分を素直に発信すると、それを見た人が答えを教えてくれるかもしれません。あるいは励ましのコメントをしてくれる人が現れるかも。

プログラミングを習得することが、このページを見ているあなたの目的であり、独学は手段でしかありません。

プログラミングの体験会に参加して、講師に方法を聞いてみることもおすすめです。人に聞けばすぐに解決できることも多いので、ぜひ活用しましょう。

独学でプログラミング学習すると挫折しがち。テックキャンプなら「徹底したサポート」と「やりきらせる学習環境」を提供しています。

IT業界を理解したい人やキャリアに悩んでいる人は、テックキャンプの無料カウンセリング(キャリア相談)を受けてみませんか。あなたの不安や悩みを解消できるようにカウンセラーが親身に対応します。些細なことでも構いませんので、なんでもお聞きください。

無料カウンセリングの詳細はこちら

プログラミング独学で稼ぐためのポイント・コツ

プログラミングを身につけ、さらにスキルアップさせることができれば、それを生かして仕事をしお金を稼いでみるのもいいでしょう。

ここからは、プログラミングをさらに向上させ、エンジニア就職やフリーエンジニアなど、稼げるエンジニアになるためのポイント・コツを6つ紹介します。

  1. プログラマーに向いているかどうか判断しよう
  2. インターネット上にオリジナル作品を公開しよう
  3. GitHubで自分のプログラムを公開しよう
  4. IT系の勉強会に参加しよう
  5. 初心者と上級者のプログラミングの違いを知っておこう
  6. フリーランスを目指すなら案件を受注して実績を積もう

プログラマーに向いているかどうか判断しよう

プログラマーの適正については、様々な意見・仮説があるので、一概には言えません。

それを踏まえた上で、あえて特徴を挙げるならば、以下の4つです。

  • 論理的思考能力がある人
  • 大きな問題を細分化して解決できる人
  • 新しいIT技術に興味がある
  • プログラミングが好きな人

こちらの「プログラマーに向いている人の13の特徴と向いていない人の8つの特徴!」では、プログラマーに向いている人の特徴をより詳しく解説しています。

あなたはプログラマーに向いているでしょうか?上記の記事を参考に、ぜひ確かめてみてください。

インターネット上にオリジナル作品を公開しよう

オリジナル作品を制作し世に公開すれば、あなたの実績となります。

仮に、自分の作ったiOSアプリが、世界中でたった50人にしかダウンロードしてもらえなかったとします。

しかし、採用する側には、少なくとも「自力でユーザーを集められるだけのアプリを作る力はある」と評価してもらえるはずです。

また、その経験はあなたの自信にもなります。どれだけ洗練されたサービスも、世に出なければ評価されません。多少荒削りでも、自分の限界までやりきったのなら公開してみましょう。

ただし、個人情報や財産を扱うソフトウェアの場合は慎重に。しっかりと法律家の指導の下で利用規約を制定し、万全のセキュリティ対策を持って運用しましょう。

それができない場合は公開すべきではありませんし、そもそも作るべきではないです。

GitHubで自分のプログラムを公開しよう

コードを公開して問題ないと判断した場合は、習作であってもGitHubで公開していきましょう。そうすることで、企業の採用担当の方があなたの実力を直接見れます

GitHubでは、コミット(コードをGitHubにアップロードすること)数が視覚的に分かる仕組みがあり、その活動が活発なほど高く評価される傾向にあります。

ちなみにテックキャンプ ブログでは、社長や人事にエンジニア採用についての取材をすることが多くあります。

IT業界の採用担当者からは「GitHubでコードを公開していないエンジニアは採用しない」「判断材料がないため採用できない」という声も。

IT系の勉強会に参加しよう

勉強会やもくもく会(複数人で黙々と作業する会)に参加することで、業界最先端の技術に触れたり、有名プログラマに技術的アドバイスを受けられます。

また、モチベーションを上げる際も、勉強会の参加がおすすめ。当日勉強会に参加している人と一緒に勉強することもやる気につながります。

もし今後もつながれる仲間になれば、連絡をお互いに取り合って、勉強の進捗を共有しながら進めるのもいいでしょう。

初心者と上級者のプログラミングの違いを知っておこう

結論から言いますと、目安としてただ動かすだけ」以上のことを考えられるかが、プログラミング初心者と上級者の分かれ目です。

例えば、電卓アプリを作るにしても、初心者の場合は四則演算のプログラムを組むことから多大な労力がかかるでしょう。

また、計算結果がオーバーフローした場合のことや、不正な入力について考えなかったり、考えたとしても対処しきれないことも。

もしかしたら、最適でない処理を行っていて解を導くのがとても遅くなっているかもしれません。UIも既製品ほどのデザインではないかもしれません。

上級者はそれらの問題を放置せず、それ以前に問題が発生しないコーディングを行います。

ユーザーが操作しないであろうことも世に出す前にあらかじめテストで検証し、高速かつ安全に動作するコードを書くのが上級者です。

また、アイデアを働かせられること重要で、プログラムはただ動作すればいいのではなく、その結果が人々の役に立たないといけません。

プログラムが導いた結果が人々の役に立つには、できるだけ早く、正確であり、不正確さや問題が生じた際にはその旨をユーザーに伝えなければなりません。

また、結果を提供する時も受け取る側が理解しやすい形で提供するべきです。そういったことを考えて、プログラムを作成するのが上級者であるといえるでしょう。

フリーランスを目指すなら案件を受注して実績を積もう

フリーランスのエンジニア・プログラマーとして本業や副業で稼ぐのであれば、案件を積極的に受注して実績を積みましょう。

初めは単価が安くても構いません。案件を受注して実績を積めば、しっかりと仕事ができるエンジニアとしてクライアントに認知されます。

プログラミングのスキルがある程度身に付いたら、クラウドソーシングサイトなどを利用して、まず自分ができそうな案件を受注しましょう。

実際に働くことで自分の足りないスキルが見えてくるはず。その穴を埋めながらスキルのアップデートを繰り返すことが稼げるエンジニアになる近道です。

プログラミング独学におすすめの本5選

プログラミングは、書籍で体系だった形で学習するのがおすすめです。

不明な点が出てきた時に調べる辞書としても、入門書のような本が1冊あるといいでしょう。

本を購入する際には、発行年・版数ができるだけ新しいものか、自分の開発環境と同じものを選びましょう。

ここでは、テックキャンプの現役エンジニアたちがおすすめする、プログラミングの独学に役立つ本を5冊ほど紹介します。

  • リーダブルコード
  • Webエンジニアが知っておきたいインフラの基本
  • プロを目指す人のためのRuby入門
  • 退屈なことはPythonにやらせよう
  • 情熱プログラマー ソフトウェア開発者の幸せな生き方

リーダブルコード

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

言語に関係なく、きれいなコードを書くために必要なテクニックを教えてくれる本です。

きれいなコードとは、コードを見た瞬間に何をしているかが伝わってくるコードのことです。

初心者のうちは「何が良いコードか、何が良くないコードか」も分からないので、この本が役に立ちます。

おすすめの本として本書を選ぶエンジニアも多いです。

Webエンジニアが知っておきたいインフラの基本

Webエンジニアが知っておきたいインフラの基本 ~インフラの設計から構成、監視、チューニングまで~

この本の対象はWebアプリケーションエンジニアや、フロントエンドエンジニアとなります。

そのため専門的な内容も含みますが、普通にWebアプリケーションのプログラミングを行っているだけでは分からない、インフラの知識が詰まった本です。

Webサービスの高速化や、Webサービスのボトルネックを知りたい方の役に立ちます。

プロを目指す人のためのRuby入門

プロを目指す人のためのRuby入門[改訂2版] 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plus)

 

本書は、Rubyの言語の仕様から現場で使えるテクニックまで触れている、超実践的な内容で評価が高い一冊。

1つの言語の仕様をざっくり分かっていることは、他のプログラミング言語を勉強する上でも役立つので、Rubyから始める人にはぜひおすすめです。

退屈なことはPythonにやらせよう

退屈なことはPythonにやらせよう 第2版 ―ノンプログラマーにもできる自動化処理プログラミング

どういうものがプログラムを利用して自動化できるのかがわかる、非エンジニアや、エンジニア初心者向けの1冊です。

本の中のサンプルコードはPythonで書かれていますが、考え方そのものは他の言語にも応用可能です。そのため、この本で一度学んだ知識は長く使うことができます。

ExcelやWord、PDFファイルなどの有効活用法といったエンジニアでない方でも役に立つ情報が掲載されています。

内容が非常に多い本ですので、目次を参照しながら、自分に必要な項目のみを読んでいくのがおすすめです。

情熱プログラマー ソフトウェア開発者の幸せな生き方

情熱プログラマー ソフトウェア開発者の幸せな生き方

著者のChad Fowlerさんは、プロのジャズミュージシャンからエンジニアになりました。異色の経歴を通して、キャリア開発の重要性を語ったエッセイです。

これからエンジニア・プログラマーを目指す人々にとっては、「練習を続けること」という面で教訓となる1冊です。

プログラミングの独学に役立つ学習・質問サイト5選

ここからは、プログラミング独学で活用してほしい、プログラミング学習サイトを5つ紹介。どれも有料会員登録をしない限り、月額無料で利用できるサイトです。

  • Progate(プロゲート)
  • ドットインストール
  • Schoo(スクー)
  • Stack Overflow(スタック・オーバーフロー)
  • Qiita(キータ)

Progate(プロゲート)

 出典元:Progate

Progate」は、オンラインでプログラミングの学習ができるWebサービスで、全世界ユーザー数は300万人以上と圧倒的です。

イラストを中心とした「スライド学習」を採用し、直感的にプログラミングがわかるカリキュラムで学習を進めていきます。

学習した内容は実際にコードを書き、手を動かしながら実践。これによって実用的なプログラミングが身につくのです。

学べるプログラミング言語の数も非常に豊富で、HTML&CSS/Ruby&Ruby on Rails/JavaScript/Java/PHP/Pythonなどがあります。

プログラミング初心者にも学びやすい優しい言語を中心に学習を進めていきます。どう独学するか迷ったら、まずはProgateから始めてみてください。

▶️Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート]

ドットインストール

出典元:ドットインストール

ドットインストールは、短いレッスン動画で学習できる初心者向けプログラミング学習サイト

すべてのレッスンは3分以内の動画で提供されており、スマートフォンからも視聴が可能です。視聴だけなら移動中でも学習時間に充てられるでしょう。

導入となる初級者向けの動画のほとんどは無料で閲覧できますので、言語を学ぶ上で最初に見ておくと良いでしょう。

▶️ドットインストール – 3分動画でマスターできるプログラミング学習サービス

Schoo(スクー)

 出典元:Schoo

Schoo」は、ドットインストールと同じく、動画を使ったプログラミング学習サービス

異なる点としては、Schooの動画は生放送動画という点です。講師はリアルタイムで画面の向こう側で授業をしています。

そのため、もし分からないことがあればその場で質問できるという点が強みです。

近年、動画サービスは増えており、プログラミングも動画で学習できるのが当たり前。

動画は非常に便利で、内容を目で見て真似しながら学習ができるので、初心者がプログラミングを学ぶハードルも下がります。

しかし、動画を見るだけでは受動的な学習にしかなりません。プログラミングを身につけるためには自分で手を動かすことが重要です。

動画を見て終わりではなく、その内容に沿って自分でコードを書いてみることで、初めて実践的なプログラミング技術となります。

▶️Schoo(スクー) – 社会人向けオンライン学習コミュニティ

Stack Overflow(スタック・オーバーフロー)

出典元:Stack Overflow

Stack Overflow(スタック・オーバーフロー)」は、プログラミングに情熱をそそぐ人のためのQ&Aサイトです。

あなたが遭遇したエラーにどのようなことを試してみたか、具体的に何をしようとしているかを投稿すると、他のユーザーからその問題を解決するための回答が投稿されます。

「どうしてもこのエラーが解決できない!」という時に役立ちます。

学習メソッドを提示してくれるサイトというよりは、教材に載っていない内容を補ってくれる学習サイトというイメージです。

▶️スタック・オーバーフロー

Qiita(キータ)

出典元:Qiita

Qiita(キータ)」は、プログラミングに関する知識を記録・共有するためのサービスです。

記事に付けたタグや、投稿したユーザ・ストック数・投稿日時の指定など、細かな検索機能で記事を検索できます。

「この言語の◯◯について深く知りたい!」という時に見てみると良いでしょう。

また、Stack Overflowほどピンポイントではありませんが、エラーに対するハウツーが紹介されている記事もあります。

原因がわからず解決できないエラーに遭遇した時にはStack Overflowと合わせて見てみましょう。

▶️Qiita

プログラミングの独学に役立つアプリ4選

プログラミング学習は、パソコンだけでなくスマホでも可能。

スマホアプリは、まとまった勉強時間の取れないビジネスパーソンにとって、スキマ時間を勉強に当てられる効率的なツールとなるでしょう。

ここでは、基本料無料で使えるプログラミング学習に役立つアプリを4つ紹介します。

  • codebelle
  • アルゴリズム図鑑
  • プログラミングゼミ
  • Udemy Online Courses

codebelle

出典元:App Store

codebellは、iOSアプリケーション開発向けの言語であるSwiftを学べるアプリです。

1つのレッスンあたり約3分ほどで終わるので、電車の移動時間や、会社、学校の休み時間などを使って簡単に学習を進められます。

レッスンはチャットのような形で進んでいくので、文字量の多い参考書を読むよりも取り掛かりやすいです。

初心者がプログラミング言語を学ぶ初歩段階として利用すると良いアプリです。

アルゴリズム図鑑

出典元:App Store

プログラミングを学習する上で「アルゴリズム(問題解決のための方法を定式化した形で表現したもの)」を理解すると捗りやすいです。

このアルゴリズムをアニメーションによって学習できるのがアルゴリズム図鑑です。

このアプリで直接プログラミング言語を学習できるわけではないですが、もっと基本的な部分としてアルゴリズムを理解しておくことで学習の手助けになります。

プログラミングゼミ

出典元:App Store

プログラミングゼミは、小学1~3年生の子供達や、学校の先生の意見を反映して作成されたプログラミング学習アプリです。

ゲームのような感覚で、遊びながらプログラミングの基本から応用までを学んでいきます。

小学生から使えるということもあり、かなりゲーム性や遊びを用いた仕様になっているので、少々取り組みにくさを感じるかもしれません。

ただ、プログラミングの基本を学んだり、プログラミングに対する苦手意識を払拭するためのアプリとしては、一番おすすめできます。

Udemy Online Courses

出典元:App Store

Udemy Online Coursesは、プログラミング学習に特化したアプリではありません。

ただ、60,000以上の様々な分野の学習コースがあり、各専門講師が教えています。その中にプログラミングやウェブ開発などを教えてくれるコースもあるのです。

無料のコースもありますが、基本は有料。その分、有料コースは無制限で受講が可能ですので、ご自身の都合の良いタイミングで学習を進められます。

無料版では基礎の基礎、プログラミングに取り掛かる段階からスタート。もう1歩進んだ学習がしたい方は、有料コースの利用も検討してみてください。

プログラミングをゲーム感覚で学べるサービス・アプリ3選

ここでは、プログラミング独学に役立つゲーム感覚で学べるサービスとアプリを紹介。

  • テクノロジア魔法学校
  • 推しと学べるプログラミング
  • CheckiO

テクノロジア魔法学校

テクノロジア魔法学校は、ディズニーの世界観でRPG感覚でプログラミングが学べるサービス。

とても親しみやすく十分なボリュームもあるので、大人のプログラミング学習にもおすすめ。

特に、ディズニー好きの人はモチベーションを保ちながら、楽しくプログラミングが学べます。

▶️ディズニー・プログラミング学習教材「テクノロジア魔法学校」

推しと学べるプログラミング

出典元:Paiza

女性目線で開発されたPaizaが提供するユニークなサービス「推しと学べるプログラミング」。

イケメンのエンジニア男子の中から推しキャラを見つけて、一緒にプログラミングが学べます。

PHP・Python・Ruby・Java・JavaScriptなど、学べるプログラミング言語も豊富です。

イケメンがとてもやさしくプログラミング学習をサポートしてくれるので、女性だけでなく男性も癒やされながら独学ができるかもしれません。

▶️推しと学べるプログラミング | エンジニア男子と一緒にプログラミング!

CheckiO

出典元:CheckiO

CheckiOは、PythonとTypeScriptが学べる海外の無料プログラミング学習サイトです。

洗練されたUIとコンテンツCheckiOの魅力。基本は英語なので、プログラミングと英語を一緒に学びたい人にもおすすめです。

▶️CheckiO – coding games and programming challenges for beginner and advanced

「プログラミングがわからないからやめる」は絶対に避けよう

「プログラミングがわからないからやめる」は絶対に避けよう

プログラミング学習の初期においては「わからないことをわからないまま進める」ということは、必ずしも悪ではありません。

プログラミング初学者が最も忌避すべき考えは、「わからないからプログラミングをやめる」ことです。時間がかかっても、丁寧に取り組めばきっと解決するはずです。

挫折しないためには、目的を持ったり、積極的に交流会などに参加して仲間を見つけたり、SNSで発信したりしていくと良いでしょう。

スタートは何でもいいのです。さぁ、とにかくはじめましょう!

「もう、独学は無理!」と感じたらプログラミングスクールを利用する

書籍やいろいろなサービスを使ってみても、うまくアプリを作れなかったり、きちんと実力が身についているのか自信がないと感じる…

そういったときには、プログラミングスクールを利用して学習効率を上げましょう。

以下のページでプログラミングスクールを比較紹介しています。

スクールのメリットを知りたい方は以下の記事で解説しているので、参考にしてください。

無料カウンセリングを実施しているスクールもある

スクールによっては無料カウンセリングを実施していることもあり、スクールに通うべきか、どのような学習が向いているのかなどを相談できる場合があります。

無料カウンセリングを実施しているスクールの1つがテックキャンプ。受講前にカウンセリングを受けることで、悩みが解消する可能性もあるでしょう。

特に「いきなりスクールに通うのはハードルが高い」と考えている方ほど、無料カウンセリングがおすすめです。

テックキャンプの無料カウンセリングの詳細は、こちらの記事で紹介しています。

まとめ:初心者でもプログラミングは独学できる

「プログラミング独学の始め方入門」と題して、初心者が基礎から学ぶための勉強法、独学を効率的に進めるコツ、壁の乗り越え方などを解説しました。

独学のハードルはもちろん高いです。しかし、独学のコツを踏まえつつ、独学をサポートするサービスを活用すれば、難易度は下がります。

プログラミングスキルが身につくと、自作アプリを開発したり、ITエンジニアとして転職したり、業務の自動化で労働生産性を上げるなど、可能性が広がるでしょう。

プログラミング独学は必ずしも継続できるわけではないので、どうしても挫折しそうならスクールを利用することも検討してみてください。

↑目次へ戻る

【転職実績No.1👑】年収アップと自由な働き方を実現したいならITエンジニア転職!

こんな希望はありませんか?

  • もっと年収アップできる仕事がしたい
  • 時間や場所に縛られず自由に働きたい
  • 専門スキルで手に職をつけたい

という方は、ITエンジニア転職がおすすめです

テックキャンプなら、完全未経験🔰でも大丈夫!プログラミング学習〜エンジニア転職支援、副業案件獲得まで個別にサポートします👌

さらに給付金活用で受講料最大70%OFF

※2020年12月時点 3.テックキャンプ エンジニア転職は経済産業省の第四次産業革命スキル習得講座の認定も受けており、条件を満たすことで支払った受講料の最大70%(最大56万円)が給付金として支給されます

興味がある方は、以下よりIT転職のプロにキャリアのお悩み相談から始めてみましょう!

まずは無料で相談してみる

この記事を書いた人

テックキャンプ ブログ編集部
テックキャンプ ブログは株式会社divのオウンドメディア。テクノロジーを通じて人生をより良くしたい人のためのWebメディアです。 教養としてテクノロジーを学ぶ人や、プログラミング未経験からのエンジニア転職を志す人に貢献することをミッションとしています。学ぶことの喜び、挑戦することの楽しさを伝えていきます。

あなたの理想のキャリアに合わせた、テックキャンプの2つのサービス

Advertisement