Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / All-Topics

Craftsmanship

5.00/5 (1 vote)
19 Jan 2015CPOL1 min read 4.5K  
Craftsmanship

Reading and signing the Manifesto of Software Craftsmanship is a piece of cake, but how can one actually get there? Continuous learning is key to achieve excellence in any kind of discipline. How can that be practiced efficiently?

A common way of looking at the matter is: as one gets more practice, more experience, he/she will get better along the way and the amount of improvement is more or less proportional to the time spent on practice. I think such a one-dimensional explanation is not even close to reality. It doesn't explain why there are senior professionals with decade(s) of experience who keep repeating junior mistakes or why there are juniors progressing and performing brilliantly.

The most relevant pattern I recognized to explain these differences is not necessarily amount of initial theoretical knowledge or even intelligence but generic attitude toward the work. The cause of this may be very simple: completing a task to one's best knowledge only uses current knowledge. New knowledge is not gained, only by coincidence. Efficient learning requires a little bit more: critical thinking, constant evaluation of the solution and active effort to find improvements. Enthusiastic people often do this naturally. The improvements - however tiny they may be - accumulate and eventually make the difference.

Generic principles can be very useful guides for beginners and experts alike. This one I've read in a chess book and seems to apply to this topic fairly well: "Always look a little deeper, than it seems to be necessary".

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)