最近ちょっと思うのは、プログラミングのスキルのうち重要な1つは「パクる技術」かなあ、と。
ちゃんと文法を覚えるのも大事だけれども、それが完璧になるまで実際のプログラミングを待つと言うわけにはいかない。 そんな事していたら一生プログラミングなんてできない。 飛行機の操縦なんかも免許得る前の訓練の時間もその人の生涯の飛行時間に加算されるらしいが、それと同じで勉強と実際のアウトプットは同時になるしか無いし、その方が良いのではないかな。
自分はプログラマーとしてやっていくわけじゃないし、目的がプログラミングそれ自体じゃなくて結果だけ欲しいから特にそう思うのかもしれない。 なので他人のプログラムを読んで完全にわからなくてもコピーして、別の他人か自分のプログラムを足したりして改造して使う。
ゼロから書くのはとても難しいが、パクれば簡単? そりゃゼロからよりは簡単だけれど、パクるにはパクるなりの難しさもある。 解釈しないといけないから。 パクる時は同じような事をやっている何人かのプログラムを見る。 なぜか少しづつ違う。 こっちの人はこうなのにあっちの人はああだ。 どうして?
理由を解釈するとともに共通点も見る。 必要な最少限の要素は何か? それでやっと自分で使えるようになる。 わからなかった教科書が言っている意味もなんとなくわかるようになる。 でもわからないならそのままコピーしてみる。 最低限、動けばそれでもOKにする。 そのうちわかるかもしれないし、わからないかもしれない。
なのでどうやっても出来るまでに時間がかかる。 飽きるかもしれない。 なので長いの、あまりに複雑なのは書かない。 フィジカルコンピューティングは超短くても物が動けば成立するからその意味では勉強に良いようだ。