It's that time of year again where you reach deep into your brains
to learn something new, and I reach deep into my pockets to reward
you with a toy for sending it to me.
This year it's back, and I'm giving you the choice between a 16GB iPod Nano, or
an 8GB iPod Touch (the iPod that's funner than all previous iPods).
So, with no further ado...
The Contest
For the next month, I'll be running a contest here for programmers to
promote learning something new.
In particular, since I think it's
useful to learn languages and
different programming paradigms, that's what this contest will focus on.
Last year it was very open-ended, perhaps too much so in that people didn't
really know what was submittable. This year, I'd like to give you the opportunity
of doing whatever you want (keeping it open ended), but with a couple of more
concrete suggestions:
If you normally do web development, explore a different world. Do
something for desktops,
gaming consoles like the Xbox 360,
or
electronics.
If you normally develop for desktops, try something for the web with
Silverlight,
Flex, or
html and javascript.
If you normally work in a dynamic language, try banging your head against the
wall in a static one. If you're used to working in memory-managed virtual machines,
do something in C/C++. Doing object oriented development?
Try something functional. If your experience has been in the static world
of Javaland and the like, try something more flexible.
Specific Examples:
If you work in Ruby on Rails, try something in C. Maybe you can contribute something
to MRI. Work with pointers.
If you work in ColdFusion, step away from the Java, Groovy, and Flex holy trinity
and try using the XNA framework to develop a simple demo you can play on your
Xbox 360. Or write some
search algorithms
in Lisp.
If you work in Java or C#, why not try something using
Ruby to work on an Arduino microcontroller. Film it.
If you work in Haskell or Lisp, you probably already know everything, so you'll have to convince me otherwise.
These are all just suggestions - on the higher and more complex end of the scale,
in the most idealized version of the contest. Virtually anything you submit
in the spirit of the contest will be accepted.
If you're not sure, shoot me an email
or leave a comment below, tell me your experience, and maybe I can
suggest something.
What's expected?
Not too much. A simple demo application. Maybe it takes a few hours of your time. Extend or fix an open source project that uses something you've not had experience with.
Just that you learn something new, and report on what you learned and your experience.
You also must share the source code!
You can report through an email or your weblog if you have one.
How do I win?
I will draw your name from a hat (or shuffled array) with an entry for each
project submitted. There is nothing based on the complexity of the project or
how cool or original it is. You only have to qualify, and you do that by learning
something new, submitting your project, and writing a report on it. I'd like
permission to edit and publish your report if you don't have your own blog to
post it on.
When do I get my prize?
I'll notify the winner via email on or around December 5, 2008.
The winner will let me know his or her choice
between the iPod nano and iPod touch, their desired color (if there is
a color choice), and their shipping address. I'll ship anywhere it's legal for
me to, as long as the cost isn't ridiculous (maybe above $50 or so).
After that I'll place the order and if allowed to ship to a place
other than my own address, I'll ship it directly to you. If not, I'll ship it to me
and then to you.
Effort will be made to get it out as soon as possible, in case you want to re-gift
it to someone else.
Overall,
the point is to learn something new, to have fun doing it,
and to get people involved in learning new concepts.
If you accomplish any two out of those three goals within the next month,
let me know about it and we'll enter you in the contest.
You have until December 5. Start coding.