I am not what you might call a classically-trained developer. I’ve never taken any kind of computer class, save for watching some tutorials online when I need a general understanding of a new technology. My passion for technology arose out of my former life as a musician when I “graduated” to audio engineer (easy, musician friends. Just a joke). I DID, however go to an amazing Recording Arts school and within a year I was working on an Emmy-nominated TV (Bump in the Night) and an Oscar-nominated Documentary film (Pity the Pilot Whale). Some of the wisdom I gained during that time centered around creative problem solving. When editing a TV show, you had to be stupidly efficient, highly creative and able to withstand long hours with almost no pay.
Anyway, I eventually got a “real” job as a multimedia / web developer after learning HTML and Perl just for fun (holy moly, that was 20 years ago). Once I saw that I could make something from nothing by programming, I was hooked. All of this led to me starting BAYWORX in 2010 and it was the best professional decision I ever made.
In my career I’ve hired and fired several people and managed teams of varying degrees of technical aptitude. One thing I’ve always valued is wisdom over knowledge. Not knowing exactly HOW you’re going to solve a technical problem is the FUN part of the job and is totally normal.
I’ve had programmers who have known more than their fair share about J2EE, Fourth Normal Form, object-oriented programming, etc, and I will always choose the WISE developer over the all-hat-no-cattle guy who just wants to read everyone their resume.
If I can summarize a technical problem for a developer in a sentence or paragraph and then get back a nearly perfect solution in 2 weeks, I’m far ahead of a company who can’t even write the first line of a requirements document in 2 weeks. Let the creative, WISE people be creative and wise. If they are passionate about their craft, they will deliver.
The most common complaint I hear from (good) developers is “Just tell me what you want, don’t tell me how to do it”. I’ve know programmers who won’t lift a finger until he or she has all the requirements (which is NEVER possible). There is a place in the world for developers with that approach (It’s called sustaining engineering for a huge company), but it’s not a fit at all for my company.
It’s the equivalent of this: The client wants us to bake them 30 apple pies. That’s what they asked for. Some people can’t wait to put their own signature flavor on all those apple pies. Other folks want to argue about EXACTLY HOW MUCH is a pinch of salt. Don’t be that guy (or gal). If you like making pies, start baking!