例えばスマートフォンアプリを作っているとする。このような場合、「アプリをつくる」というのは、おおまかに
- 端末内部で動いているプログラムや場合によって必要なサーバー側のプログラムなどのアプリのバックグラウンド(ユーザーの目に見えない部分)を書くことと、
- ユーザーが操作する画面UIデザインをして、このボタンを押すとこうなってからこうなる、とかのシナリオを考えて処理を書くこと
に分けられると思う。どちらも好きだけれど前までは後者の方がより楽しいと感じていた。ここ最近は前者に興味が傾いてきた(興味が追いついてきた)気がする。
特にスマートフォンで動くアプリは、無駄な処理を減らしたり、実装を少し改良するだけで、動きが想像以上に滑らかになったりするので面白い。いろいろ失敗して、試行錯誤するなかで、どのようにデータ構造で持っておくと(おけば)後々拡張しやすいか(しやすかったか)などを考えられるようになってきた気もする。
他にも、講義で色々なアルゴリズムを学んだり、大学の実験で超簡易RDF検索エンジンのようなものを作ったりしたことも良い刺激になっていると思う。
アプリのUI構築みたいに目に見えるところから、だんだんと深く潜り込んでいくスタイルの勉強法が合っているのかもしれない。