Web系上場企業CTOが考えるプログラミング初学者の学習について
こんにちは、GMOペパボ株式会社 CTO室 鹿児島オフィスチームのよしこです。
今回は弊社CTO 栗林健太郎(通称: あんちぽ。以下、あんちぽさん)の言葉をご紹介しつつ、プログラミング初学者の独学について、私の思いをお伝えしたいと思います。
※ このnoteは、あんちぽさんから引用しているものの基本的に私一個人の考えに基づいた内容です。
弊社やあんちぽさんの考えを代弁するものではありません
きっかけは数日前、Twitterでプログラミングの独学についての投稿を見かけたときでした。
次のように初学者の独学に対して否定的な見解が述べられていました。
「主張に関して理解できる部分も多く、反論するほどディスカッションの余地が残されているような気もしない。なのになぜかモヤモヤする」
私は、そんな感想を持ちました。
そして、一昨日
弊社Slackのあんちぽさん一挙手一投足レポートチャンネル(通称CTOジャーナル)に、あんちぽ流 未履修分野学習法が流れてきました。
それを読んだとき、このモヤモヤが言語化できた上にスッと飲み下すことができました。
あんちぽさんご本人から公開承諾をいただいているのでご紹介します。
(引用)学習効率が下がってきてうれしい
(引用終わり。原文ママ)
本人のブログに詳しい内容が投稿されましたので、そちらもご参考ください!
結論
今回、私がお伝えしたいことはこの一言に集約されます。
何を当たり前の事を言っているんだと思われるかもしれません。
挫折についての言及は「そもそも論」の議論になってしまうので無意味であるとお考えの方もおられることでしょう。
しかし私は、プログラミング学習について――こと初学者に限った話では、まず「挫折しない」ことに全力を上げるべきであると考えています。
もう少し具体的に落とし込みますと、次のような主張です。
学習方法について、つまるところ正解や間違いはない。
(避けるべき道はあるにしても)
プログラミング初学者が模索・選択すべきは、
「自分に合っている学習方法」であって
「効率的な学習方法」ではない。
なので、プログラミング初学者の独学は、自分に合っていると本人が判断した上で継続できるのであれば、有力な選択肢の1つであると私は考えます。
本来、当noteではこのことについて述べようと思っていたのですが、あんちぽさんの言葉を最後までお届けしたいので別の機会に譲ろうと思います。
あんちぽさんが考えるプログラミング初学者の学習について
さて、上記のあんちぽさんの引用は、何もプログラミング初学者の学習方法について言及したものではなく、あくまであんちぽさんの自己流学習方法について述べられているものです。
それを私がプログラミング初学者の独学について置き換えただけに過ぎません。
そこで、このnoteを作成するに当たり、あんちぽさんからプログラミング初学者の学習に関する補足をいただいてきました。
併せてご紹介いたします。
学習するものは「何なのか」
「学術的な裏付けがある」とは、学問(体系化された知識)を学ぶということです。
別の言い方では、個人や特定事例による主張や経験則によるもの、知識に偏りがあるものを対象に学ぶことを避けるとも言えます。
(本当は避けなくてもいいんですが、偏っていると自覚する)
第一に概論を把握する
学問の知識量は莫大ですので、初学者が細微に至るまで学習するのは非効率ですし、必要ありません。
なので、まずは学問的な概論を学習することで、全体像(感覚)を把握に務めるべきです。
各論の学習は全体像を把握した後にしたほうが効率的ではないでしょうか。
私はプログラミングをよく建物の建築に例えて学習しているのですが、
まず「家はなぜ建っているのか」「建築方法にはどのようなものがあるのか」「家の基礎はどのような役割なのか」などを大まかにでも理解することが大切であるということです。
いきなり、「家の柱にはどの木材が適しているか」や「電動ドリルの使い方・おすすめ商品」から学習する必要は初学者にはないのです。
また、これまでの建築方法の変遷を大まかに理解することも大切です。
それによって、現在の成り立ちの理由が時系列的な根拠をもって理解できます。加えて、これからの流れ(変化)を見通す力にも繋がります。
初学者にとってのスクール(先生)の役割
繰り返しになりますが、初学者が第一に行うべきは、学ぶべき対象(今回はプログラミング)の全体像の把握です。
そして、全体像の把握には、可能な限り認知バイアス(興味ある対象ばかりを学習・記憶してしまう)を排除しないと、次のような情報を集めてしまう可能性が高まります。
- 優先度が低い情報
- 役に立たない情報
- 誤った情報
- 古くなった情報
- 偏った情報
- 悪意ある情報
優良なスクールに通ったり有識者にレビューをもらうということは、
認知バイアスを避けるためにとても合理的です。積極的にそうするべきです。
加えて、効率よく全体像を把握できるということも見込めます。
スクールも学習のための手段である。
先生につくということは学習方法の手段でしかない。忘れがちですが大切なことです。
目的を誤っている状態にも関わらず最良の手段について検討したところで、見当違いな結論に至ってしまいます。
ということで、あんちぽさんは基本的に先生につくことをオススメされていました。
今回述べられているその理由は、以下の通りです
- プログラミングが学問である自覚を持って「学問の学び」を行うほうが良い
- 最初に全体像の把握と歴史を大まかに学ぶほうが良い
- 学習の認知バイアスを排除したほうが良い
(具体例として、他人から教えてもらう・複数の入門書を読むなど)
- 以上を担保するために、独学よりも先生の下で学習するほうが良い
あとがき
以上のお話が、弊社CTOあんちぽさんの学習方法及びプログラミング初学者の独学についての見解でした。
私個人の解釈を交えてお伝えしましたが、分かりづらい部分や解釈違いな部分もあるかもしれません。
ここまで読んで「結局あんちぽさんもスクール派じゃん! 独学ダメじゃん!」となった初学者の方、結論はまだ早いです。
なぜなら、ここで述べられているのはあくまで「初学者の効率的な学習方法」についてだからです。
例えるなら「プログラミング初学者が最速でエンジニアになる学習方法」です。これについては私も異論ありません。
しかし、先述しましたが初学者が最優先すべきは「自分に合っている学習方法」であると私は考えます。
もちろん、「効率的な学習方法」は大事です。「非効率でいい」とも言いません。独学が「多くの人に合っている」とは微塵も思わないです
ならばなぜ、ここまで私が「自分に合っている学習方法」を推すのかと言いますと、プログラミング初学者が学習効率を求めた場合のドロップアウト率が圧倒的に高いことにその理由があります。
これについては、また別の機会に。
つまるところ、あんちぽさんのこの一言に全てが集約されていたのでした。
以上、よしこでした。
皆さんのご意見・ご感想をお待ちしております。
お付き合いいただき、ありがとうございました!
この記事が気に入ったらサポートをしてみませんか?