電子工作の、特にデジタルとかプログラミングとかの場合、初心者は局所解に陥りやすい気がする。
例えば、ブレッドボードでLEDを点滅させるデジタル回路とかの場合。なんでもいいけど、とりあえずインバーターICとか。まずは作例通りに作ってみる。そこで動く人と動かない人が出てくる。動く人は、運が良いか、ちゃんと作り方を読んでいるか。動かない人は、作り方を読んでいないか、運が悪いか。
ここで、動かなかった場合にどうするかだが、説明書を読み直さず、あちこちいじくり回す人が出てくる。ジャンパーワイヤの場所を変えたり、部品の向きを変えてみたり。
例えば、LEDはアノードがRを介してICへ、カソードがGNDへ、という接続を指示されているのに、GNDではなくVDDに接続してしまった、という人がいたとする。たまたまジャンパーワイヤの場所を動かしているうちにGNDに接続して、正しい接続になる場合もあるし、たまたまLEDの向きを変えて、VDDがアノードになって、点灯した(でも論理は反転している)という場合もある。
後者の場合、回路として(作例と比較して)正しいものではないが、一見すると正常にLEDが点滅している。よく見ればLEDの点灯と消灯が逆なのだが、おそらく作例写真だけを見てそれを判断するのは、こういうミスをしてしまう人には不可能だろう(特にインバーターを介してLEDが複数個接続されて、点灯と点滅が入れ替わる、という回路の場合)。講師役が見ればおかしいと気がつくし、論理が反転してるならインバーターの入力か出力がおかしいはず、と推測もできるが、参加者はそれを判断できない。
なにかおかしいと感じつつも(あるいは何も気が付かずに)その回路を拡張するような次の作例に進むと、よけいわけのわからないことになっていく。
プログラミングの場合でも同じで、プログラミング初心者が「なぜか動かない」の状態から行き当たりばったりに書き換えていって「おっ、動くようになった!」となっても、その状態では恐ろしく不思議なコードになっていたりする(前にそういうコードを見たことがあるが、例を書こうにも僕には書けない構文になっていたので、例を出せないのが残念。念の為に言っておくと、それはC++で書かれていた)。
行き当たりばったりで摩訶不思議なコードが生まれた場合、せっかく動いてるんだから、それを書き直して読みやすくしよう、という考え方にはならないはず。そして、その動きをするにはこのコードが必要だ、と考えてしまった場合、必要以上に難しいコードを見て、「プログラミングって難しいんだな」と思ってしまう可能性がある。
電子工作やプログラミングの初心者、あえて名前を出せばArduinoを使い始めた人たち、といった場合、特に最近はSNS上での横のつながりが強く、初心者同士の相談が多く、その場合は余計に行き当たりばったりになりやすく、このような「局所解」に陥りやすい気がする。
ある程度わかってくると、「これは関係なさそうだな」とか「ここが怪しそうだな」と「鼻が効くように」なってくるのだが、そうでない人たちが集まると、そうならない。
あえて問題を複雑に考えて「こんなに難しいことは自分たちにはまだ早いよね」と、動かないモノを放置する口実にしてしまうこともある。
SNSでのやり取りを見ていて、「それは違うよなぁ」とか「ここはこうすればいいのに」とか思うことも時々あるんだけど、口を出さずに素通りしたりしている。ある程度先に始めた者としては、そこで口出しするのが役割だとも思うけど、あの人達怖いんだもん。。。「お前は俺に口出しをした。お前には最後まで付き合う義務がある」とか言い出すんだもん。。。
異論反論いろいろ出てくるだろうけど、SNSで安易に質問を繰り返す初心者は、結局初心者のままで、技量の向上は見込めないと思う。初心者から中級者、上級者になるには、問題解決のスキルを付けていくのみだが、安易にSNSに頼って自分では解決しない人は、問題解決スキルが一向に身につかない。逆に、自分で問題解決ができる人は、SNS等に頼る必要はないから、勝手に上級者になっていく。
結局、SNSの初心者相互援助グループは初心者がより集まり、技量が向上せず、濃縮されていく。
いや、面白いもの作ってる人もいたりするんだけどね。
それでも、声が大きい(目立つ)のは、そういう人たちのような気がする。
0 件のコメント:
コメントを投稿