For years I have thought about sitting down and doing some CodeKata exercises. For those who are not aware, these are training exercises that you practice to get a through feeling on the problem. There is no right answer. Unlike your textbooks, these don’t have solutions. If you want a solution, then ask someone else for theirs. With that you can discus and debate the virtues and pain points of each design. I remember the senior most, alpha programmer at my second posting in my first job campaigning to do such exercises. Because of how regressive the environment was, it fell on deaf ears. It was not all wasted effort because I heard and remembered.
So why haven’t you done it?
That question is annoying but valid. I was lazy. There was no one to do it with hanging around. I am not social enough to seek someone out to fix that problem. CodeKata exercises are a social thing and every measure of every test of introversion, I am sitting in the top 1%. When I say this, no one believes me because my training was good at how to interact with people. Why that is important is another post.
Another issue was time. I didn’t have enough of it. As I am in a slow period now, I have the time to do little projects like this to improve my value. After several years, grinding away on a thousand and one pieces of code that I never can talk about because of NDA’s, I have not spent enough time growing deep. Growing wide, oh you bet your sweet bippy I have but not deep. Growing deep means challenging your existing assumptions and trying to do new things with your tools. NDA’s get in the way of that goal.
With these CodeKata exercises, I hope to plunge a bit deeper in what I already know. Clean up the vague spots and push froward to get better at my job.
How do we get started with CodeKata erxercises?
Like most answers of how to do something, take your favorite search engine and type CodeKata in it. You’ll find stuff. The series of exercises that I have selected to attempt is located here.
There will be no rhyme or reason to when I will do them. These are stretch goals for my master plan for the year. I will do each CodeKata as I have time for it. For each exercise, the rules for it will be established when I start. Expect there to be constraints I impose on myself. I suspect a time constraint will be done on many of them to prevent me from spending all day on it. When I get a hold of a problem I can be tenacious.
I probably won’t iterate through them as often as I could but I figured why not document the push through each exercise and maybe a couple of additional iteration along the way. This has the feeling of one of those things that I might start and then stop. At least I am going into this with my eyes open. Hopefully, it will be a fun and useful ride. I hope you join me on it.