Why every (psychology) student should learn to code
Why should you, as a psychology student, or indeed any other kind of student, need to learn computer programming? My position on this is that the basics of computer programming should be taught to everyone, preferably in schools, at a young age. I think the benefits of this could be enormous – programming (just like learning any other language) expands the mind, and teaches you to think in new ways. In particular programming languages force the user to think algorithmically, and by their very nature instantiate the basics of formal logic. Unfortunately, a recent report by the Royal Society (Guardian write-up here) has highlighted the deficiencies in the UK’s teaching of IT in schools; despite the best computer:student ratio in primary schools in Europe, there is a massive lack of well-qualified and competent teachers. This is somewhat understandable; a competent programmer can easily make much more money actually being a programmer than teaching kids. It’s difficult to know how to effectively address this issue, but it would definitely be a shame if the UK starts to fall behind in its computer industry because of a lack of quality teaching staff.
So, assuming you didn’t learn to program at school, and you’re now a university student, why should you learn now? Wouldn’t it be better to spend your time learning the material you need to know for whatever course you’re doing, than learning some kind of esoteric skill that you might not ever need? The answer, is, emphatically, no. Programming is about as essential a skill as it’s possible to conceive of. As the world moves towards a knowledge and tech-based economy a lot of traditional skills are becoming more and more automated. Vast industries have been created in the last 20 years, focussed around building the systems which make this transition possible – and that means coding.
I’m a psychologist (kind of) and so I naturally come at this issue from that angle, but I’m convinced that what I’m saying here applies to pretty much any discipline – even the more liberal-arts end of the spectrum. In psychology research though, almost everyone I know has at least some programming knowledge. Of course it ranges from the relatively simple (using SPSS psuedo-code to perform automated analyses) up to full-scale application development, but everyone needs to know something.
Students that are graduating now are having a really hard time finding graduate-level jobs, or even any job at all. Anything extra you can put on your CV will help, and will help to distinguish you from the faceless hordes of other recent graduates. Specifically:
1. If you want to carry on in universities as a graduate student (i.e. do a Masters or a PhD) in psychology or some related discipline then coding is damn-near essential. Just like the job market, the number of PhD positions available has dwindled in recent years, and potential PhD supervisors are looking primarily for students who can come in, and get started right away doing some good-quality research. If I was looking for a PhD student, then excellent computer skills and some experience of programming would be top of my list of criteria. Almost all research is computer-based in some way these days, and I wouldn’t want to spend my time as a supervisor teaching somebody the very basics. This might seem strange to undergraduates who spend their time learning the details of theories and past empirical research in order to pass their exams, but research skills are so much more important than knowledge of a particular subject area. I see so many PhD students in psychology departments who aren’t that computer literate, and who have to depend on others (often over-worked support staff) to program their experiments for them. This wastes time (sometimes months) while you’re waiting for the code to be written, and you also perhaps end up with something that’s not quite exactly what you wanted – if you learn to do it yourself you can be more efficient and do higher-quality research as well. All this is doubly true if you’re focussed on doing research in the more neuroscience/biological psychology fields – a prospective neuroscience researcher who’s not comfortable with getting their hands dirty with coding will fail. Simple as that.
2. If you want some other kind of white-collar (for want of a better term) job, then I would argue that learning to program will give you a huge advantage as well. I don’t mean you should (necessarily) try and get a job as ‘a programmer’ but even learning simple stuff like the basics of using Excel Macros and a bit of VBA could prove a real advantage in almost any industry. It goes without saying that the more advanced skills you have the greater your opportunities will be, even once you’ve managed to secure that coveted starter-job. Once word gets around that you’re ‘good with computers’ you might be handed more challenging things to do, or asked to administer the office intranet – things that can raise your profile and get you good experience when it comes to applying for promotions or your next job.
I’m not going to lie to you – learning to program computers is not easy, and at times even professionals who’ve been writing their own software for years want to defenestrate their laptop when stuck with a particularly difficult bug. There are really good resources available now though, and I’m convinced that pretty much anyone can learn the basics, if it’s taught in the right way. I’ve always found it incredibly rewarding, both intrinsically (when you solve a difficult problem and get something to work you are suddenly an unstoppable programming-ninja) and for the opportunities it’s brought me in terms of getting involved in research projects and jobs that I never would have had the chance to do otherwise. In fact, I was hired for my first post-doctoral position pretty much purely because I had some programming skills.
Take home message – learning to program is (in my opinion) the number one most effective thing a student can do to enhance their career prospects, whether those plans include further academic study or a more standard career path. Get to it people – make 2012 the year you learn to code.