プログラミング教育所感

普段フリーランスでプログラマーをやりつつ、
empty canvas という組織で学習サポートを小規模ながら行っています。

そんななか、
プログラミング教育で何をすべきなのか悩んだので、
思考整理も兼ねて現状の思いをポエムとして綴ります。

ざっくり目次。
1. プログラミングの資質
2. プログラミング教育ですべきこと

プログラミングの資質

プログラミングは所詮人工言語を用いるので、
普段自然言語を使って生活している誰もがプロになれておかしくないと思う。

が、前提として必要な資質があり、
資質に関してはアドバイスはできても本質的な理解は最終的に本人の努力でしか得られないと思う。
それこそが『論理的思考力』だ。
論理的思考力が無いとそもそもプログラミングを教えても活用するにいたらない。

なぜ論理的思考を教えることが難しいのかというと、
論理的思考の説明が論理的になるからだ。
論理的思考が出来ない人は論理的な説明を理解できない。

プログラミング教育を通じて論理的思考を育てる。
といった側面は当然あるのだが、
論理的思考の種がある状態を育てることは出来ても、
種を用意することは出来ないと思う。

論理的思考の種を作るには以下がおすすめ。

* 書籍『入門 考える技術・書く技術』
* 数学の基本的な証明問題の反復
* ミステリー・推理小説を読む (伊坂幸太郎おすすめ)

プログラミング教育ですべきこと

論理的思考力を独学で伸ばしてもらったうえで初めて教える・教わる段階になる。

教育の中で取り扱うべき内容は以下。

* 基礎
  * 課題を適当な意味のまとまりに分解するアプローチ
  * 意味のまとまり同士に関係性をもたせるアプローチ
  * 既存のテクニックがなぜ求められ必要になったか背景説明
* 実践
  * 集団開発における個人開発との違い
  * 小規模サービスと大規模サービスの違い
  * 独力では経験しにくいケースへの知見
* 独力で身につけるべき事
  * 各言語の文法
  * 各種アプリケーションの設定方法

文法等に関しては、学習の原動力となるような目的を提案することは出来るが、
結局のところ書籍などで自分で学んでもらうしか無い。

学校の授業とかで経験があるかもしれないが、
一緒に書籍などを朗読したりシンプルなサンプルコードの解説をうけても、
わかったつもりになれど理解にはいたらない。
そのため最初から自身で理解できるまでとことん音読や写経するのが一番効率がよい。

外野として出来ることは様々な角度から尻を叩くだけ。

取り扱うべき内容の詳細も書きたいのだが、それを書くにはこの余白は狭すぎるので割愛。
※ ただ文章化出来ないだけです…。


この記事が気に入ったらサポートをしてみませんか?