2017-11-22

プログラミング初心者にメンターが必要な理由

よく、プログラミング初心者に対して、「ググればわかる」と乱雑に教える人がいます。個人的には半分あっていて、半分間違っているなおと思います。なので思ったことを少しまとめてみます。




「ググればわかる」のが理想的なスタンスなのは間違いない



たしかに、「ググればわかる」というのは、ある意味理想的なプログラマーとしてのスタンスだと思い、それを初心者のうちから目指すのはかなり大事なことだと思います。大体プログラミングは最初から答えがそこにあるわけではなく、様々な知識を組み合わせて問題解決していくプロセスをたどります。だから、最終的にはググれないとよいプログラマーにはなれないと思います。


経験(言葉・知識)がなければ、ググれない



しかし、基本的に、何かをググるという行為は、知識、経験がなければできません。例えば、自分が何かコードを書いていて、エラーが起こったときに、よくプログラマーがやる


  • 「エラーコードを検索する」


という手法はまったくの0の状態から思いつくことはまれです。ほかにも、デバッグをしたいときに、


  • 「ログを出す」


というのも、経験から得られる概念なので、ログの出し方を検索することがありません。


どんなプログラマでも、いきなり天才的何かが思い浮かんだわけではなく、過去の経験を組み合わせて、それを根拠に仮説たてて検証してるだけですね。(たまに、問題解決能力の転移が非常にうまく、何も聞かずに片付けられてしまう人もいますが)


なので、最初は初心者は経験がないと仮説すら立てられないので、検索して問題解決するということは非常に困難です。


メンターは、魚が欲しい人に魚ではなく釣りの方法を教えられる


で、こういうデバッグだったりとか、検索の仕方って、そもそも初心者の人には得られにくい情報なんです。なぜなら、このデバッグや検索の仕方自体を検索する語彙力を持ち合わせていないから。つまり、検索の問題点は、発想しえないものは検索できないので、初心者はいつまでたってもこの発想を行うことができないわけです。


その点、メンターはネットに乗っているような知識を教えるのではなく、ある問題をどういうアプローチで解決してくれるかを教えてくれます。


例えば、エラーが起こっていてわからない場合は、そもそものエラーの原因を特定するために、ログを出力するメソッドを教えてくれたりすると、「あぁ、こういう風に解決できるのか」ということがわかり、自力でググって解決できるようになります。


また例えばエラーを検索しても答えが出てこない場合、どういう風に検索したらいいのかがわかるように教えてくれたりします。ちなみに、いま私がやっているプログラミング教育では、

  • 日本語でアルゴリズムを書いて
  • それでやり方がわからないところを検索し
  • それでも見つからなかったら英語で検索する

みたいな方法を教えています。


このように、メンターに、答えではなく、そこにたどり着く方法をインストールしていくと、初心者でも多くの経験を積むことができ、それをもとに自走することができるようになります。初心者のプログラマーには、補助輪が必要な期間があり、問題解決のプロセスが言語化できるようになって初めて、未知の課題でも解決できるようになると思うのです。


なので、初心者のうちは特に、補助輪としてメンターがいると、非常に効率的に学習することができるようになると思います。もし、プログラミングを学習していて、メンターが必要になったら、こちらも見てみて下さい。




初心者向けにプログラミング学習をサポートします プログラミングで挫折し、誰かの助けが欲しいあなたへ|プログラミング | ココナラ

何かプログラミングでやりたいことがあっても、それをどう実現したらいいのかがわからなかったり、エラーを一人で解決できないことは多々あります。僕の場合、最初は挫折しました。最...





注目の投稿

 PythonのTweepyを利用して、Twitter APIを利用している。 その中で、ハマったポイントをメモしておく。 まず、Searchに関して。 Twitter検索は、クライアントアプリ側では、全期間の検索が可能になっている。 一方で、APIを利用する際は、過去1週間しか...