Learning to Code: The Whys and Hows
If you had said to me at the start of my degree that I would end up loving programming, I wouldn’t have believed you! This year however, now that I am doing a lot of computational work for my fourth-year project and am studying a high performance computing module, I find the coding aspect of my degree to be the most enjoyable and interesting.
Before university I hadn’t done any coding, though definitely realised it was something useful to learn. Throughout my time at university I have taken a different programming module each year. In my first year, I did the compulsory python module run by the physics department which introduced me to the basics of the language. It also showed how useful programming is in the physical sciences; being able to write a program to plot a graph makes life so much easier! In second year, I did another python programming module which built on the previous years’ skills. Last year I began to learn the C programming language. Although I found it quite tricky to get my head around to begin with, it has since become my favourite language. Writing code in C allows you to write faster, more efficient programs and I find it fascinating to learn more about computer architecture. This year, I am studying the High Performance Computing module, which teaches us how to write fast code through parallelising it. Being able to do this becomes increasingly important when your code is very complicated and computationally expensive; in certain cases it is possible to reduce the time it takes for your code to run from several weeks to just a couple of hours. Such a skill is invaluable when running simulations for research.
As I have progressed through my degree, I haven’t just used my programming skills in the modules. My undergraduate research project relied on some computational knowledge to model the motion of star systems. In labs, I used short python scripts to calculate statistical quantities (like means and standard deviations) in my experiments rather than calculating by hand. Finally, in my research project this year, I am using Matlab to simulate the break-up of a liquid jet. Being able to write, adapt and understand code has been so helpful and in many cases helped me understand a topic in greater detail.
If this sounds like something you would like to explore, there are lots of ways to get involved with programming and technology at university! Many of the science courses have some sort of computational modules, which often will help with aspects of your degree. There is also currently an IATL module on Computer Modelling, which students from all disciplines can take. In the physics department, there are the programming modules which I have already described, but in certain cases you can take computer science modules as optional ones. Even if you don’t want to study programming as part of your degree, websites like codeacademy can be used to learn some skills in your spare time. Or if you are feeling particularly hands on, a raspberry pi is a great way to start coding on a tiny computer.
I wanted to write this blog as I believe that being technologically savvy is becoming more and more important. The skills you gain from coding – for example dealing with the massive frustration when your code doesn’t work – highlights perseverance, attention to detail and problem-solving capabilities. Being at least computer literate is often essential for employment and being able to show greater understanding helps to stand out from the crowd. Technology is becoming more integrated in our day to day life and is a really interesting and exciting field to get involved with. I am so glad that I decided to do as much programming as possible in my degree. Not only because I feel like it has made me more employable, it has introduced me to a field that I find fascinating.