As part of my efforts around introducing Round Table : Squire, I’ve started a project to centralize useful pieces of code which have application across many projects. One of these was my code I wrote about some time ago, a Gravatar HtmlHelper extension. I’ve now centralized that code, the body of which can be seen below, into the Round Table : Armory project on github. If you’d like the full code, with all the tests, then just head over to the repository and download or clone it. If you have improvements, please feel free to send me a pull request.
So my new apprentice is hard at work trying to master all of the nooks and crannies of the .NET Framework, and it has forced me to think about how one teaches something this immense. One of the things most professional developers take for granted is how much of the .NET Framework they have memorized. Rote memorization of things like how to split a pipe delimited string into an array plays a huge factor in confidence and speed when we work as developers. But like trained martial artists, once these maneuvers become second nature, we don’t think about them. A black belt does not spend time thinking about throwing a block, he throws the block and then thinks about the level of force with which to respond. So in thinking through this, and re-reading about Coding Katas, or as my friend Sara Ford would writely call then Coding Kumite, I realized that what I needed for Chris was Coding Kihon (seriously go read that excellent article, I’ll wait). Out of this was born Squire, a basic drill that can be repeated that will train the user on various aspects of the syntax and framework libraries of .NET. At the current time it contains only two Kihon classes, specifically on System.String and System.Console. I expect this will grow rapidly over the next few weeks. You can grab the latest code at github, and be sure to check out the Wiki section for my recommendations on how to use the library in drills. Oh … and if you’re curious what the Round Table part is all about … you’ll just have to wait a little longer, as that is the topic of another post.
Writing great software is an immense joy in my life. I truly enjoy working with business users and other developers to craft software which can make a marked and immediate difference for a business, something that presents real value. There isn’t a lot of rocket science here, it goes to the fundamental desire of all humans to make a difference in our world. Fortunately for those who are looking for ways to do so, our world is full of situations that need to be adjusted. One of them, with all due respect to those in our industry who cling to their cherished degrees from universities, is that you do not need a four year degree to craft great software. Now certainly we all know people who have been successful without a traditional education, in fact you’re reading the blog of one right now. And I will be the first to tell anyone leaving High School that a four year degree is your most certain path to success in software development. But for some, that ship has sailed. For some, the reality of life is such that leaving work is beyond their reach because of the need to support themselves. One such person as this is Christopher Jackson, a good friend of mine that has exceptional analytic skills but who also finds himself functionally unemployed currently, having lost his last job to a downsize from the economy, he now acts as a substitute teacher in the Fort Worth Independent School District for the incredible sum of $73 dollars per day. Compare that to the average salary for an entry level developer, approximately $56K/year, and I believe you will agree that cultivating his interest into a marketable skill set should have an impact on his life. Chris has always had an interest in writing software, but it is hard to find time to go back to school while working. As such, Chris and I have come to arrangement, one that is an experiment for me but which I firmly believe in. Effective today, January 9th 2011, Chris has begun an unpaid internship with my company TimRayburn.net LLC which puts on Dallas TechFest and other projects of mine. During the internship, he will be working with me to increase his basic skills in development, and learn how to craft software from the ground up. Initially, he will be working on assignments with little real-world application, but eventually he will be assisting me on actual projects that deliver real world value. As I’m sure some will be curious on how I have structured this plan, I will lay out at a high level what is involved: A commitment to dedicate time to the effort. Chris will be spending time with my at least three days a week for multiple hours. A commitment from his spouse to support him in this effort. Chris is newly married, and his spouse needs to be on board if he is to have the support he will need at home. A time boxed commitment, for us initially of six months. This will allow Chris to commit, while also knowing that it has an end point, and that if he chooses to continue than changes can occur at that time. A penalty for not meeting the commitment. The details of which will not be public, but which are notable enough to impact his life should he decide to walk away from the commitment. A reasonable third party arbiter, trusted by both myself and Chris who will be able to settle any disagreements around the penalty should that need arise. My wife Kate will be serving that role, which for Chris and I who have been friends for over 15 years is agreeable. I do not know how this will go, but I am certain it will generate blog posts as I learn while I teach. Any suggestions? Average Entry Level Developer Salaries in Arlington, TX In USD as of Jan 9, 2011 25k 50k 75k entry level developer $56,000 Find Jobs & Salaries at SimplyHired