Why you should get a degree in Computer Science or Software Engineering!

Well firstly, let’s cover off the obvious, because you will be the envy of your friends and also become more good looking. No, seriously!

Anyhoo, why post such an article? I’m back on the train (jeez, the ole’ VLine is definitely getting my creative juices flowing, btw, I also realised why more people don’t catch public transport! Because there isn’t the option of an upgrade, with nice wide seats, where you can work on your laptop, etc. If there was that option on PT, more business people would use it, and wouldn’t mind paying the little bit extra!) after visiting Deakin University in Geelong, and had a really interesting chat with some of the lecturers from the Computer Science and Software Engineering faculty. During the chat, they stirred something up in me that has lay dormant for some time, and now, with my newfound idle time on the VLine, I’m gonna get it off my chesty bond!

So, why do I feel YOU should get a degree in Computer Science and/or Software Engineering? Well, firstly, if you don’t already have one, you will obviously get one. Also, it will help my second grand master plan of ensuring that more projects complete on time, on budget, fit for purpose. See, I want to lobby the Government to make them institute a policy where if you don’t have a formal qualification in a Computer Science or Software Engineering discipline, then you can’t get a job writing software applications! Arghhhh I hear all the “I learnt on the job” people saying, give me 4 quarts of Lempho’s blood! But before you hurl the mace, let me explain.

Right now, development projects are being undertaken by people who may be proficient in a language or tool, or have written a couple of applications here and there, but they do so without the bigger appreciation of the science and discipline required to develop software systems. I’m talking about understanding what an algorithm is, how it is implemented, why you would use it, how you would use it, and most importantly, why you wouldn’t use it. And before I hear someone say “Over-engineered”, allow me to interject, “Are you serious mate?”. Over-engineered, I’d love to here an engineer say that! And while there may be the odd aberration who has learned how to engineer software using computer science, it’s more than likely it took them many more years than three to get across all the aspects. And what’s more, the chance that all of their fundamental skills are truly portable, and free from technology and version, is extremely low.

But let’s get to the crux of what I’m saying, because unless we get more people getting a degree, we will never see the overall professionalism of our trade increase, and we’ll never see the overall perception of our trade as a bunch of weekend warriors and coding cowboys change. Just like almost every other profession (my dad became a mechanic because he did an apprenticeship and went to school, without that, he wasn’t even allowed to trade, lest he wanted to be known as a backyarder) we need a body that says, this person has met the requirements of our profession, so that you can rely on them to act ethically in a disciplined and educated way. And to ensure that that professional body has the teeth to influence consumers, so that whether you’re engaging a software professional directly, or buying a piece of software from someone else, you can have a reasonable expectation of quality. And most importantly, it’s self regulating, so that before anyone even thinks of getting into the profession, they realise they need to get a qualification, or starve. And why does the government need to play a hand? Because, the net effect of bad software projects, ones that fail horribly and costs lots of money and time, is as great as poorly built bridges, plumbing or cars. Yes, that’s right! It’s why I won’t hire a plumber who hasn’t been accredited, or take my car to a backyard mechanic. Because I want to know the person doing the work for me hasn’t just “worked” it out, and that there are measures in place, both from a professional body point of view and a legislative point of view, to protect me as a consumer. And if you believe that consumers are currently protected by software developers, I want what you’re smoking!

And finally, to those that feel getting a qualification is a waste of time, think again. It’s an investment, in knowing that you have all the information you need and the discipline at hand to solve any problem in your field, not just the ones you’ve come across. And if you’re arrogant enough to think you are capable of more than 30 odd years of collaborative expertise distilled from the best Computer Science and Software Engineering minds around the world, then you need a reality check. A qualification + practical experience makes a professional, not one or the other.

And if you’re wandering why this arcs me up so much, it’s because, I pride myself in knowing I worked hard and dedicate myself to my profession, and take umbrage when someone just rocks up and says, hey, I know this language, or I’ve written this app, and the consumer says, cool, you’re both the same. Buddy, we are far from the same, because when it comes time for the “fiddler” to solve a problem that requires a background in principles and discipline, what do you think they’re gonna do? They will dumb the problem down to fit their skills and knowledge, because magically lifting their skills and knowledge to solve the problem isn’t an option in reality, so now you’ve got software being written to solve dumbed down tough problems. Urghhhh!

And finally (I promise), don’t throw the “oh but look at such and such, they are rich and successful and they didn’t go to school”. So what! That means nothing, because if that was the rule, rather than the exception, the our industry would resemble Monaco rather than the dark side of the moon.

Feeling better now, ah:)

Comments (15)

  1. Sério Silva says:

    I couldn’t agree more. I’ve so many times seen alleged "experts" and "consultants" without a formal degree working in large projects with no clue and its always up to the good guys to pull it through in the end sometimes having to rewrite a double check every thing that gets commited by the other guys…

    Software engineering should be treated as civil engineering or medical professions, it often carries the same degree of responsabilities so it should be also be subject to the same rules for the professionals.

    Here in Portugal the title of Engineer is regulated by an oficial Engineer’s Order but unfortunatelly while there is rules that specify that to build a bridge you need some accredited Civil Engineers, to build a software control system for a nuclear plant does not require a accredited Software Engineer…

  2. Mitch Denny says:

    Wow Dave, I should just get out now.

  3. Mikie says:

    Do you have to have a degree to be a good developer?  No.  You need a mix of practical and theoretic/academic skills, but they can come from anywhere.  The real key to being a good developer, or any other professional, is continual professional development.

  4. Jeff Parker says:

    Well I agree and Disagree. I think there should be an outside of college certification. Kind of like the Bar Exam for lawyers or the CPA for Accountants, something you must maintain after college. As far as requiring a degree, well thats pretty much useless and dumb. I have a degree in CS. Everything I learned there does not apply to today’s world. Not one bit. Shows age, but when I started toward my degree, ala punch card programming. When I finished my degree, Ada 83 one of the first OO languages had just been accepted by schools, this was in 89. UML wasn’t even known Schools are also typically years behind current technology. Also when you start down your CS path you typically enroll in a program and your next several years of classes are laid out in front of you. Course changes as new technology is introduced typically is only to newer student who in 4 years are really 8 – 10 years behind.

    Can you honestly say that someone that starts school here in the fall this year, that probably already has a schedule and have signed up for early registration of classes and goes there for the next 4-5 years and comes out will be ready to professionally program in the technology that will exist 4-5 years from now. Look at where we were 5 years ago. Now 10 years, now look at that person 20 years from now technology will be so far past what we are currently teaching. As many things that have changed in the last 15 years since I graduated basically made everything in college useless now. In fact when I got out I was so far behind in technology in early 90’s really the only thing that was behind as much as I was, was a government job as they move as slow as colleges. I had to then teach myself things like C++ and I continued to teach myself things like Java, HTML, XML, SQL. I mean think about that XML is big now but to the student that graduated just in 2000 XML wasn’t in any college curriculum. While college teach some principals. I agree several principal are better now than when I went. When I went there was only one path by the time I graduated there was two a Networking path and a programming path. There are more now.

    I know students that are graduating now this very year worried about a job. Employers want .net experience, when they started .net 2002 which came out in I think Novemeber wasn’t even out yet. Most of them only played with it all their experience and knowledge is in principals in other older languages. 2006 now. .net 2.0 the colleges here still aren’t even looking at C#. Also on a side note you have a ton of people in the industry now they their degrees are in other fields. You expect them to go back to school work on older technology and get another degree? Frustrating, to hear. When I have college professors coming to me to learn the things you are talking about. Real life CS and college CS are two completely different things. Now I am not against anyone going to school and getting a degree in CS and I definitely do not think it will hurt them in anyway. But to make it a requirement….. nope instead I think it should be something like the Bar exam or CPA something like that something applies to real world current technology and requires you to do continuing education like the CPA requires accountants to stay up on finance laws. That would be much better than a degree.

  5. AlfredTwo says:

    Interesting article from David Lemphers on Why you should have a degree in computer science or computer…

  6. Keith Knight says:

    Always a controversial topic!

    Like Jeff I agree and disagree. IMO getting a degree can be extremely valuable if approached the right way – you learn the fundamentals – stuff like: algorithms, OO, databases, basic design/architectural concepts, good software process. These are technology agnostic, you can take them with you throughout your career and apply them to any platform/technology/language/toolset. You also get into the mindset of continuous personal development and learning.

    That said, sweeping generalizations are always dangerous. I know a lot of really talented developers who don’t have any formal qualifications. I know a lot of people with degrees in CS who couldn’t code their way out of a cardboard box. I also know a lot of people with degrees who are absolute gun developers… not sure how much of a correlation there is between having a degree and being a good developer? I’m not sure if mandatory formal qualifications will solve the problems we have in our industry?

    Also, the uni entry cut offs for CS are also so low these days that just about anyone can get in. I’m not long out of uni (~3.5 years) and from what I’ve seen, it’s pretty easy for people to coast along, not really learn anything and come out the other end with a degree – much the same as it is possible to just memorize some brain dumps and get certified. You only get as much out of a degree (or certification) as you put into it.

    RE: the comments about uni curriculums not being up to date, I think it depends largely on the uni. I have heard of many uni’s with archaic curriculums. That said, I graduated in December 2002 and my course included things like database design, web services, XML/XSD, OO fundamentals, OO development in Java, J2EE, UML, software engineering/process concepts, basic architectural stuff like n-tier, design patterns etc. All of that was and still is very relevant.

  7. Peter B says:

    Good thing you didn’t visit a hospital or we would all have to go out and get operated on.  There is room for degree qualified people in our profession however there is a requirement for people not tainted by the fixed approach of a University.  In practice, Job 1 is more influential than a 3 or 4 year degree. Whilst my 20 years in IT as an unqualified (unwashed) participant makes me prejudiced I hire people and do not seek degrees if there is relevant experience.  I have found the unqualified end up being the leaders, the qualified the followers.

  8. Interesting article from David Lemphers on Why you should have a degree in computer science or computer…

  9. Technical says:

    Working in IT in the Silicon Fen area, I’m always coming across a real bias

    towards people with degrees….