プログラミング初心者ほど人から教わってはいけない理由
前回の記事では、「プログラミング初心者が他者から教わるべきこと」について自分の実体験を踏まえて解説していきました。
今回は、僕が学習塾で働いていた経験と、プログラミングを独学した経験から、「プログラミング初心者こそ他者から教わらない方が良い理由」について書いていき、その後「自力で解決出来なかった時の対処法」について簡単に説明致します。
※ここで言うプログラミング初心者とは、「これからプログラミングを基礎から学んでいく方」のことです。
簡単な自己紹介
僕は高校、大学ともに文系で、プログラミングを学び始めたのは去年の2月です。(この記事を書いている時点でプログラミング歴1年4ヶ月)
プログラミング独学期間半年を経て、プログラマーとして就職し、現在は主に製造(設計書を読み、プログラムを書いていく工程)を担っています。
大学時代、アルバイトで塾講師をしていたので、プログラマーになる前はそのまま塾会社に入社して働いていました。
・プログラミングそのものの解説は「初心者こそ」聞かない方が良い
これはプログラミングに限らないのですが、最初のうちこそ大変だろうが泣きそうになろうが教材を使って自分で考えて勉強することをオススメします。
何でも最初が一番簡単な内容で、その先は当然どんどん難しくなります。もし最初の簡単な内容すら自力で乗り越えられず他人からの教えを受けてようやく進める、ということを繰り返してしまえば、その先のより難しいことをどうやって自力で乗り越えるのか、と思うんです。
僕は塾で生徒に教えている時にこういう話をしていました。
「先生は○○くんが固くて食べられないものを、食べられるように柔らかくしているだけ。でも、それだけだと○○くんの噛む力は強くならないから、出来るだけ自分で噛まないといけない、ということは覚えておいて」
プログラミングでいうこの「噛む力」は、教材やネットの解説記事に出てくる文章を読み解く「読解力」や、その内容を自分の「今実現したいこと」に当てはめる「応用力」、自分のやり方の何がいけないのかを判断し、どうすれば良いかを考える「分析力」「思考力」だと思います。
これを総合して「プログラミング的思考力」と呼ばれるものと思っていますが、このプログラミング的思考力を高めるにはやはり、自分で出来る限り試行錯誤しながら理解し、進んでいくことが不可欠です。
しかし教える立場になる人の多くは、良かれと思って全力で噛み砕きます。ペースト状になります。そして、「こんなに分かりやすく教えてくれるなんて素晴らしい先生だ!」と評判になります。
いつでもどこでもその先生が物事を噛み砕いて飲み込ませてくれるなら良いんですが、そんなことありえないですよね。
じゃあどうやって自分で噛み砕く力を付けましょうか?
実際に噛む練習をするしか無いですよね。一度噛み砕かれたものをもう一度噛んでもしょうがないので、まだ噛み砕かれていないもの、つまり新しく学ぶことを自分で理解する練習が必要です。
新しく学ぶことのレベルが高くなってしまうと噛む練習にすらならず、歯が砕ける可能性がありますので、そういう意味でも「基本こそ自力で理解する練習」を意識しましょう。
・どうしても自力では理解出来ない場合の対処法
とはいえ、自分だけではどうしても理解出来ないことは必ず出てきます。そういう時は、自分がどのような考えで、どういうことをやっていて、でも今どういう結果になっていて、自分が思うようにいっていない、ということを伝えた上で、認識がおかしい点が無いか、ということを指摘してもらうようにすると良いと思います。
本当に必要な部分に絞って教えてもらう、ということですね。
ただ、これは本当に最後の手段なので、その前に
- 自分がやりたいことを箇条書きで書き出し
- どこからどこまでが正しく出来ているかチェック
- 正しく出来ていない部分の絞り込み
- 正しくない部分がなぜおかしいのか、仮説を立てて検証
これをやるようにすれば、大体の問題は解決出来るのではないかと思います。
終わりに
自分自身が長らく教える立場だったのですが、実はもともと「塾否定派」な考え方でした笑
もちろん教えるようになってからは生徒への授業に全力で取り組みましたし、生徒の成績を上げるために工夫を凝らしました。
ただ、こちらが手厚くやればやるほど、生徒は受け身になり、「噛み砕かれたペーストをただ飲み下すだけ」になっていました。
一時的に成績を上げることは出来ても、長続きはしませんでした。
最悪だったのが、中学生の時に大きく成績を伸ばすことが出来た生徒が、高校に進学してから全く付いていけていないと話してくれた時でした。
「自分は何をやっていたんだろう」と自分の講師としてのあり方を反省するきっかけになりました。
そんな経験もあり、今回の記事のようなことを考えました。
世の中にはたくさんの解説書があり、わかりやすい!と評判になったりもしますが、わかりやすく噛み砕かれたものばかりを選んでしまうリスクについて、特に初心者ほど意識しておくべきだと思います。
最後まで読んでいただきありがとうございました。
今後もプログラミング学習やプログラマーとしての仕事、副業に関することなどを中心に記事を書いていきますので、良ければ読んでいただけると嬉しいです。
Twitterもやっていますので、気軽にフォロー・リプライください。質問などもしっかりお答えします。