【リアイム】


タップ(クリック)で消す



よみこみ中…








閉じる
もくじ

リアイム

アウトプット&知識の共有

プログラミング 挫折率が異常に高いと思う理由 本当に難しいの?

f:id:a1t2s2u2:20211212135152j:plain


プログラミングとは何かについてはこちらの記事を参考にしてください。
riaimu.hateblo.jp



プログラミングの挫折率

多くの方がプログラミングは「難しそう」「自分にはできないなどの認識を持っていると思います。実際のところ、挫折率はどのくらいなのでしょうか?

一般的に言われているのが、9割ですね。また、学習別の内訳はある調査では下の円グラフのような結果になっていました。

f:id:a1t2s2u2:20211213194418p:plain

しかし、本当にこれほどまでに挫折率が高いのでしょうか…?
プログラミングをする側としては「本当に簡単なのに」と思ってしまいます。そのズレの理由をご説明します。




独学での挫折率が高い理由

f:id:a1t2s2u2:20201206181616j:plain

僕は中学3年生の後半からプログラミングを始めてみよう!と思い、よくわからなかったためJavaを選択して簡単な本を購入しました。
Javaの絵本」というタイトルでイラストでプログラムの中身を理解しやすく、サンプルプログラムを見ることで文法の基本などを理解することができました。

僕的には本で学習するのはとてもおすすめです!


プログラミング言語は「Python」をお勧めします。



riaimu.hateblo.jp



環境構築

f:id:a1t2s2u2:20211212134725j:plain

プログラミング初心者の最大の壁である環境構築は多くの人が諦めてしまう要因です。パソコンを使い慣れている人でも環境変数の設定などで挫折してしまいます。

実際、僕もWindowsを使っていた頃に苦労したことを覚えています。何度もサイトを読み、順番通りにやったと思っても失敗してしまい、ゼロからやり直していました。

その頃はパソコン初心者でもあったため、なおさら困難でした。



テキストエディタのインストールについてはプログラミング言語の設定に比べると非常に簡単です。ちなみにおすすめのテキストエディタは「Visual Studio」です。拡張機能が数多く用意されていて、とても使いやすいです。



学習環境

f:id:a1t2s2u2:20201227122525j:plain

プログラミングを行う上で環境は非常に大切な要素です。
周りに理解者がいれば質問をすることができるため、学習のハードルは大きく下がります。しかし独学だと質問することが困難であり、学習をするには検索してサイトを探し回ったりします。英語の文章を読まなければいけないことも多くあります。


英語だらけ

f:id:a1t2s2u2:20211213204138j:plain

英語がわからないとエラー文を見せられても理解できないし、翻訳してもわからない。そんなことが多くあります。僕が始めたのは中学校3年生。英語も上手ではありませんでした。

しかし、(append)を使えば配列に要素を追加できるんだな。
(print)を使えば出力できるんだな。

といった漠然とした理解でも最初は大丈夫だと思います。
小学生でもプログラムを書くことができる人がいます。

「英語ができない → プログラミングができない」

というのは成り立たないでしょう。


全くわからない

f:id:a1t2s2u2:20200515103017j:plain

何から始めて良いのか」「何ができるのか」といった情報がありません。検索して調べてもなんだかボヤっとしていて、深い理解には辿り着くことが難しいです。

これはプログラミングでできることを具体的に理解することが必要です。また、簡単なプログラムの実行を通しても理解を深めることができます。

riaimu.hateblo.jp





本当にプログラミングは難しいの?

f:id:a1t2s2u2:20201227122632j:plain

プログラミングをする人からすると、挫折率の高さには疑問を抱いてしまいます。その理由をいくつかご説明します。


思ったより難しくない

f:id:a1t2s2u2:20211213204103j:plain

確かに最初は本を読んでも、サイトを見ても何をしているのかわからないことがあります。ですが、何度か眺めていると基本的なプログラムの構造が理解できるようになり、それまでの難しいという認識は大きく変化することになります。


実際にやってみて、最初の「全然わからない」期間が終了すればスムーズに学習を進めることができます。

数学との相性が良い

f:id:a1t2s2u2:20211213203212j:plain

プログラムでは変数の代入や、繰り返し処理などがありますが、数学で使うような考え方があります。

それぞれメリットがあって両方を適切に使い分けることが必要だと思っています。


・数学を使うメリット

例えば、素数の検出プログラムを作ったことがあるのですが、桁が大きくなるにつれて判定時間が多くかかってしまいました。
そこでフェルマーの小定理を活用したプログラムで判定をすると圧倒的に短い時間で結果を出力することができました。


・プログラムのメリット

数学では膨大な計算量が課題ですが、プログラムではどんな形の式や条件分岐でも可能であるため汎用性が高く、個人の数式の検証に最適です。


僕の作ったπの公式はプログラムで検証しています。
riaimu.hateblo.jp





英語ができる人は有利

f:id:a1t2s2u2:20200520114541j:plain

プログラミング言語の中には日本語で書くものもありますが、基本的に英語で書く必要があります。そのため英語がわかる方であれば、コードの意味を推測できます。エラー文もいちいち検索しなくても修正することができます。



意外かもしれませんが、英語の勉強にもなります。僕の場合はプログラミングによって英語の力が向上しました。エラー文はもちろん、検索して海外のサイトを参考にしたり、プログラムで使う単語を覚えてしまったりと、英語を習得する機会が多くあります。



挫折率が異常に高すぎる

やっぱり9割は僕からすると信じ難い割合です。
その理由をまとめてみると次のようになります。

わからない

プログラミング初学者の立場からすると

  • 何ができるかわからない
  • 英語でなんて書いてあるかわからない
  • どうやって勉強するかわからない

という「わからない」が多すぎるのです。

これを解決するには「とにかくやってみて、感覚を掴むこと」です。本を読むだけでは自分でコードを書けるようになるまで長時間かかってしまいます。
どんなに簡単なプログラムでも良いので作ってみましょう。

諦める

最初から挫折率9割という値を見せられ、一般的に難しいとされているため、チャレンジしたとしてもすぐに諦めてしまう人が多いと思います。


諦めないためには、

  • 最初から完璧を求めない
  • 楽しんでコードを書く
  • エラーは当たり前のことだと理解する
  • プログラミング学習友達を作る

などを行うと挫折しづらくなるでしょう。





記事を読んでいただきありがとうございます。
これらはあくまでも僕の独学を通して思ったことですので、もしかしたら独学に困難さは全くないといった方もいらっしゃるかもしれません。
なんにせよ、難しそうだからといって諦めるのではなく、実際にチャレンジし、ある程度継続をしてから挫折しましょう。継続しないで挫折したと思っている方が多いのかもしれません。



riaimu.hateblo.jp
riaimu.hateblo.jp
riaimu.hateblo.jp





記事の内容に間違いがあった場合は、Twitterもしくはお問い合わせフォームからお伝えください。