ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

「どうやったらプログラミングがうまくなりますか?」に対するスマートなつっこみを返すにはどうしたらいいんですか?わかりません><

この記事が私の先生の手によりFacebook&Twitterにて公開処刑シェアされたので、少しだけ続きを書こうと思います。
その演習ではある学生さんがしきりに「教えてください!」と言って来ました。どうも基礎からあまりわかっていなかった体なのですが、それもそのはず、話によると他の大学から転入してきたのだそうです。向こうの大学でもプログラムを書くことがあったそうですが、何も考えずコピペすれば済む程度の課題しか出されなかったそうで、基本的なプログラムを書く演習だったにも関わらずかなり苦戦していました。「コンピューターとは友達になれそうにないです(´・ω・`)」と弱音ハクさんになってました。
その学生さんがある日、私に尋ねてきました。
「どうやったらプログラミングがうまくなりますか?」
正直困ります私に向かってそんなこと言われたって答えようが無いです
私自身、そのときは「場数を踏むとそのうち慣れてくるよ」程度の何のアドバイスにもならないことしか言えませんでした。デバッグ中頻繁にマウスに手が行くあたり手馴れていないようなのは見えていたので、ある意味正しいとは思うのですが、それだけだと言った方も言われた方も腑に落ちないでしょう。どうしたものか…
そうこうしていると、その日の担当の先生がよってきて「どうしたの?」と聞いて来ました。これはチャンスです。厄介な問題へのスマートな答えはこの先生にお任せしましょう。
先生は少し考えてから、こういう感じのアドバイスをされていました。他にも細かいことはおっしゃっていたのですが、大事そうなのはこの2点です。

  • とりあえずプログラムを書くというところから一旦離れて、どうすればやりたいことを実現できるか考える癖をつけたほうがいい
  • コピペすること自体は悪くないが、そのコピペした部分が何をしているのかちゃんと考えるようにしたほうがいい

ことばにすればどうってことはないのですが、その学生さんには思い当たる節があったのか、反省しつつもいい顔をして先生のほうを向いていました。その顔私にも用意してくださいよ
最後に、先生曰く「わからないことがあったら先生やTAに聞いたらいいから、授業の前半は僕ら暇だし*1」ということで解決したようです。

その場では言えなかったのですが、私は「楽をしようと考える」というのもひとつの手かなと思います。たとえば、キーボードから手を動かすのがめんどくさいからショートカットを覚える*2、同じ文字列を何度も打ちこむのがめんどくさいからコピペする、何度も同じコマンドを入力するのがめんどくさいからスクリプトを作る…この記事で披露した小ネタもそうですが、覚えるだけでだいぶマウスがお留守になります。その分キーボードにかじりつけるのでその分多くコードを書ける。すると短い時間でたくさんコードがかけるので、余った時間であれこれ考えられる…というのはどうでしょうか?

追記
「どうやったらプログラミングがうまくなりますか?」に対するスマートなつっこみ - わだいのたけひこのざっきにてスマートなツッコミをしていただきました。本文で答えを頂いた先生と同じく、「一旦離れる」というのは重要だということで、こういう回答をされています。

私だったら「学期中のプログラミング授業と同じ時間数を,プログラミングや計算機科学の本を読んで過ごすのはどうかな」と言うと思います.いわば足腰を鍛える活動です.

また、

ところで,「どうやったらプログラミングがうまくなりますか?」への定番ともいえるツッコミとして,「プログラミングがうまくなったら,何をする?」という,聞き返しも,頭の中に入れておいてもらえればと思います.

こちらは私もズバリ聞き返されると耳が痛いというか…真っ先には研究に活かすこと、それからこれの改良ですね。この先は?と聞かれるとちょっとまってくださいね…(fade out)

*1:授業の前半は空調のきいた室内でのいいウォーキングになります

*2:ショートカットを覚えるというイニシャルコストはこの際目をつぶりましょう