I recently read an article on whether it was necessary to have a computer science degree to program computers professionally. This is hardly a new topic, but it is one that will not go away. Well, I suspect unless it becomes mandatory to have a CS degree, this topic will periodically be raised.
Most times I read an argument from one side or the other, what becomes clear is whether the author has a CS degree. If the author has one, then they tend to be in favour of a degree being mandatory. Not surprisingly, those without one, are on the opposite side. The university faculty that I went through was having an identity crisis at that time. So, I started doing a science degree in computing and ended up with a Bachelor of Information Technology. (That actually makes it sound quite dated!) The way I remember it, the course content hardly changed, so I think it is fair to say I have the equivalent of a CS degree. This, of course, entitles me to take the high-and-mighty road and tut-tut anyone who doesn’t. But, I’m not about to do so. “Why?”, I hear you ask…
Well, here is a list of the computer languages that I Iearnt in university: Assembler, C, Cobol, Fortran, MicroSQL, Pascal, Prolog and SimScript . There may have been others, but these are the languages that spring to mind. (and not always for a good reason!) Obviously, there were other subjects that weren’t computer languages in my studies. There were four different strains of mathematics and various other topics based on what you would need to learn for the “real world”. But, most of those units would now be as dated as the languages I mentioned above. Bits and pieces of what I studied still help me today, but I struggle to believe that my almost twenty-year old university degree is a great asset to my current employer. Fortunately for them, I try to keep learning!
I believe that the computer industry is still very much in its infancy. These days are the technological equivalent of living in the wild-west. There are certainly plenty of cowboys around! Another popular blogging theme amongst programmers is whether our jobs should be described as a “craft”, “engineering”, “discipline” and so on. People use the term “software engineer”, but this is an injustice to the more formalised strains of engineering. The real question should be “What do we want our profession to be thought of?”
I am lucky enough to have a job I love doing. I enjoy coding. I can empathise with people who do not have a CS degree, but have a similar passion for programming. I have no doubt that there are better programmers than myself, nor do I doubt that some of them will not have a formal qualification. Given that they provide good work, would it be wrong to exclude these people from programming careers?
If we want to be taken as a serious profession, then we need to start being serious about it. When you go to a doctor, you do not want an unqualified person treating you, no matter how much they like helping people.
Is a comparison between the medical profession and computing justifiable? Computers are so pervasive in western society, that bad software can and does kill people. Granted not all software is as critical – maybe bad software in your area merely leads to people having “a bad day at the office”. But, if you are serious about professional levels of service, then you will probably want to start emulating more formalised professions. What I think this means is:
1. A formal qualification in the field of computing.
2. Compulsory membership in an accredited professional body – which includes a “Professional code of conduct” by which you must abide.
3. Periodic examination to ensure skills remain up to date.
Point 1 could be seen as me condoning the requirement for a Computer Science degree. But I wouldn’t want to rule out some other level of qualification counting. At this point, I am just suggesting something that indicates a level of competence.
I could for-see that Points 2 and 3 are related. A professional body would be able to provide training and examinations etc. What I think should form a professional code of conduct is probably large enough to fill its own blog post, so I will leave that as a story for another time.
Am I daunted/scared by what I outlined above? If I am honest, yes! I never was the best student. Exams have always daunted me somewhat, even in the rare instances where I knew the subject material very well!
Do I see I.T. requiring this level of professional conduct? Not at this stage. Apparently, there is still a skills shortage, so employers will be unlikely to impose restrictions that see them unable to fill vacancies. I do see one possible fundamental shift that will swing the industry towards formalisation, but that too, is a story for another time.