
- 「プログラミングって独学で習得できるものなの?」
- 「これからシステムエンジニアとして働くならどの言語を学んだらいいの?」
これらの疑問を持っている人もいるでしょう。
一般的に、分からないところが出てきたときに自力で解決するのが難しいプログラミングは独学で学ぶのが難しいとされています。
しかし、その他にも独学では挫折しやすい理由があります。また、独学の難しさを知ったうえでこれから学習するならどのプログラミング言語を選べばよいのか悩むのではないでしょうか。
この記事では、独学の難しさをお伝えしたうえで頑張りたいと思っている人の役に立つような内容を解説したいと思います。
元システムエンジニアの私が現場で知ったリアルなことをお伝えします。

夜間大学在学中に、人材コンサル会社にて勤務。
営業や採用サポート、イベント運営などを幅広く経験。
その後、新卒でIT会社にシステムエンジニアとして入社。
開発や保守・運用に従事。
現在は、フリーランスライターとして活躍中。
プログラミングを独学で学ぶことが難しい5つの理由
ネガティブなところから入って申し訳ないのですが、まずは独学でプログラミングを学習する難しさをお伝えしなければいけません。自宅で黙々と目標に向かって頑張るのは大変な理由があります。
疑問点を自力で解決するのが難しい
プログラミングの独学における最大の難しさは、疑問点が出たときに自力で解決するのが大変なところです。
他の勉強であれば、テキストの答えを見たら分かることも多いですが、プログラミングでエラーが出ても、どこがどう間違っているのか探すのに苦労します。
そればベテランシステムエンジニアだって同じこと。経験や技術はあれば、ある程度予測がつくのですが、一つのバグを見つけるのに一晩かかることも。
何度も壁にぶつかると「もういいや…」となりかねません。たまにネット上で解決策を尋ねている人も見かけますが、答えてくれるかどうかも状況によって異なりますし、その解決策ですら合っている保証がありません。
そして初心者によくあるのが、プログラミングをした本人であっても状況をうまく説明できずにどう助けを求めたらよいのか分からないということです。どうヘルプを出したらよいか分からないと、独学で勉強し続けるのは難しいですよね。
学習のモチベーションを続けにくい
疑問点をなかなか払拭できないこととつながりますが、そのような状況が続けば学習意欲はどんどん落ちてしまうでしょう。努力が好きな人であればなんとか乗り越えるのかもしれませんが、プログラミングの挫折率は非常に高いと言われています。
目指すべき方向性を定めにくい
この記事を読んでくださっている人の中にも、どのプログラム言語をどのくらい学べばよいのか、独学でどのくらいプログラミング技術を身に付けることが可能なのか、不透明だという人が多いのではないでしょうか。
プログラミングと一言でいってもフロントエンドエンジニアやインフラエンジニア、データベースエンジニアなど、さまざまあります。将来どのようなシステムエンジニアを目指すかによって学ぶべきことが変わってくるのですが、果たして何が向いているか判断しにくいでしょう。
挫折しないためには目標を決めて、小さな成功体験を積み重ねていくのが大事です。しかし、そもそも目標を定めにくいプログラミング学習は苦労するのです。
覚えることが多い
元システムエンジニアの私は「いつまで経っても知識が身に付いたという実感が湧かないな…。無限に知らないことがある」と思っていました。
IT技術は日々進化していて、ベテランシステムエンジニアであっても調べながら仕事をすることがほとんどです。もちろん、技術や経験が積み重なったらずいぶんと楽になるのですが。
調べながら仕事をするといっても、ある程度は暗記しておかないととても納期には間に合いません。数年キャリアを積むと「こんなことも知らないんだ…」と無能扱いされてしまいます。たいそうな言い方かもしれませんが、生涯学習する姿勢が必要です。
プログラミングの向き・不向きがある
プログラミングの独学が難しい理由としては、そもそもプログラミングに対する向き・不向きがあることも挙げられます。
もともとプログラミングに向いていないあるいは好きになれない人が独学で始めたところで続かないのは当たり前ですよね。システムエンジニアは専門職と呼ばれますが、その技術を身に付けるのは簡単ではありません。
独学で学べるプログラミングはどの程度が妥当?
独学で学べるプログラミングのレベルは、個人的にWebサービスやアプリを開発するぐらいになることは可能だと思います。
しかし、それは創造するポテンシャルが高い人に限ります。私はプログラミングセンスのない人間だったので、独学ではとても無理だったでしょう。
とはいえ、現在ではさまざまなプログラミング学習サービスやテキストが販売されていることもあり、プログラミングスクールに通ったことのない学生が独学でアプリを開発したというニュースを見たことがあります。
これから独学でプログラミングを学ぶならどの言語がおすすめか?
「独学でプログラミング技術を習得する難しさを知ったけど、それでもチャレンジしたい!」という人のためにおすすめの言語を紹介しましょう。Web系フロントエンド・機械学習言語系・アプリケーション系の3つに分けて解説します。
まずは、web系フロントエンドから。フロントエンドとはwebサービスやwebアプリケーションで直接ユーザーの目に触れるところのことです。
何かのサービスに登録するときに、氏名や性別、住所などを入力しますよね。デザイン的要素があるので比較的プログラミング初心者でもとっつきやすいです。
HTML5
HTML5は、複雑な処理が簡単にできて、HTMLをより構造的にすっきり見せられる言語です。複雑な場合を除き、ブラウザ自体で動画や音声、グラフィックの描画が可能になります。
とりわけHTML5は、従来は長かったHTMLのコードがシンプルに済むので、どのコードがどの処理を行っているか分かりやすく、初心者向けです。
私はシステムエンジニアとして技術を高められなかった人間なのですが、HTMLはけっこう好きでしたね。
今後の需要は?
あくまでも個人的な予想ではありますが、HTML5の今後の需要はあると思います。活躍する場所は、サイト制作会社や広告代理店、その他の業界のシステム部など多岐にわたるはずです。
スマホやタブレットの普及や進歩によって、さらに需要は高まっているのではないでしょうか。
PHP
PHPは、動的にwebページを作成できるサーバーサイドのスクリプト言語です。ブログを投稿するシステムとしてよく使われているワードプレスをご存じでしょうか。
ワードプレスを含めたwebアプリケーションの開発にしばしば使われる言語です。小規模プロジェクトから大規模プロジェクトまで案件が幅広く、フリーランスエンジニアも活躍しているシーンが見受けられます。
今後の需要は?
PHPは今後が期待できる言語の一つです。求人数が多くなってきているので、需要が減ることは考えにくいです。初心者もとっつきやすいので、独学でのプログラミング学習における始めの一歩におすすめです。
次は、システムの主体といっても過言ではないプログラミング言語を紹介します。「プログラミング言語って何を使っていたの?」と聞かれたときにまず答えたい内容です。
python
Pythonは他のプログラミング言語と比べて分かりやすいといわれています。非常に多くのシーンで使われているので、テキストやプログラミング学習サービスは豊富です。
2019年におけるGitHubの調査では世界2位の人気を記録しています。少ないコードで分かりやすく書けるので、初心者向けのプログラミング言語です。
今後の需要は?
最近ではpythonを使ったWebサービスやAI関連のビジネスなどが増えてきました。
具体的には、IT/Web業界の求人・採用情報に強い転職サイトGreen(グリーン)にて「python」をキーワードにして検索をかけると、2020年12月時点で808企業2,006件の求人が見つかりました。けっして少ない数ではありませんね。
Java
Javaは、有名なプログラミング言語ですので、一度はその名前を聞いたことがあるかもしれません。Javaは多くの現場で使われ、汎用的でOSに依存しないという特徴があります。
私はSIerに勤めていたのですが、初めの研修で学んだプログラミング言語は、Javaでした。さまざまなプログラミング言語のもとになっているので、習得できれば応用が効くのでは?
今後の需要は?
Javaの需要は、どんどん登場する新しいプログラミング言語に押されて、やや勢力が弱まりつつあります。
とはいえ、官公庁や日本を代表する大手企業は発展途上の新たなプログラミング言語よりも成熟したJavaの方を好む傾向が残っています。
C++
C++は、「C言語」の機能をさらに拡張させたプログラミング言語です。C++は、C言語にオブジェクト指向を加えて、より効率よくプログラミングできるように作られています。
今後の需要は?
C++の今後の需要は、まだまだ落ち目ではないといえるでしょう。
とはいえ、C++のような以前からあるプログラミング言語は、新しい技術に追いやられる可能性は大いにあります。とりわけ給与面でこれから伸びることは少ないのではないでしょうか。
R
Rは、1995年に開発されたデータ解析・統計プログラミング言語です。主に学術や研究の分野で使われていましたが、近年では民間企業でも導入が進んでいます。データ分析や統計解析に関しては群を抜いて優秀なのが特徴です。
今後の需要は?
Rは、使われ続けているプログラミング言語ではあります。統計学には必須といわれ、膨大なデータを扱うクライアントを多く抱えている企業にRを扱える人材は積極採用されています。大きく需要が増えることは少ないかもしれませんが、学んでおいて損はないでしょう。
JavaScript
JavaScriptは、知らないあいだに大変お世話になっている言語です。パソコン・スマホ・最新の車に至るまで、多くのデバイスでJavaScriptが使われています。
デザインの役割を担い、ユーザーのwebブラウザとwebサイトまたはwebサービスの相互間のやりとりを円滑にするために使われています。ユーザーが使っていてストレスを感じない工夫をするために必要不可欠な言語です。
今後の需要は?
JavaScriptは、動的なwebサイトでは当たり前のように使われているので、技術が不要になることはないでしょう。
しかし、JavaScript単体で何かできることは少なく、他のプログラミング言語を操れて始めて活かせる技術だと思った方がよいかもしれません。
JavaScriptを利用したwebサイトやwebサービスは現代のトレンドです。今後の需要は加速していくことも予想されます。
Ruby
Ruby(ルビー)は、オープンソースのプログラミング言語で、シンプルでかつ読み書きしやすいといわれています。日本でまつもとゆきひろ(通称::Matz)により開発されたオブジェクト指向スクリプト言語という特徴があります。
今後の需要は?
Rubyの今後の需要は、爆発的に伸びることはなさそうです。プログラミング言語の人気度合いを示す指標として知られるTIOBEのデータによると、2018年5月時点では2.7%だったのですが、2020年1月には1%までに下がっています。
Jan 2021 | Jan 2020 | Change | Programming Language | Ratings | Change |
---|---|---|---|---|---|
1 | 2 | ![]() |
C | 17.38% | +1.61% |
2 | 1 | ![]() |
Java | 11.96% | -4.93% |
3 | 3 | Python | 11.72% | +2.01% | |
4 | 4 | C++ | 7.56% | +1.99% | |
5 | 5 | C# | 3.95% | -1.40% | |
6 | 6 | Visual Basic | 3.84% | -1.44% | |
7 | 7 | JavaScript | 2.20% | -0.25% | |
8 | 8 | PHP | 1.99% | -0.41% | |
9 | 18 | ![]() |
R | 1.90% | +1.10% |
10 | 23 | ![]() |
Groovy | 1.84% | +1.23% |
11 | 15 | ![]() |
Assembly language | 1.64% | +0.76% |
12 | 10 | ![]() |
SQL | 1.61% | +0.10% |
13 | 9 | ![]() |
Swift | 1.43% | -0.36% |
14 | 14 | Go | 1.41% | +0.51% | |
15 | 11 | ![]() |
Ruby | 1.30% | +0.24% |
16 | 20 | ![]() |
MATLAB | 1.15% | +0.41% |
17 | 19 | ![]() |
Perl | 1.02% | +0.27% |
18 | 13 | ![]() |
Objective-C | 1.00% | +0.07% |
19 | 12 | ![]() |
Delphi/Object Pascal | 0.79% | -0.20% |
20 | 16 | ![]() |
Classic Visual Basic | 0.79% | -0.04% |
参考:TIOBE Index for January 2021
プログラミング未経験者が挫折しやすいポイント3つ
最後に、プログラミング未経験でも途中で挫折しないように失敗しやすいポイントを解説します。誰だって初めは初心者です。この壁を乗り越えましょう。
プログラミング言語を学んで何をしたいかが分からない
ゴールを明確に定めるのは重要で、最初に「アプリを作りたい」「ECサイトを作りたい」というような目標を立てましょう。
何のために苦労してプログラミング言語を学んでいるのか迷ってしまうことになるためです。そして、その目標に向かって小さなものから作っていくとよいでしょう。
「次の画面に遷移させて入力した文字を表示させる」ということから一歩を踏み出してみては?
インプットばかりでアウトプットが少ない
プログラミングを学ぶなら、インプットしたことをすぐにアウトプットすることをおすすめします。まれにテキストを読み込むだけの人もいますが、知識が定着しにくいです。
独学でも学べるプログラミングサービスとしては、「Progate」や「ドットインストール」が人気です。「○○を作ってみよう」という気持ちが大事ですね。
100%理解することを目指してしまう
プログラミングでは論理的思考力が求められますが、論理的に深く考えすぎる必要はありません。私はどうしても理解できないものは「おまじない」として「よく分からないけど、したいことは実現できたからいいや」と放っておきました。
すると、ひょんなタイミングで理解できることがあります。点だった知識が、点と点をつなぐ線になる瞬間です。
プログラミング学習サイトを利用するメリット5つ
独学で学びたい人にとってプログラミング学習サイトは大変人気です。それは、5つのメリットを享受できるためです。
プログラミングを始めるのにプログラミング学習サイトは大変おすすめです。テキストや動画を見て学習し、実際に手を動かしてアウトプットする一連の流れで身に付く技術があります。
しかし、想像以上にプログラミング学習サイトは多くあり、どれを選んだらよいのか判断がつきにくいもの。この記事では、独学で学ぶのに適したプログラミング学習サイトを10個選んでそれぞれの特徴を紹介します。
独学でプログラミングのいろはを知りたい人に役立つ情報をまとめたので、ますは他の学習スタイルより優れている点を紹介しましょう。
かかるコストが安い
「自分にプログラミングが合っているかどうか分からない」と思っている人も多いのでは?プログラミング未経験だと、最初の一歩を踏み出すのに高額な費用をかけるのは勇気がいるもの。
もし合わないと分かったときにすぐに撤退できる条件をそろえておくと安心です。
コスト面において、プログラミング学習サイトは大変優秀です。ほとんどのサイトは無料からスタートでき、場合によっては無料適用範囲がずいぶん広いことも。
「とりあえずなんかおもしろそうだからやってみよう!」という気持ちで始めてみるとよいでしょう。何事もチャレンジしてみないとよく理解できません。やってみて、おもしろくなかったら辞めればよい話です。
いつでもどこでも学べる
プログラミング学習サイトは基本的にネット環境が整っていてパソコンさえあれば問題ありません。スライドや動画を視聴するだけなら、スマホやタブレットでよいことも。
プログラミングは小さな成功体験を積み上げることで技術を習得できるもの。いつでもどこでもすきま時間で学べるメリットは大きいです。
ほとんどのケースで環境構築を省ける
プログラミングをするためにはデータベースの設定といった環境構築が必要で、始めるまでは大変なのです。IT知識が浅い人はここで挫折してしまいそうですよね。
しかし、ほとんどのプログラミング学習サイトではその手間を省き、簡単に始めることか可能です。
私はITについて学び始めたとき、訳の分からないものをクリックして作動させるのが不安で仕方ありませんでした…。
今何をやっているか視覚的に分かりやすいプログラミング学習サイトは安心できますね。
何を学習したらよいかが分かりやすい
「よし!プログラミングを学ぼう」と思っても「何から手を付けていいやら…」と困ってしまう人が多くいます。
その点、プログラミング学習サイトはうまくステップアップできるように作られているので、とりあえず順番通りに触れていくうちに理解が深められるでしょう。「次はこれを学びましょう」と後押ししてくれるのはありがたいですよね。
きれいに基礎知識がまとまっている
とりわけ人気のプログラミング学習サイトは大変優秀で、汎用的に使える基礎知識が分かりやすくまとめられています。
例えば、基本である「コードを書くお作法」を知っていますか。そういったあたりも丁寧に教えてくれますよ。
プログラミング学習サイトはどう選ぶ?比較すべきポイント5つ
数多くあるプログラミング学習サイトの中から何を基準に選べばよいのか判断が難しいでしょう。いくつか試してみて合うのを探すという方法もありますが、これから紹介するポイントを参考にしてみてください。
無料で使える範囲はどこまでか
本音を言うとできるだけお金をかけたくないですよね。プログラミング学習サイトは無料で使い始められるものが多くあります。
しかし、それぞれのプログラミング学習サイトによって無料で使える範囲が異なっています。たとえ同じサイトでもプログラミング言語や学習スタイルによって料金が異なる場合があるので、必ずチェックしましょう
プログラミングで何を作りたいか
プログラミング学習においても達成したい目標を定めるのか肝心。とりわけ独学でスタートするなら、目標が明確でないと挫折する人が多いです。
「Webサイトを作りたい」「アプリを作りたい」「AI(人工知能)を開発したい」などといったさまざまな願望があるでしょう。プログラミング学習サイトを選ぶときは、何を開発したいかということを考えてください。
学びたいプログラミング言語があるか
何を作りたいかによって学ぶべきプログラミング言語が変わってきます。それぞれ代表的なプログラミング言語は下記の通りです。
- Webサイト開発:「HTML」「CSS」「JavaScript」
- アプリ開発:「PHP」「Ruby」「Swift」「HTML」「CSS」「Java」
- AI開発:「Python」
あくまでも代表的なものですので、実現したいことを決めたうえで適切なプログラミング言語を選択してください。
そして、プログラミング学習サイトで対応言語として採用されているかチェックしましょう。のちほど詳しく説明しますが、ドットインストールやSchooは、マニアックな言語にも対応していますよ。
事前知識はどのくらい必要か
学習難易度についても意識したいところです。小学生でもできるような超初心者向け・初めてプログラミングを学ぶ初心者向け・一度プログラミンを学んだことがある中級者向けなどに分けられます。
たいていのプログラミング学習サイトは理解しやすいように分かりやすく解説してくれているのですが、自分で環境構築をしなければいけないものや解説が省略ぎみのものなどがあります。サイトによって事前に必要な知識の前提が異なるのです。
どのような講座スタイルなのか
楽しく学ぶために学習スタイルに注目しましょう。テキストやイラストを中心とした「スライド形式」だけではなく「動画」や「ゲーム感覚で学べるもの」などがあります。
近年、一番多い講座スタイルは動画かもしれませんね。オンライン講座を受講しているかのような効果を実感できます。一度、「スライド形式」「動画」「ゲーム感覚で学べるもの」のすべてを試してみてもよいでしょう。
独学におすすめのプログラミング学習サイト10選
プログラミング学習サイトに興味を持っていただけたでしょうか。
それでは、おすすめのプログラミング学習サイトを10個選んで紹介したいと思います。おすすめの人や料金、公式サイトなどをお伝えするので、参考にしてみてください。
TechAcademy(テックアカデミー)
TechAcademy(テックアカデミー)のYouTubeチャンネルでは、基本からテーマに沿ったハウツーまで200近くの動画を視聴できます。まずどの言語を学ぶか悩んでいる人にとって有益な情報が詰まっていますよ。
元システムエンジニアの私は、とりわけフロントエンドの動画が分かりやすいと感じました。YouTubeチャンネルですので、プログラミング学習サイトに登録する手間すら省けますね。
- おすすすめの人:フロントエンドを学びたい
- 料金:無料
- 公式サイト:https://techacademy.jp/
Progate
Progateは、スライドを読みながら実際にブラウザ上でプログラミングできる学習スタイルです。「初心者から、創れる人に」をモットーにしているので、非常に分かりやすいプログラム内容になっています。
有料会員であっても月額980円ですので、負担は小さいのではないでしょうか。
- おすすすめの人:アプリ(スマホやタブレット)でも学びたい
- 料金:無料からスタート
- 公式サイト:https://prog-8.com/
ドットインストール
ドットインストールは、3分動画でマスターできるプログラミング学習サイトです。すべてのレッスンは3分以内の動画でまとめられているので、すきま時間を活用できるというわけですね。他のプログラミング学習サイトと併用している人もいます。
有料会員になると、不明点を先生に質問できるようになります。独学ですと不明点を自力で解決しにくいという点が挫折する理由になってしまいがちですので、有益ですね。
- おすすすめの人:すきま時間で学びたい
- 料金:無料からスタート
- 公式サイト:https://dotinstall.com/
Schoo
Schooは、IT業界で働く現役エンジニアやデザイナーなどが動画で授業を行ってくれるサービスです。最新のトレンドや動向などを網羅してくれるのが嬉しいところ。
平日の19時以降に行われることが多いリアルタイムの放送では先生に質問が可能ですので、時間を合わせられる人はぜひ。
- おすすすめの人:ITの最新トレンドや動向を学びたい
- 料金:無料
- 公式サイト:https://schoo.jp/
Codecademy
Codecademy(コードアカデミー)は、世界的に有名なプログラミング学習サイト。トップページのみ日本語対応していますが、英語をなんなく使える人におすすめです。
ブラウザ上でコードを書くエディタが用意されているので、開発環境を整えずに始められるのが嬉しいところ。学べる言語は、JavaScript・HTML・CSS・Python・Rubyなどと、大変豊富です。
- ■おすすすめの人:英語が得意だ
- ■料金:無料
- ■公式サイト:https://www.codecademy.com/
Udemy
Udemyは、近年日本語コンテンツが増えてきているプログラミング学習サイトです。実践的にアプリケーションを開発する授業があります。
150000のオンラインビデオコースから選択可能で、さらに新コースが毎月登場。有料の授業も少なくありませんが、キャンペーンをたびたび行っているのでタイミングを見計らってみてください。
- おすすすめの人:マニアックな言語を身に付けたい
- 料金:無料の授業も
- 公式サイト:https://www.codecademy.com/
paizaラーニング
paizaラーニングは、CSSやHTML、Ruby、PHP、PythonなどWeb開発・アプリ開発で必要な技術を習得できるプログラミング学習サイトです。
「C#入門編」「Python3入門編」「ゲームエンジニア入門編」などは完全無料。その他、一部無料の講座が多くあるので、チェックしてみては?
- おすすすめの人:就職・転職につながる技術を身に付けたい
- 料金:無料からスタート
- 公式サイト:https://paiza.jp/works
CodePrep
CodePrepは、基礎的な学習を分かりやすく習得できるプログラミング学習サイトです。
1冊10分で読めるブックでさくさく学び、実際にコードを自由に編集しましょう。編集したコードはダウンロードできるので、自分の成長を記録することも。
挫折しそうになったら、ディスカッションボードで質問ができます。独学の孤独感が軽減するの効果も期待できますね。
- ■おすすすめの人:独学だと挫折しそうだ
- ■料金:無料からスタート
- ■公式サイト:https://codeprep.jp/
シラバス
シラバスは、「バナナデザイン株式会社にwebデザイナーとして入社した」という設定で静的webページを作ったり、IllustratorやPhotoshopの使い方を学んだりするサイトです。
WordPressやHTML、CSSなどの知識がほとんどないことを想定しているので初心者におすすめです。
- ■おすすすめの人:webデザイナーになりたい
- ■料金:無料
- ■公式サイト:https://cyllabus.jp/
Scatch
Scatchは、とりわけ8歳から16歳向けにデザインされているプログラミング学習サイトです。実は、元システムエンジニアの私もここからプログラミングを始めました。
自由にインタラクティブストーリーやゲーム、アニメーションを作れ、オンラインコミュニティで他の人と共有することができるので遊んで楽しい内容となっています。
“学ぶ”というよりかは“プログラミングを楽しむ” や“プログラミングで遊ぶ”という感覚に近いかもしれません。
- おすすすめの人:ゲームやアニメーションを作りたい
- 料金:無料
- 公式サイト:https://scratch.mit.edu/
まとめ
プログラミング学習を独学でするのは難しいという解説から入ってしまい、絶望されたかもしれませんが、入り口だけ独学でおもしろいと思ったらスクールに通うのもありだと思います。
まずは無料でプログラミングサービスを利用してみませんか。
転職・人材業界に深く関わるディレクターが『今の職場に不満があり、転職を考え始めた方』や『転職活動の進め方がわからない方』へ、最高の転職を実現できる情報提供を目指している。
本記事はキャリズムを運営する株式会社アシロの編集部が企画・執筆を行いました。
※キャリズムに掲載される記事は転職エージェントが執筆したものではありません。
- 新着コラム
- 人気コラム
- おすすめコラム