コードを舐める日々

でざいんがいいかんじです

遅延評価的学習法によるタスク

今更ですが、この学習法について色々書かれているが、プロセスといったものがまだ少ないので自分のプロセスを書いてみる。

1.完成イメージを作る。(仕様作成)
2.完成に向けて必要なスキルを調査。
3.調査した内容を整理して学ぶべき手順(タスク)を洗い出す。
4.タスク消化
5.目標の中間的なもの(システム)を作っていく。
6.3から5の繰り返し
7.目標達成

かなと思う件。

もし、その目標、完成イメージについてある程度どのようにしていけばできるかっていう知識がないとうまくできないっていうデメリットをdankogai氏は述べている。
そのためにある程度、言語力をつけておかないとできない。
プログラム言語であれば、下記のタスクを消化できたらいいかな。
新しくプログラミング言語を覚えたいときに行うべき10の練習問題 | IDEA*IDEAより抜粋。

1. なんらかの文字列を無限で表示する(例:俺って天才!)。← 良く考えると危険だから「なんらかのカウントアップメッセージを1から100まで出すけど、3のときだけアホになる!(例:1万円!2万円!しゃ〜ん万円!とか)」に変更。
2. 現在時刻にあわせてやる気のでるメッセージを出力(例:もうすぐランチ!がんばれ!)。
3. 複数の数値を入力させ、昇順に並び替え、最大値と最小値を出す(例:同僚の体重を入力して計算)。
4. 簡易電卓。0で割ったときの処理を自分なりに作りこむ。
5. キーワードを入れてYahoo!の検索結果を出力。
6. テキストを入れると語尾が赤ちゃん言葉に(例:ですよ→でちゅよ)。
7. メールアドレスを入れるとあらかじめ用意されたテンプレートファイルにそのメアドを埋め込んだ上でメール送信(スパムはダメだよ!)。
8. 「(名前)が、(場所)で、(アクション)した」がランダムに組み合わされて出てくるプログラム。
9. URLを入れるとそのページのはてなブックマーク数が出てくるプログラム。
10. ある名前とある名前を入れると相性診断を10段階で出してくれるプログラム。診断結果は適当でもいいけど、同じ組み合わせだったら同じ数値が必ずでないといけないように。

上記の10つを消化できたとしてもよい書き方ができる(オブジェクト指向的な)とは限らない。
何回もプログラムを書くこと、読むことでクオリティの高いものに近づくんだな。
プログラムをある程度の処理をかけるようになってきたので、今後はものを作るためにどんなオブジェクトにどんなメソッドを置くかを考慮した書き方が必要になってくると感じた。
そうしないと使い回しが効かない使い捨てコードになりかねない。