Don’t Get the Wrong Degree

I recently read an interesting post that popped up in my feed reeder on Saturday night, on a subject that strikes very close to home. Obviously I am not in the exact same situation; I have a degree.

But I have the wrong degree.

The Software Engineering degree I studied was very heavy on the management side of software engineering, and light on the actual implementation side of programming. I don’t know if this is common to SE degrees, however I found this was the case with mine.

I share Daniel’s love and thirst for information, and have a very strong drive to learn as much about everything as I can. So, on the surface, the dilemma of not having the right degree seems fairly harmless. Daniel describes the phenomena of “perception is reality” – people perceive that having a degree is better than not having a degree. So I guess I have a head start in that aspect. I have the piece of paper, I don’t have to deal with these negative perceptions.

Instead, I had to deal with the mistaken belief that I was more competent than I was.

I have never worked in a large company. The company I’m with now is the largest company I’ve ever been with, and we only have 4 developers, including myself. I’ve always worked with smaller companies, that either only dabble in programming, or were start-ups. It wasn’t until I looked at a job posting at a larger company that I realised that I may have made a huge, 3 year long mistake.

The job posting was your standard outline of positional requirements and expected experience and education, but it also had a puzzle attached. You had to complete the puzzle, in your language of choice, and submit the code along with your resume for consideration. This was in late 2006. I can say now that it was a simple graph problem, finding the minimal spanning tree of any given graph. Back then, however, I thought it was just an odd puzzle.

I didn’t know this was a class of problem. I didn’t know this was rooted in mathematical theory, I didn’t know there were algorithms for solving this. I charged head first into solving the puzzle blindly. I ended up with a 90% complete solution that came very close to Prim’s algorithm. I submitted my crippled solution, and naturally didn’t get the position. Later, someone pointed out what class of problem it was, and I was off searching for it.

That’s when it hit me.

That’s when I found out how little I knew about my craft.

Since that day, I’ve regretted every year in that software engineering degree, every year I learnt things that I wasn’t interested in (management) that I could have spent doing computer science. If I could afford it, and if I could afford the time off, I would go back, start fresh and do a computer science degree. However, the more I learn, the more this desire fades. But there is not a day that I do not strive to fill the gaps in my knowledge myself.

I’m not bashing Software Engineering. I know it was my fault for not properly researching the course material offered, I know that I could have gotten what I missed from another institution. The only reason I know this, however, is because I learnt enough about the industry to know what I was missing, and subsequently, know what I needed. And that’s not something every potential high school graduate looking to get into programming will know.

It’s not enough to get a degree – you have to make sure you get the right degree, from the right place. Unfortunately, that generally takes more experience to judge than you have right out of high-school.

Tags: , , ,

  • Hey Tim, don't feel too bad. I spent 10 years earning my degree in CompSci and you know what? I don't know a minimal spanning-tree algorithm off the top of my head and I've never needed one in my day to day work as a programmer.

    Somewhat amusingly the skills that I have gotten the most use from since are generally described as Software Engineering Skills. Things like Loose Coupling, Automated Testing, Software Estimation, Refactoring and Continuous Integration. I have learned these things in spite of my education and most worthwhile developers do.

    I don't regret a day of my CS degree though because it taught me the one thing I really needed to learn. Research skills. That and recursion but that's another story :)

    Best of luck and don't worry. Your Degree doesn't define who you are. What it will do is tell people that you have enough intelligence and persistence to see it through to the end.

    Also, head back to your high school and offer to present to the year 11s and 12s. They'll probably let you do it.
  • Tim
    Thanks for the kind words Mike. By no means do I define myself by my degree, but that sort of structured learning sure would be helpful trying to learn the stuff I'm trying to teach myself. :P
    I guess it's easy to overlook what I do know and did learn, and you've reminded me of that, so thank you.
  • Misha
    While I understand your frustration on the matter, its sad to know that you've missed the mark, I wouldn't take it too hard.

    What you already -have- is a piece of paper. You already have that piece of assurance anyone would need to give you a job. Software Engineering and CS, especially to the inexperienced management-oriented person (I speak from experience) are not very different.

    While the easier route would definitely have been to take CS in the first place, I don't think that its absolutely necessary to go back to school to learn what you need to know. There are thousands of resources out there, books AND people--thank God for the internet--who can help you. The benefit of this self-paced method is that its just that: self paced.

    You don't have to put your life on hold, you don't have to pay thousands of dollars, and you can probably focus on the aspects of CS that you WANT to know about, rather than the useless drivel they could potentially try to shove down your throat at a school.

    If this becomes too much and too hard: yeah, maybe some day you should go back.

    But in the mean time, I'd keep my chin up and read. I'm sure the people in your life could understand that.

    <3 good luck.
blog comments powered by Disqus