プログラミングの基本は、課題を組み合わせて新しい課題に対処し、足りないものがあれば自分で作ったり、他から調達したりするという、普段行っている事と同じことだとわかってもらえればいいかなと思います。 設計のコツは難しい問題をどうやって簡単な問題に置き換えるかだと思います。(例えば、100段の階段を上がるとき、一歩で上がるのは不可能でも百歩で上がるように、自分が解けるまで問題を細かくすれば、時間はかかっても可能になります(必要に応じて途中で休憩をします)。また、画面上でキャラを動かすことは出来ませんが、目の錯覚を利用して動いているように見せることが出来ます。) ごく一部の例外(天才?)はありますが、普通の人で不具合を見つけるうまい人は、たくさんの不具合を作って、試験でその不具合を見つけ、デバッグで不具合の対処をした人だと思います。(自給自足?!!)