Practice, practice, practice!

There is an old joke about a man who is lost in New York City. He stops someone and asks, “How do I get to Carnegie Hall?”. The other guy answers, “Practice, practice, practice!”

We all want to improve our skills, and we know that, to get better requires practice. Muhammad Ali famously said, “The fight is won or lost far away from witnesses – behind the lines, in the gym, and out there on the road; long before I dance under those lights.” In other words, the time spent in practice determines the quality of your performance.

Continue reading “Practice, practice, practice!”

Follow the Leader

Master carpenter

Building great software is like building a house. It’s possible to get prefab walls and fixtures and assemble the pieces quickly and have a nice, simple, livable house. In the same way it’s possible to teach yourself the basics of software development and assemble a nice, simple, usable computer program. Of course, if you want to make a change to either, it quickly becomes a very big problem.

Continue reading “Follow the Leader”

Refactor Bad Code Series #1: Joining forces to avoid bad code

Let’s be honest: there is a lot of really bad code out there. The tsunami of bad code cannot be overcome by the relative handful of gurus who have mastered code craftsmanship. Books become outdated, and the examples in training courses are so contrived that they can’t be applied to real work situations. Developers these days need byte-sized chunks of wisdom using real-world examples that can be applied to the work they are doing today. Continue reading “Refactor Bad Code Series #1: Joining forces to avoid bad code”

Master Your Tools

There are many skills necessary to be a successful software developer: language skills, mathematics, problem analysis, procedural thinking, patience, among many others. And for an area of specialization there are specific technologies to learn: Javascript, Hibernate, EE4J, etc.

All of these skills are essential to be able to perform as a competent software developer. But mastery in the craft of software development only comes with time and practice. Continue reading “Master Your Tools”

Coding for Christmas

One thing that has been promoted by software craftsmanship leaders for decades is the important of practicing your craft. The 10,000 hour rule put forth by Anders Ericsson and popularized by Malcolm Gladwell talks about having consistent, deliberate practice to become a master in a field. This isn’t just writing “Hello world” thousands of times. It’s deliberate practice specifically designed to help you learn new skills and refine the skills you have. Continue reading “Coding for Christmas”