Ben J. Christensen

Software Development and Other Random Stuff

Apprenticing to Learn Software Development

The foundation of my software development skills was set between 1995 and 1998 while I worked under the direction of my friend and mentor Andre Kruger. For a long time I called it “job shadowing”, but I have come to realize that it was an informal apprenticeship.

I have found those 3 years taught me more about software, system administration and technology than most get the opportunity to experience that early in their career – as I was learning and working on the job, tutored by someone who was incredibly intelligent and had years of knowledge and experience to share. He also provide me with invaluable insights and suggestions on what technologies and platforms to follow. It was he who suggested Java (when it was at version 1.0) was what I should focus on, not C – and that has served me well to this day – when the schools were telling me to learn Pascal.

I loved it and sucked up as much as I could learn. I also built software that did real things. Now I recognize how poor the code was – it was very bad. The point was that I was learning through doing real things in an environment where I couldn’t do significant damage and could receive instruction and guidance – and eventually as I progressed I could truly understand the benefits of design patterns, object oriented design and what it meant to be “in production”. It wasn’t theoretical – or some forcefully memorized and quickly forgotten trivia – I knew it.

I didn’t complete college/university – because by the time I got there it bored me to tears, as I had spent several years being apprenticed already and learned quickly on my own through books and experimentation. If I could have, I would have skipped to 3rd year and enjoyed myself, but our society and academic programs don’t work that way.

I believe apprenticeships are the ideal way to learn software development, as I see software as a craft – not an engineering or scientific skill where rules are learned and applied the same way every time.

I wish our society and industry would look seriously at its academic and theoretical approach to training – which I feel does not work very well – and consider a model more similar to apprenticeship.

I also really enjoy mentoring others who have raw talent and desire. Some of my most rewarding work of the past 5 years has been that which has resulted in colleagues progressing and growing, such as a good friend of mine Adnan Memon.

Perhaps I’ve accomplished the “master” status in certain aspects of my work, in others I’m still a “journeyman” I’m sure. I hope to find others who can continue to mentor me as I try do so for my juniors, as I think that’s where the best talent in our industry comes from.

Filed under: Skills

Leave a Reply

Twitter Updates

View Ben Christensen's profile on LinkedIn