People are often surprised if I tell them that I do not have a university degree. I’m not someone who achieved a degree in a subject unrelated to computer science and then moved in to the field later in life. I chose not to go to university. In this non-technical post I’ll explain why I made that choice, and how I do not feel that it has hindered my career in any way.
I have always wanted to learn. Even when I was very young, I was always keen to learn new things, and that has stuck with me to this day. When I was at school, computer science was not on the curriculum, although we had a computer room in the school with Commodore Pets, Tandy (Radio Shack to those in the US) TRS-80s, BBC Micros, and other such machines, there was no formal syllabus for learning about them, and it was the very early days of micro computing.
Before anyone says it – yes, I am an old git!
I was fortunate enough to have a father who worked in computing and he was often able to bring a Commodore Pet home some weekends when i was young, and as I got older I had a number of computers that I could use including a Sinclair ZX-81, a Commodore VIC-20, and an Atari ST 1024. With these I was able to teach myself BASIC, and later C.
During most of my school years I was pretty good academically and was usually near the top of the class in most subjects. In the UK it is compulsory to attend school up until age 16 when we take GCSE exams (these were named Ordinary Levels exams, or O-levels). We can optionally stay on for a further two years until age 18 when we take Advanced Level Exams (or A-levels). To attend University, it is usually a requirement to stay on and take A-levels.
I did well with my O-levels, and achieved 9 in various subjects. But during the extra two years, I began to struggle and, while I achieved three A-level passes (which was the normal amount), the grades were not great, and I wasn’t enjoying school as much as I had when I was younger. I came to a realisation that while my desire to learn was as strong as ever, yet as I reached my late teens, I really began to dislike being taught – particularly in the manner that was common in British schools at the time as I felt that I was being force-fed information rather than being encouraged to use my in-built desire to learn. In hindsight I think I would have fared much better at University than I did in my later school years, because there is much more onus on the individual to self-motivate than there was at school. However, at the time I felt that if I went on to University, I would continue in the unhappy state I had been in at school.
I spent an initial couple of years doing some fairly dull and low-skilled jobs before I applied for a job doing technical support for a company which provided high-end Desk Top Publishing equipment (DTP was a revolutionary thing back then). I got the job mainly by enthusing during the interview process, and thrived during the two years I was there before mass redundancies brought things to an end. I moved on from there to other primarily tech-support roles, but on a couple of occasions put my programming skills to good use. One example of this was working for a manufacturer of colour laser printers, where to solve a particularly tricky problem I wrote a chunk of PostScript code that we loaded on to a customer’s printer and resolved a blurring issue that they were complaining about.
In another job, I wrote a simple Windows app to do some file conversions, and the software developers there felt that my code was of a good enough standard that I started helping them out more and more. One of the developers commented that my code was really easy to read and understand, so eventually I was coding full time, and still am quite a few years later.
I don’t feel that I am naturally gifted or anything like that, I just really enjoy coding, have spent my entire career trying to do it better. That comment about writing code that is easy to understand has stuck with me. I have found that I enjoy working with clever people as it is much easier to improve yourself if you have intelligent people around you from whom you can learn. I see performing code reviews as an opportunity to understand techniques that others use, and often I’ll adopt patterns that I’ve learned in this way.
I have seen many graduates in their first job who are extremely smart, but cannot write production code as that is not something which is covered in any great depth in degree courses. The definition that I often use for a junior developer is someone who can code, but requires help / advice / mentor-ship from someone more experienced to be able to produce production standard code. Those that are the most willing to accept that help are often those that will go on to make the best developers.
I’m sure that most developers with a degree will acknowledge that they have learned more by writing code for a living than they did during their degree course, and I feel that I am no different because I didn’t do the degree course. And that is why I don’t feel that it has hindered my career. What a person has learned and achieved in other jobs is of far more interest to a potential employer than what they learned and achieved during university education – particularly when you get to my age where it would be over 25 years since I was at university. The only exception to this is junior developers for whom it may be necessary to have a formal education if you do not have much real world experience, but my days of applying for junior roles are long gone. I have applied for many roles where the job requirements state that a degree is required, but have found that this simply does not pose a problem (and often is never mentioned) when you have plenty of real world experience. Moreover, I have found that if you can demonstrate during job interviews that you have a real desire to learn and improve is a major selling point. Also, demonstrating an ability to help others do the same will help further – especially if you’re applying for senior roles.
My journey is certainly unconventional but has most certainly worked for me, but may not work for everyone. I think my constant desire to learn and improve myself and help others to do the same has more than made up for a lack of degree. The day that I feel that I no longer want to learn, or there is nothing more to learn is the day that I’ll quit software development.
It is important to point out here that while the requirement for formal education may not be strictly necessary in tech, and some other fields, there are some areas, such as medicine, where it is a necessity. Who would feel comfortable having a surgical procedure performed by someone with no formal training whatsoever? I know I certainly would not.
It may seem slightly odd that someone who walked away from formal education would want to write a blog to try and help others, but that’s not how I see it. I became frustrated by the process of formal education and definitely not the process of learning. While I am sure that on some occasions folks find my blog posts because they’re stuck on a specific problem and a Google search brings them to one of my articles. (I can even admit to actually being stuck on a problem, Googling it, and finding one of my own articles which I had written a few years previously that was the solution I was looking for.) However one of the motivations for me continuing to blog is to try and introduce APIs, concepts, techniques, and other cool stuff that will excite others and provide them with building blocks from which to grow their own learning. I certainly think for me if the formalised education system that I got so frustrated with actually worked more along those lines it would have been far more appealing to me.
© 2019, Mark Allison. All rights reserved.
Copyright © 2019 Styling Android. All Rights Reserved.
Information about how to reuse or republish this work may be available at http://blog.stylingandroid.com/license-information.