Always coding and always learning

Continuous learning is highly recommended in order to be an effective software developer.

Choosing Learning Resources

Sometimes an online tutorial is able to teach the basics of a specific technology. Most of the time however, in order to get a deep and fundamental understanding of a topic, a well-written book is my favourite method for picking up a new skill. Looking through well-reviewed books on Amazon is a great way to find well-presented and clear materials. Skimming through the reviews can often give you a feel for the level of the subject matter to see if it’s a fit.

Learning Order

The order in which technologies are learned is important. If a book is making heavy use of technologies that I don’t yet understand then I find it worthwhile to learn the basics of that technology before progressing further with the material.

Interactive Learning

I try to set up an interactive experience when I’m learning a new technology. If I read a book from front to back then I will retain the information for a few days, but that’s about as long as it will last.

I like to create Question & Answer pages in order to more fully understand a technology that I am working with. Also, I like to create practice examples for myself. So if there is a project at the end of a chapter, I will set up that project and then remove pertinent lines of code. I create a folder structure where there is a ‘Solution’ folder and a ‘Start with’ folder. I then create a document that gives me instructions on what I should attempt to do with the project. I place a ‘Hints’ section at the bottom of the document in case I am completely stuck. However, I don’t usually read the Hints section unless I absolutely have to. I want to force my brain to think after all.

Saying No to Autopilot

The following is an excerpt from ‘The Pragmatic Programmer’:

 In order to be a Pragmatic Programmer, we’re challenging you to think about what you’re doing while you’re doing it. This isn’t a one-time audit of current practices—it’s an ongoing critical appraisal of every decision you make, every day, and on every development. Never run on auto-pilot. Constantly be thinking, critiquing your work in real time.

That advice really resonates with me. Human beings are creatures of habit and if you don’t use something then you will eventually lose it.