No doubt, this can be usefull, but doing a small bank account example ten times over doesn't make you fully capable of writing financial applications. In the real world you are likely to meet real world challenges.
Now, what I like are challenges that make me better at core features or work methods. I like challenges like "here's a set of tests, write the method that makes them all pass". If you're good at that, you we'll be better at working with unit tests (TDD in fact).
After watching Justin Etheredge on Linq over at Tekpub, I've got an idea for a code kata. Recreate the Linq functions like Justin does in episode 1. Once you've got the hang of one, move to the next. That should keep you busy for the next month or so and you will be the master of new language features like extension methods, collection initializers, delegates, anonymous delegates, and lambas.
Here's how you might extend IEnumerable in order to implement a WHERE method:
using System;This method extends IEnumerable
using System.Collections.Generic;
namespace Linq.Kata
{
public static IEnumerable<T> Where<T>(
this IEnumerable<T> list, Predicate<T> expression)
{
foreach(var item in list)
if(expression(item))
yield return item;
}
}
var integerlist = new int[] {1, 2, 3, 4, 5, 6};
var integerResukts = integerlist.KataWhere(x => x % 2 == 0);
var stringList = new string[] {"anders", "christian"};
var stringResults = stringList.KataWhere(x => x == "anders");Some links:
Kata Catalogue
http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue
Mastering Linq @ Tekpub
http://tekpub.com/view/linq/1
No comments:
Post a Comment