プログラミング学習を始めたけど、思うように勉強が進まない、諦めて辞めてしまいたい・・・
プログラミングを始めたばかりの方は、こんな悩みを抱えていませんか?
初めてプログラミングを学んだ方が、ほぼ通る道と言っても過言ではありません。
ですが、プログラミングを始めたあなたの判断は間違っておらず、将来的にも正しい選択だと言っていいくらいです。
なぜなら、
プログラマやシステムエンジニアのIT技術者は、常に不足している状態が続いており、経済産業省の調査によると、2030年にはIT人材の不足数が最大で約79万人になるという試算が出ているからです。
プログラミングを始めてまだ数か月と経っていないのであれば、是非、本記事を読んでプログラミングを続けていただきたいです。
本記事では、プログラミングを挫折することなく、継続するために、プログラミング初心者に起こりうる問題とその解決策についてご説明します。
うまくやれるプログラミング思考法
プログラミングを挫折することなく、継続するために、まず最初に理解してほしいのが、プログラミングに対する思考法です。
初心者が陥りやすい思考
おそらくプログラミングを始めたばかりの方は、書籍を購入して、プログラミングの文法(変数や繰り返し処理など)を一から学んで覚えていると思います。
基礎的なことを体系的に学ぶこと自体は悪いことではありません。
プログラミングをやる上で、武器を備えているわけですから。
ただ重要なことは、プログラミングの文法は、プログラミングによって何かを作るための「手段」であるということ。
プログラミングで何かを作る目的をはっきりさせないままに、「手段」ばかりを追い続けてしまうと、自分が何をしたかったのか?と目的・やる気を失ってしまうのです。
プログラミング初心者の心構え
手段を目的にしないために、一番先に、やってほしいこと。
それは、プログラミングで何を作るのか?という「目的」をまず最初に決めることです。
そして、その目的を達するために、プログラムをどう実装するのか(手段)を調べ学習することです。
目的と手段を逆に考えないようにしましょう。
『何かを作る・実装する(目的)』が先にあって、その次に『どうやってこなすか(手段)』を常に考えること
この思考法を常に頭の中に叩き込んでおきましょう。
目的ありきで、プログラムを作る。
そうすることで、プログラムが完成して、達成感が生まれるのです。
プログラミングに挫折感を味わう理由4つ
プログラミングに行き詰まりや、挫折感を味わう理由としてもっとも挙げられるのが、次の4つの理由です。
①環境構築でつまづいて先に進めない
IDEなどの統合開発環境を構築したり、開発言語用のパッケージをインストールしたり、環境構築でつまづいてしまう、これがプログラミング初心者に最初に訪れる挫折ポイントです。
ネット上にさまざまな情報が掲載されてはいますが、最新バージョンでなかったり、扱っている情報が入手しているバージョンと異なっていたりで、参考にするのが難しい。
さらには最新バージョンにするために、パッチを当てる必要があり、なかなか思うように構築ができません。
画面に表示されて出てくるメッセージも初心者には難しい言葉ばかりです。
結局、プログラミング言語の学習をはじめようとしても、プログラミングを勉強する前に環境作成で止まってしまいます。
②不明点・疑問点を自己解決できない
プログラミングが理解できないことを分解していくと、次のように分けることができます。
- 単語(命令、メソッド等)の意味を理解できていない
- 基本文法が理解できていない
- 処理の流れを理解できていない
独学でソースコードを見ても、基本的な知識が不足していて何がなんだかわからない、読み解けない状態です。
どのように理解してコードの流れを読み解くのかもわかりません。
何がわからないかが、自分でわからない状態です。
③プログラム実行時にエラーが発生し問題解決できない
プログラミングでつまづくポイントの代表格と言えば、デバッグでつまづくところでしょう。
プログラムエラーによるデバッグ作業を経験することでより、プログラムのエラーに詳しくなり、問題解決力が養われます。
まさにプログラムエラーはプログラミングのレベルをあげる最高の教師、と言いたいところですが初心者には鬼教官とも思える辛い作業となってしまいがちです。
プログラミングのエラーが出たけどどう対処したら良いのかわからない…プログラミングはデバッグ作業すなわちエラーをどう解決するかの戦いです。
特に初心者のうちは知らないエラーが出ると、どう対処していいかわからず、投げ出したくなります。
エラーをひとつ解消するとまた次のエラーがたくさん出てきて、もうどうしようもなくなってしまう。
プログラミングを初めて学習する場合、そんな経験は、誰もがすることでしょう。
④学習の目標がわからなくなった
毎日、少しずつでもプログラミングの学習を積み上げていくと、つまづくことがあっても、徐々にわからなかったことが、わかるようになり、プログラミングの楽しさを感じることができるようになります。
しかしある一定の期間が経ち、プログラミング学習の目的を見失うことがあります。
モチベーションが低下し、結果的に挫折してしまうのです。
プログラミングの学習すること自体が目標となってしまい、いわば自分を見失ってしまっている状態です。
プログラミングで挫折感を克服する方法
それでは、プログラミングで挫折感を味わう理由4つに対する解決策をそれぞれみていきましょう。
①「環境構築でつまづいて先に進めない」への対策
Udemyで学習する
Udemyは、ネット環境で動画形式でプログラミング学習ができるサービスです。
213000以上のコースから学びたいコースを選ぶことができます。
Udemyには、初心者にわかりやすい講座がたくさんあり、実際に講師が、プログラムを書きながら説明してくれます。
エディタの使い方や環境上の動作に初心者がつまづくそうな箇所も説明してくれるので、初心者にとてもわかりやすいです。
定期的にセールが行われており、セール期間中は1200円~1500円前後で購入が可能です。
セール期間中を狙って購入するのがおススメです。
・動画の中で実際にコーディングをして解説してくれる。
・環境構築の方法まで丁寧に解説してくれる。
・何度でも繰り返し視聴することができる(無期限)。
環境構築のコストが低いプログラミング言語で学習する
開発環境の仕様はプログラミング言語によって様々です。
初めてプログラミングを学ぶ初心者には、開発環境構築の負担があまりかからない言語を選ぶのがおススメです。
言語 | 開発環境 | 開発に必要なもの |
---|---|---|
JavaScript | 構築不要 | ブラウザ、テキストエディタのみ |
EXCEL VBA | 構築不要 | EXCELのみ |
JavascriptやEXCELVBAに興味がある方は、こちらの記事も参考にご覧ください
JavaScriptとは、どんな言語?できることを初心者向けに解説
②「不明点・疑問点を自己解決できない」への対策
最初は、習得しやすいプログラミング言語を選びましょう。
自分が習得するプログラミング言語がどの分野で利用されており強みを発揮するのか?言語を選ぶにあたっては慎重になると思います。
しかし、最初から、いきなり難易度の高い言語から始めて理解できずに、途中で挫折してしまっては元も子もありません。
まずはプログラミング初心者でも習得しやすい言語からはじめてみましょう。
一つの言語を覚えてしまえば、次の言語を覚える時に応用が利きますし、スピードもさらにUPします。何より成功体験を得ることができ、自信につながります。
おすすめ言語(その1)
おすすめ言語:JavaScript
JavaScriptはスクリプト言語で、WebサイトやWebアプリ、サーバサイドからスマートアプリまで幅広く活躍する言語でおススメです。
Webサイトに表示されている画像や地図を拡大縮小したり、画面に動きを持たせダイナミックなWebサイトを作成できるのが特徴です。
おすすめ言語(その2)
おすすめ言語:Ruby
RubyはWebアプリケーションのシステムを開発する時に使用される言語で、ITベンチャー系の開発で幅広く利用されています。
まつもとゆきひろ氏により、日本で開発されたプログラミング言語であり、書籍やネットには日本語で書かれたものが多く、初心者にとっても学びやすいオブジェクト指向のスクリプト言語です。
最大の特徴は何と言っても、文法が分かりやすくシンプルなコードが書けることです。そのため、特に初心者にはおススメの言語と言えます。
おすすめ言語(その3)
おすすめ言語:EXCEL VBA
VBA(Visual Basic for Applicationsの略)とは、皆さんおなじみのマイクロソフト社のOffice製品であるEXCELやACCESSの製品上で動作するプログラム言語です。
- 言語の構造がわかりやすく初心者にも親しみやすい
- VBA学習が次のプログラミング言語の基礎になる!
という点において初心者にとてもおススメの言語です。
③「プログラム実行時にエラーが発生し問題解決できない」への対策
プログラマは、自己解決能力がとても大事な職業です。
1日の大半が問題解決に捧げる時間と言っても過言ではありません。
問題解決能力を上げることで、エンジニア力上がります。
ソースコードをセルフチェック
エラーが発生しているということは、コーディングしたプログラムのどこかにエラーが潜んでいるのが大半です。
一度、冷静になり、自分で書いたソースコードをチェックしましょう。
エラーメッセージを確認し、ググる
エラーメッセージはエラーを解消する重要な手がかりになります。
どこにエラーがあるのか、吟味して読みましょう。
またエラーコードをググるのも有効な手段です。
エラー発生個所をコメントアウトする
エラー発生個所の処理のかたまりの単位で、一度、コメントアウトしてみましょう。
それから少しずつプログラムを再度、実装して実行していきます。
どの記述をしたタイミングでエラーになるのか、原因を特定すれば解決につながります。
QAサイトを利用する
ネットにはエンジニア、プログラマ向けに情報共有するコミュニティ・サイトが活発に運営されています。
各サイトにあなたが困っている問題がUPされていることもありますので、QAサイトを参考に見てみましょう。
また、QAサイトに困っている点を上げるのもありです。
プログラマに必須の情報収集サイトとして、QAサイトをこちらにまとめていますので、こちらの記事を参考にみてみてください。
④「学習の目標がわからなくなった」への対策
プログラミング学習は、あなたの目的を達成させるための「手段」です。
目の前のことに精一杯になるとつい手段を目的と混同してしまいます。
おそらく多くの皆さんは
プログラミングを学習して
- エンジニアとして就職したい。
- 世の中に役立つアプリケーション、システムを構築したい。
- 副業で稼ぎたい。
- スキルアップして転職して、年収をUPさせたい。
- フリーランスエンジニアになり案件を取れるようになる。
など目標に対して、どれくらい本気で目標設定しているでしょうか。
なぜなら、目標設定の土台がしっかりしていないと、人は簡単に挫折するからです。
学習が目的になってしまうと、どれだけ長く勉強してもエンジニアになれない可能性もあります。
どの仕事でも同様ですが、特に、エンジニアの仕事は
決して「楽して簡単」にできるものではないです。
中途半端な気持ちでは到底無理なのです。
プログラミングをやる過程の中で、どんな言語が面白いかという点で、
「この言語はダメだけど、こっちの言語は面白い、やってて楽しい、」ってことが出てきます。
そのため、勉強しながある程度、目標を起動修正していくのは全然OKです。
人は、なりたい自分・目標が定まれば、どうやって実現していくかをやるべき内容を意識して探し始めることができます。
さらに具体的な成果物(制作物)も見えてきます。
学ぶ内容が決まれば「ひたすら行動あるのみ」です。
まずは土台となる自分が何になりたいのか?
明確に思い浮かべて目標設定をしましょう。
プラトー現象は必ず訪れる!
プログラミングに基礎力は大事です。
基礎力が不足しているとなかなか伸びません。
基礎力をつけるためには、書籍などで網羅的に学びなおすことも、やはり必要になります。
とはいえ、努力していても、なかなか思うようにいかず伸び悩むこともありますよね。
プログラミングの学習は、スポーツや受験勉強と同じような性質があります。
受験勉強のように、一つの目標に対して努力を続けてきた人ならわかると思います。
プログラミングの技術というものは、勉強やコーディングの量に伴って「直線的」に上達していくわけではありません。
プラトー現象と言われる「成長と感じられなくなった状態」が発生します。
- 学習の上達度が速い
- 勉強しても伸びにくい時期(プラトー)
- 頭の中が整理されてさらに上昇する
大事なことは2つ。
- プログラミングの勉強は、必ずプラトー現象と成長の繰り返しであること。
- あきらめない。努力を超えた先に成長が待っている。
継続は力なりです。
逆にプラトーが来たと感じたら、スキルアップする時期がもうすぐ来るぞ!と思うぐらいの気概で挑みましょう!
まとめ
プログラミングに行き詰まりや、挫折感を味わう理由4つとその対策を述べてきました。
プログラミングの勉強していく中で、将来の自分をより明確にイメージできるよう、目標を常に再確認しながら勉強を進めていきましょう。
この目標に対して自分がどれだけ強い思いが持てているか、これが一番大事だと思います。
そして行き詰ったら、よし!プラトー来たぞ!
今は、自分が学習した内容の熟成期間。
頭の中で整理できるまであと、もう少し。
そう思って、乗り越えていきましょう。
今回はプログラミングの学習に挫折感を感じている方に向けて、記事を執筆しました。
最後までお読みいただきありがとうございました。
初めてUdemyにアクセスした方は、ほとんどの場合、時間限定のセールが開かれていますので、Udemyにアクセスして確認してみてください。
Udemyは仕事をしながら学びたい人やお金が無い人にも値段が安くて利用しやすくオススメです。
Udemyについて詳しく記事をまとめていますのでこちらもご覧ください。
\ セール開催中かを確認する! /