フォト
無料ブログはココログ

« かかわると面倒くさい人 | トップページ | FM用ディスクリコイル »

2019年2月 1日 (金)

プログラミングの講義 <言語仕様とIDEの使い方ではない>

 ★ 言語仕様の解説と開発環境(IDE)の使い方と例題を体験するだけで良いのか?

 プログラミングの講義を頼まれた若い人が集まって実習をどうするか話していた。
聞くとはなしに聞いているとなかなかまとまらないようだ。割り当てられた短い時間で、プログラミングができない人をログラミングができるようにすることはかなり難しい。

 話している人たちは職業プログラマーではない。
もっぱら作業を自動化、効率化するためにプログラムを作っている人たちだ。

 講義する相手も職業プログラマーではない。
作業を自動化効率化する手段として、プログラミング能力を獲得したい人だ。

〇教えることを言葉や図表にして説明できるのか?

 「君達はどうやってプログラミングができるようになったの?」と聞いてみた。
Hello wordを教えてもらったあと、課題を与えらえてクラスメイトと一緒に試行錯誤して覚えたらしい。

 なるほどスパルタだ。

 おそらく、体系だって教えてもらったのではなく、試行錯誤の中から学んだのだろう。
試行錯誤して学ぶことは重要だ。しかし、試行錯誤の結果は暗黙知になることが多い。
そして、暗黙知を伝えることは難しい。

 技能を伝えようとすると、言葉や図表で表すことができる形式知にする必要がある。
彼らが教えてもらった教師も、プログラミング能力の獲得方法が形式知化できていないから、言語仕様だけ教えて、後は課題を与えることしかできなかったのだろう。

 教えてもらっていないことは、教えることができないのだ。

 自分がプログラミングできるようになった過程を、言葉にして説明するか文書にしてみると良いとアドバイスした。

★ 暗黙知は形式知化しなければ伝えることはできない

〇 問題解決手段としてのプログラミング

 ソフトウェア開発が主業務ではない人がプログラミングするときの手順は

  1. 問題を分析
  2. プログラムで解決する問題の明確化
  3. アルゴリズムの決定
  4. コーディング
  5. テスト(不合格なら前に)
  6. 評価

だ。 業務でプログラムを作っていない人や、1人でプログラミングしている人は、上記のステップを意識していないことが多い。

 分業しようとするとステップ間で、決定事項を誤りなく伝えなければならないから、それぞれのステップでアウトプットを明文化することが必要で、そのために、共通のフォーマットや図表が必要になる。

 要件定義書とかプログラム仕様書は分業する上では重要で必ずアウトプットする必要がある。 しかし、1人でプログラミングする場合には途中のステップでアウトプットするのは面倒だし、このステップを意識していないことも多い。

 良く言えばアジャイル型開発だが、そもそも、それぞれのステップが渾然一体となっているので分離することができないだけとも言える。

 プログラムは作れるけど、特定の言語や特定の開発環境にこだわる人はたいていこのタイプだ。 このタイプの人は、プログラミングの過程を形式知化できないので、人に教えることができない。

 プログラミングの講義と言いながら教えていることが、開発環境の使い方だったりする。 さすがにこれだけでは役に立たないので例題を与える。 具体的な質問をすると具体的に教えてくれるが、抽象化していないので応用が効かない。

 つまり、教えられる人はいつまでたってもプログラミングできるようにならない。

 そういえば、彼の案件も言語が指定(C#)されている時点で怪しい。C#とVisualStudioの使い方を教えてお茶を濁そうとしているのか?
 言語仕様と開発環境は誰かが形式知化しているから人に教えることができる。 そのほかの部分が形式知化できていないので他所に振ったのか?

★ プログラミングを教える人は暗黙知を形式知化すること

〇 教えることは、言語仕様や開発環境の使い方なのか

 言語仕様を教えたらプログラミングができるようになると思っている人が残念ながらまだいる。コーディングとプログラミングを混同しているのだ。だから、プログラミングの講義の内容が言語仕様と開発環境の説明になったりする。

 職業プログラマーでもなく仕様をプログラミング言語で記述するコーダでもなく、欲しい能力は、問題を解決する手法としてのプログラミング技能という人は多いだろう。

 つまり、すべての人に職業プログラマが必要とする知識・能力が必要ではなく、与えられたり発見した問題を分析して、問題を解決するアルゴリズムを考えて、場合によってはプログラミング言語を使用してソフトウェアを作ることが求められている。

 だから、多くの人にとって、言語仕様やIDEの使い方はプログラミングの極々一部の些細なことで大したことではない。

★ 「プログラミング教育=言語仕様、IDEの使用方法の説明」ではない!

 もちろん講師が用意した例題を解いてみることでもない


最近の投稿】【最近のプログラミング】【2018の投稿】【2017の投稿】【2016の投稿】【2015の投稿

« かかわると面倒くさい人 | トップページ | FM用ディスクリコイル »

プログラミング」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: プログラミングの講義 <言語仕様とIDEの使い方ではない>:

« かかわると面倒くさい人 | トップページ | FM用ディスクリコイル »

2020年9月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

最近のトラックバック