This week I gave a presentation about Software Craftsmanship at the Norwegian University of Science and Technology (NTNU) in Trondheim. There were about 50 attendees, they were enthusiastic and asked a bunch of questions. Couldn’t have asked for a better audience!
Here are some pictures:


Here are my slides:
How do I become a good developer?
One of the students asked me this question. I’m not sure there is a short and correct answer to this question, but I’ll try to lead you in the right direction - so that you can find some answer. Pete McBreen suggests the Apprenticeship model for learning in his Software Craftsmanship book:
“We must reverse the decline in the quality of developer training. Learning software development is not the same as being taught how to program. Apprenticeship is more effective than training to learn a craft, since it is more about learning than it is about teaching. Apprenticeship deliberately avoids the "learned helplessness" of the schooling model by making the apprentices an integral part of the software development team (chapter 12).” – Pete McBreen, Software Craftsmanship: The New Imperative
Apprenticeship is simply explained: learning by doing with guidance from an experienced fellow. Read the Wikipedia article for more information.
What does it mean for me? Well, it means that you should find someone that can teach and help you to become a better developer. Don’t expect this person to tutor you, but expect this person to give you directions. This person will tell you what books to read, what problems are worth solving, what concepts that are worth looking into, what tools to use, what Open Source project you should look into etc.
Therefore I think you can start becoming a better developer by finding someone to pair up with.
What books should I read?
The first three books that pop up in my head are:
You’ll find more suggestions here and here.
Good luck on your journey to becoming a master in the craft of Software Development!