Just For Fun: Using Programming Games in Software Programming Training and Education - A Field Study of IBM Robocode Community