Embracing My Inner Geek: Part 3 – Education

I had another topic in mind for part 3, but a reader asked a pretty interesting question in response to part 2 that got me thinking. It was so good a question, in fact, that I’ve spent most of my idle CPU cycles this morning formulating a response:

How do you think someone who did not get a degree in CS or software engineering, [can] eventually become a good software developer/engineer/architect without getting further formal education, and surpass those who did receive formal education? I know that if one truly wants to be successful in a particular field, one does not need to take classes in that field. But I just wanted to hear your take on this.

I’d have two answers to this question, depending on who asked me, but both are from my own experience.

First of all, if the person asking was 18, and wondering how best to pursue software development as a career, I would, without hesitation, tell them to go to college, and sign up for as much education as they can stomach.

Then I would qualify that by saying college was, for me, almost completely useless — almost.
The reality is, there are no good programs out there that can teach software development. Most Computer Science degrees are in Math, and most applied courses teach languages that are already out of date. If you don’t have the gift of talking to computers going into college, nothing they can teach you there will help you.

When I signed up for Computer Programming/Analysis at Conestoga College, in 1997 I was sure they’d have nothing to teach me. And when I graduated 4 years later, I was still mostly convinced of that. Conestoga was the number one college in Ontario 7 years running, include the time I attended, and has produced a number of very successful local technologists. It wasn’t the school’s fault that their material was sorely out-dated — that’s just the way this industry moves. Maybe 20% of what was offered turned out to be new and applicable information for me. The rest I either already knew, or wouldn’t ever need to know (a year of COBOL?! Are you kidding me?) In fact, I was so thoroughly self-educated at 18, that I was enlisted to help the head of my program re-write the first year Intro to Programming course material.

All that arrogance aside, though, I might not have the job I have without the piece of paper that says I went to school.

In software development (and probably other fields), education does not necessarily prove your skill or your intelligence, it proves your discipline and your commitment, and its those things, as much as any technical bullet point on your resume, that employers look at.

My current boss sees hundreds of resumes a year. He looks for quick ways to pair down that pile, and one of his first qualifiers is education. His short list these days is mostly made up of people with Master’s degrees.

Formal education may be something of a money making scam — I have a pile of useless text books in my closet that cost me from $100 – $300 each, just like I have a pile of course credits that I’ll never use — but the harsh reality of a competitive marketplace is that formal education also opens doors. Perhaps you can get as far with only your intelligence, charisma and experience, as those with less of each but a few letters after their name, but you’ll have to work harder to get your foot in the door, work harder to prove yourself to your boss and your colleagues, and you’ll be offered less opportunities. For example, it would be very difficult, if not impossible, to pursue a job outside of your native country without a formal education.

I have known brilliant people, who by all rights should be rolling in cash, limited to low-paying, high-stress, over-worked positions because they don’t have a piece of paper that says they can do what everyone knows they can do…

That said, I’ve also interviewed people with tremendous academic credentials from prestigious schools, who are less qualified for a job as a software developer than your average high school student.

So in general, my advice, despite my own impatience toward academics, is to stay in school as long as you can stand.

However, if the person asking the question was a colleague, or even someone I was interviewing, my opinion would be entirely different. While I acknowledge college as usually being a necessary evil in pursuing a career, I also know, perhaps more than some, that lack of education means nothing if the individual in question has a good problem-solving mind and experience in the field. Programming really can’t be taught — its an area of giftedness (or a curse, depending on your perspective.)
At my work place, I can almost guarantee that none of the people around me are developing in programming languages they learned in school. You could argue that they learned the discipline and processes, the problem solving techniques, and the logic that could apply to any language, but I would argue that they already knew those things — they were born with them.

Software development moves so fast that you have to be self-taught. In the time it took to complete coding on my latest project, in the then-brand-new .Net 3.0 Framework, .Net 3.5 was released. If I was dependent on what I learned in college, I’d still be using VisualBasic 6 — and I would be sorely unemployable!

No, given the opportunity, I would never evaluate the viability of a candidate based on their schooling, or lack thereof. And I would never judge a co-worker’s ability based on their degree, or lack thereof. An education may help get a foot in the door, but what’s important in software development is what you can do now. Can you problem solve? Do you learn quickly? Are you a logical thinker? Do you communicate well? Can you think ahead? Prove it, and I don’t care what your background is.

And I would remind those who disagree that both Steve Jobs and Bill Gates are university drop-outs, who knew before they finished school what needed to be done, and made it happen. I wouldn’t encourage that path for those starting out — its risky and it may cause people to undervalue you — but if you’ve arrived at your professional career through a less-conventional method, and you have the smarts and the guts to get things done anyway, then don’t let anyone tell you that you can’t succeed.

Far more useful to me than anything I learned in school was the job experience I’ve collected. I was employed in my field before I was done college, and maybe could have gone just as far without the piece of paper. But I’ll concede that its been helpful — especially given my youth at the time I began playing this game — to have evidence that I can do what I do…

9 thoughts on “Embracing My Inner Geek: Part 3 – Education

  1. Hi Jonathan,
    I think I agree with you. Almost every field changes so fast. I did engineering and I’m back now for my Masters but when I did go out and work..college degree doesn’t represent what you know. In fact, when I got out, it was a whole new world and most of the learning began there. But, as you said..it sets your foot on the right door, it teaches you where to look for information and what to do when you see certain signs. (At least for engineering and I bet it’s the same elsewhere).
    BTW Nice title…”embracing my inner geek”..I love it!

  2. Lifted from an IM convo with a future educator:
    Education proves not what you remember but your ability to find what you need to do any job.

  3. As someone who’s currently trying to decide what degree courses to apply for, I’d be interested to know how well looked on other maths related disciples such as Physics are in the Software development field- as I’m currently stuck with having equal fascinations with both Physics and Computer Science and having absolutely no idea which direction to go in.

  4. Alex,
    I think you’ll find that Software Development can mix very well with various other fields. Its likely that if you pursue both, you’ll end up specializing a bit in your development career — there are plenty of domains where physics + programming go hand-in-hand. I was thinking scientific areas, but I’ll bet you’ll find your combination of interests as being very in-demand in the gaming development world these days.
    My old boss had his degree in traffic management. Far from being about stop signs and traffic lights, it was about the theory behind managing mass amounts of vehicles on superhighways. It taught him about logic, flow control, performance and problem solving, and lent very well to his eventual career in software engineering.
    The most important thing about going to school is to pursue what you’re passionate about — otherwise you’re not going to have any fun at all! There are plenty of jobs out there with your mix of disciplines.

  5. Thanks for the advice,
    the more I ask for advice on this choice- the more I’m told that they aren’t mutually exclusive and that ‘both’ is not only a valid choice, but offers a unique opportunity. Indeed, the options for both do look enthralling (scientific computing as much as videogame development) and studying both does seem to be the most enjoyable thing degree wise.
    Again, Many thanks,

  6. Alright, let me weigh in on this one, having both a degree and thirty years experience in education. There are multiple intelligences and multiple learning styles. I am a verbal learner. I actually learn more in interation than I could ever learn by myself. Jon, you are a kinesthetic learner. It used to drive me nuts the fact that you NEVER got anything done at school ‘cuz you were too busy playing with ‘things.” I ‘d get home after having taught all day only to have to sit down with you and teach you what you were too busy to have learned at school yourself.
    It was tough for me, but even tougher for you. However, it taught us both a valuable lesson. It taught you the value of self-discipline, and kudos to you for that. It taught me to respect kinesthetic learners, as I saw you take apart and reassemble a computer when you were like, nine years old. Totally blew me away.
    People ‘think’ with their hands, as well as their mouths, brains and hearts. Don’t rule out any avenue to growth in you or those around you. God didn’t make us all the same.

Leave a Reply

Your email address will not be published. Required fields are marked *