[no_toc]
途中で諦めてしまいそう…
プログラミング初心者にとって、プログラミング学習は未知の領域で不安の方が大きいでしょう。
プログラミング学習は「続かない」「途中でやらなくなった」「自分で進められない」などの理由から、挫折する人が多くいます。
せっかく始めたのに、途中で辞めてしまうのは嫌ですよね。
そこで今回は、プログラミング学習者が挫折しやすいポイントとその対策について解説します。
- 独学で学習することの課題
- その課題を解決する方法
上記のようにプログラミング学習者がつまずくポイントを理解し、対策をすることでプログラミングスキルを身に着けることができます。
独学の課題1:教材の壁
プログラミング初心者がまずつまずくのが書籍です。書店に並ぶ関連書籍を手に取り、開いた瞬間呪文のような文字の羅列が目に飛び込んできて
と絶望を経験した人もいるでしょう。プログラミングの入門時点では難解な単語が陳列されているように見えます。
そして先に進むためには、その単語1つ1つをしっかりと理解していかなければなりません。近年では初学者向けの書籍が増え、書籍から学習をスタートしやすくなっています。しかし、それでも難しいと感じる人が多くいます。
本を利用する際もどういう意図で使うのかを明確に工夫する必要があります。
対策:教材の壁
対策1:まずは動画学習で雰囲気を掴む
そんな教材の壁ですが、今日ではプログラミングに関する質の高い無料教材がどんどんリリースされています。
特に初心者にとってオススメしたいのが、ドットインストールなどの動画教材です。
実際に動画学習はとても有効的な学習方法であるということも研究で認知されています。例えば、デジタルナレッジ社の調査によれば過去に動画学習を行ったことのある100人の男女にアンケートをした結果「満足・おおむね満足」と回答した人は全体の86%というデータが出ています。
回答者が感じたメリットとしては、「音声や映像つきでわかりやすい」と回答した人が81%、「場所・時間にとらわれず専門的な学習ができる」と回答した人が53%とのことです。
動画でプログラミングを学べば情報量が限られてる分、要点を抑えて学べます。
また、わからない言葉が出てきても動画は視覚的にも分かりやすいため、真似をすることによってスムーズに学習を進めることができます。専門用語の多いプログラミングにおいて、分かりやすい動画はとても効率のよい学習方法になります。
動画学習のコツは2回以上繰り返し勉強することです。そうすることによって、頭だけではなく、体に染み込ませることによって、プログラミング基礎を叩き込むことができます。
対策2:実践型学習サイトが自主学習に向いている
プログラミング学習では、アプトプットが非常に大切です。もちろん動画を見ながら手を動かすことでアウトプットを同時に行う方もいるかと思いますが、動画を巻き戻したりやり方が最適化されていないので大変ですよね。
そのため動画学習は雰囲気を掴むために使い、実践型学習サイトで基礎固めを本格的に行うことをオススメします。
Progateなどの実践型学習サイトは、項目ごとに分けられており学習しやすい状態で提供されているものがほとんどです。手を動かしながら学習できるものが多いので、非常に学習効率よく学習を進めることができます。
また、どこから学習したらいいか分からない超入門者の方でも安心して学習に取り組むことができます。
対策3:書籍は辞書がわりに使う
学習サイトでは効率よく、よく使う文法や知識をインプットできます。基礎的なことや少しの応用レベルはマスターできているかもしれません。しかし、いざ開発現場に入ると動画学習で学んだこと以外の予想もしない指示を受けることもあります。
そもそもなんて調べていいか分からない
こんな場面に遭遇することがよくあります。インターネット上の情報にも限界があり、書籍からの情報収拾も大切です。書籍は完璧にマスターする必要はありません。
書籍は学習後も辞書的に利用することで、より効率的に知識を得ることができます。
独学の課題1要約まとめ(読むのが面倒な方向け)
プログラミング学習において、動画学習がオススメということでした。動画学習では2回繰り返す勉強法を実践すると良いでしょう。繰り返すことで反復して頭だけでなく体で覚えていきます。動画学習サイトとして有名なのがドットインストールです。
さらに積極的に基礎固めする際にはProgateなどの実践型学習サイトを活用しましょう。手を動かしながらスムーズに学習ができるように設計されています。
このような実践型学習サイトは、頭と体で学習するには必須の学習環境となりつつあります。
しかし、動画学習サイトや実践型の学習サイトでは網羅しきれない箇所をどうするのか・・・
それは書籍での学習が必要となります。書籍学習では、書籍の内容を全て学習・理解する必要はありません。あなたが必要としている点を学習しましょう。それができたら辞書的に使う使い方をおすすめしています。
まとめると教材の壁を克服するには・・・
- 動画学習で2回繰り返す学習方法をする
- 実践型学習サイトで手を動かしながら基礎固めの学習をする
- さらに応用的な学習には必要になった時に書籍を辞書的に使う
独学の課題2:時間の壁
読者の大半は社会人に当たるのではないでしょうか。もちろん、大学生だから、高校生だから時間があるとは言いません。
しかし、生計を保ちながら、何か新しいスキルを身につけるというのはどんなことでも時間という壁で阻まれます。独学のみでプログラミングスキルを身につけようとした場合、約1000時間の学習時間を確保しなければならないと言われています。
いかに、その時間を生み出していくかが命題になります。
対策:時間の壁
対策1:現状の時間の使い方を把握する
時間の壁の話を聞いて時間を無駄にできないことは分かったいただけましたか?時間を無駄にしないためには、時間をどのように使うかを知る必要があります。まずは自分の現在の時間の使い方を把握ましょう。
意外と何にどれだけの時間を使っているか、把握できていないことが多くあります。把握できていない時間=無駄に時間を過ごしていることが多いんです。最初は1日のタイムスケジュールをはかることから始めましょう。
時間管理ができる便利なツールとして、「toggl(トグル)」があります。行動別に時間を測定して、それをグラフ化して視覚化できるツールです。1週間ほど何に時間を費やして、どのくらい行動できているのかを調べることが重要です。
対策2:隙間時間を確保する
CITIZENの調査によるとサラリーマンの平均可処分時間、つまり「隙間時間」は「平均2.6時間 / 日と言われています。週5日働くサラリーマンであれば平日で13時間、土日に3時間ずつ学習時間を取れば1週間で約20時間、つまり1ヶ月で80時間になります。
仮に1000時間で習得できるとすると約1年で習得できる計算になります。通勤時間に動画を見たり、通勤前か後にカフェで学習時間を作ったり、いかにして平日の隙間時間を有効に使えるかが肝になってきます。
しかしながら、なんだかんだと時間は過ぎ去ってしまうものです。SNS・ゲーム・漫画・テレビなど、隙間時間も誘惑が多く存在しています。
本当にその計画通り学習を進めようと考えるのであれば時間を確保しつつ、学習するやる気、つまりモチベーションをしっかりと保つ必要があります。時間効率を上げる方法は工夫次第でも出来るので、次の記事なども参考にしっかりコミット出来る仕組みを作りましょう。
独学の課題2要約まとめ(読むのが面倒な方向け)
先ほどお伝えしたように、通常独学のみでプログラミングスキルを身につけようとすると、学習時間は1000時間必要だと言われています。時間があってもあっても足りないと感じてしまうぐらい長い道のりなのかもしれません。
大切なのはまず、現在の時間の使い方を把握することでしたね。
この時に使うツールが「toggl(トグル)」です。まずは現状何に時間を使っているのか把握することから始めましょう。次に意識するのが隙間時間を有効利用するということです。
サラリーマンの平均隙間時間は「2.6時間/日」あるので、仮に1000時間の学習時間が必要なら1年間の隙間時間でおおよそ確保できる計算になります。
まとめると時間の壁を超えるには・・・
- 現在の時間の使い方を把握すること
- 使うツールはtoggl(トグル)がおすすめ
- 隙間時間を有効活用すること
独学の課題3:モチベーションの壁
プログラミング学習はそのほとんどがエラーとの戦いと言っても良いでしょう。プログラミング学習に費やす時間の約8割はエラーの処理時間だと言われています。つまりつまづいている時間であると言われています。
プログラミングを少しでも経験された方ならきっと共感していただけるのではないでしょうか。プログラミングの習得には何度エラーとぶつかろうとも諦めない根気強さが必要になります。高いモチベーションを維持しつづけられるかどうかが挫折するかしないかの分かれ道です。
対策:モチベーションの壁
対策1:目的・目標を決めること
モチベーションを保つ上で非常に重要なこと、それは目的と目標を決めることです。何事もそうですが、ゴールがイメージできなければモチベーションを保つことはできません。
【まず目的を決めること】
あなたは目的と目標の違いを理解しているでしょうか?目的は「プログラミングを学習することで最終的にどうなりたいのか、どんな状態を実現したいのか」という点です。
心から自分が望む目的を設定出来ればそれだけで挫折する可能性をぐっと減らすことができます。目的の認識として気をつけたい点が一つあります。それは、プログラミングができるようになることを目的にしないことです。
というのでは、楽しさを感じることもできず殆どの人がすぐに投げ出してしまいます。例えば様々な新しいモノを見るのが好きなので、時間に縛られない働き方を実現するといったようなことです。自分を欲求で動かす事が出来れば、むしろ学習はやりたいことに変えていくこともできます。
【目的に沿った目標を決めること】
目標は目的を達成するまでのプロット、つまり道標です。一般的な目標の例としては「自分の作りたいサービスを作る」ということが効果的です。プログラミングスキルを用いて起業した堀江貴文さんも以下のようにアドバイスされています。
何でもいいから自分があったらいいなーみたいなウェブサービスを作ると実践的で早いですよ。カネかからないし。作り方はネットに書いてあるし。
作れるようになりたければ作ろうとしてみるというのは自然な考え方と言えるでしょう。なかなか堀江さんのようにはいかないかも知れませんが、目標を決めるのは重要であることはこの発言からも感じていただけると思います。
対策2:目標設定後の習慣化させよう
目標設定をすれば、モチベーションは確かに保たれます。ですが、目標を意識をしなければどんどんモチベーションは薄れていきます。そこで大切なのが習慣化です。やる気というモチベーションに左右される状態では、日々の学習にムラが出てきます。
そのムラを最小限にするために、学習の習慣化が大切になります。ではプロうぐラミング学習を習慣化させるには、どうすれば良いのでしょうか?
実は、あるコツがあるのです。それは、学習をスタートさせた時期はなるべく学習時間を短くし動画学習など軽めの内容にし、徐々に勉強時間を増やしていく方法が行動心理学的に習慣化されやすいと言われています。
独学の課題3要約まとめ(読むのが面倒な方向け)
まず一番の挫折の原因は、モチベーションの維持であることを再度認識しましょう。そのモチベーション維持に大切なのが、目的と目標を決めることでしたね。
「目的」というのは、自分が成し遂げたいこと、プログラミング学習を終えた先に得たい成果のことを指します。
「目標」は設定した目的に対して前進できる通過点のことを言います。
まず目的を設定し目的に沿った目標立て学習を行いますが、その行動を習慣化することが3つ目に大事なポイントです。行動の例で言うと、プログラミング学習をするという行動例が挙げられます。
プログラミング学習を習慣化させるコツとしては、徐々に勉強時間を増やしていく方法です。少しずつ行動量を増やしていくことは、行動心理学的にも習慣化しやすいとされています。
まとめると、モチベーション維持のためには・・・
- 目的を設定すること
- 目的に沿った目標を設定すること
- 目標に沿った必要な行動を習慣化していくこと
- 習慣化のコツは行動量を徐々に増やしていくこと
独学の課題4:最大の壁は自分
これまで3つの壁を紹介してきましたが、最大の壁は自分です。
これまで紹介した壁を感じてプログラミングが理解できず難しいや向いていないと思い込む人が多いく、学習を継続できない人が多いです。プログラミング初心者にとっては理解できないのは当たり前ですので安心してください。
基本的に新しい事を始めて得意となるまで、一万時間ほど掛かるといわれています。一万時間の法則といわれたりもします。プログラミング初心者のときは、理解できず辛いですが継続できるようにしましょう。
対策:自分に打ち勝つコツ
継続が大事と伝えましたが、継続するためにはコツが必要です。
- 横の繋がりを作る
- 相談できる人を見つける
横の繋がりを作ることは大切です。イベントに参加したりして学習仲間を見つけましょう。
一緒に学習する仲間がいると心強く継続しやすくなります。また、相談できる人を見つけることも大切です。どうしても自分では1人では理解できないときに気軽に相談できる人がいるだけで、自分に合った学習方法や学習手順、その人の経験を知ることができます。
そのため、学習の方向性が明確になりやすくモチベーションにつながります。
イベントに参加してみよう
横のつながりを作るために、まずはどんなイベントがあるのか探してみましょう。
そして、興味があるインベントには積極的に参加することをオススメします。不安もたくさんあると思いますが、まずはやってみることが大切です。
イベントに参加していい刺激を受け、プログラミング学習への意欲が高まるでしょう。また参加者との横のつながりをもち、学習を続ける手助けにしてください。
イベントなどは下記のサイトから検索できます。
この記事の復習
ここまでに学んだことをまとめると
教材の壁を克服するには・・・
- 動画学習で2回繰り返す学習方法をする
- 実践型学習サイトで手を動かしながら基礎固めの学習をする
- さらに応用的な学習には必要になった時に書籍を辞書的に使う
時間の壁を超えるには・・・
- 現在の時間の使い方を把握すること
- 使うツールはtoggl(トグル)がおすすめ
- 隙間時間を有効活用すること
モチベーション維持のためには・・・
- 目的を設定すること
- 目的に沿った目標を設定すること
- 目標に沿った必要な行動を習慣化していくこと
- 習慣化のコツは行動量を徐々に増やしていくこと
すでに学習を始めている方は思い当たる節もあったのではないかと思います。
この3つの壁を乗り越えることこそがプログラミングスキルを習得する必須条件になりますので、プログラミング学習をする際はぜひ意識してみてください。
- 知っトク雑学
- プログラミングを始めるのに年齢は関係ない
若宮正子さん(82)をご存知でしょうか?
若宮さんは81歳の時にプログラミング言語「Swift」をゼロから学び、ひな祭りをテーマにしたiPhoneアプリ「hinadan」を開発しました。
パソコンを始めたのが、60歳からだったとか。
プログラミングには年齢の壁なんて存在しないんですね。