I was involved in a Twitter conversation recently about the value of testers in a…
I read the article “Why Citizen Developers are the Future of Programming” and it prompted some thoughts on the value of education. The thrust of the article (as I read it) is that a computer science degree is a big old waste of time and you can be a programmer without spending all that time and money pursuing a formal education. I’d love programming to become much more widely practiced and better understood in the workplace than it is but don’t believe that being able to write code makes you a programmer.
I didn’t start out as a programmer; I never imagined that my professional life would be spent in IT. I’d certainly been interested in computers from an early age: I wrote code in Sinclair BASIC when I was a child, I taught myself some perl in order to make websites, I even did some python back in the 1.5 days. However, my bachelor’s degree was in Broadcasting Studies and I wanted to work in the media. It was through my media experience that I got a job as a content editor at Ask Jeeves. As one of the original UK team I was probably the most technically minded and ended up helping out with some of the technical tasks including digging into databases and solving issues with the new editorial tools. Through that experience I picked up some VB6 and VBScript and found myself doing more programming than anything else.
Through a connection at Jeeves I made the move to a small startup with only one other programmer. I somehow managed to convince the CTO that I could code in perl and found myself in my first proper developer job. After two years I got an itch to start studying again and applied for a part time degree through the University of London’s Birkbeck college. I was in two minds before I enrolled – after all I was already a programmer, what could I learn that was new? However, I also suspected that there were fundamentals underpinning my craft that might help me; a suspicion which turned out to be correct. Learning about computer architecture, memory management, algorithms, data structures, cryptography and more were real eye openers and made me a much better programmer than I was before.
I know that my formal computer science education has helped me be better at my job and, in turn, has made me more successful in my career. However, I also think it’s important to realise that formal education does not suit everyone and that making hiring decisions based purely on someone’s ability to achieve a formal qualification is foolish.
When I interview people for programming positions, I don’t normally ask technical questions and, unless they are a fresh graduate, I certainly don’t spend much time considering if they have a degree or not. For me the key to someone being successful is their attitude and ability to learn. If I interviewed someone who had learned by rote and obtained a computer science degree as a means to getting a job but without the desire or passion to really understand and improve themselves then I wouldn’t hire them. If I met someone without a formal qualification but with innate curiosity, a willingness to apply themselves and an interest in computers then I would be willing to give them a chance.
A lot of the best programmers I know (not counting myself in that number, naturally) started off in other fields and fell into computing later. The difference is that those people have been determined to learn as much about their chosen field as they possibly can – whether formally or not. There are certain fundamentals about computing that require more than just practical application to really grasp. Just coding in a particular field and not expanding your horizons will not teach you those. In my experience, people who are successful are also curious about those fundamentals that they will pick them up with or without formal education.
Programming is not for everyone – at times it’s frustrating, confusing and stressful; it’s also incredibly rewarding and if you want to succeed you have to put in the time and the effort to study your subject and really understand what you’re doing. If you don’t put in the time then you’re selling yourself short; far be it from me to discourage you from a particular career path but are you absolutely sure programming is what you want to do?