At many universities and academic institutes now, it is almost an expectation that new starters or graduates are able to code in some form or other- but when and where is this knowledge supposed to be learnt? Coming from a chemistry background myself, I had a few Python taster courses at university, exposing me to the absolute basics in coding practices and giving me only a glimpse of what might be possible. This was it really, nothing else- and often I found the teachers and course leaders were not experts themselves. I realised this was going to be an important skill going forward whether that be in academia or in the workplace. Speaking to older friends, many had moved into software engineering- but how? We had had little software exposure, so I was keen to learn more. Most had self-taught, had mentors, or simply fallen into a role where little experience was needed and they could learn on the job. All seemed interesting careers- inspiring me to go down the software engineering route.
Getting my first software role
Looking for graduate roles out of university, most specified that some kind of software engineering experience was necessary, whether from an internship or within their degree. Without this experience I found it difficult initially to find an opening that would allow me to learn on the job. However, opportunities are out there, especially at research organisations that will value your ability to pick up new skills quickly and learn on the role. This is exactly what happened to me in my job as a Research Software Engineer at the UKAEA. It was a very steep learning curve and I had to be prepared to ask lots of questions and make a few mistakes along the way - but that’s how you learn! Always throw yourself headfirst into a new problem and as I have found, the people around you are the best resource, so use senior engineers and ask as much as you can.
How having a mentor has helped
The way I have found most useful for learning new coding skills is the people around me, so when I saw the Software Sustainability Institute’s mentorship programme, I immediately applied. My project was nothing specific, just to get ‘better’ at Python and expand my skills. Jack, my mentor, facilitated this brilliantly. We looked at a wide range of issues, ranging from optimisation, which has been an issue I’ve been looking at in my day-to-day job, to practising small Python tasks that might be used in interviews in the future etc. As a data scientist he has a slightly different set of skills to me which has allowed me to see other parts of the Python landscape and how to solve problems from a different angle. I feel following this program I’ve learnt not just different elements of Python but also how I might be able to apply these skills to my current role - such as using Numba in Python to speed up intense numerical calculations. It is also great to have someone to talk to outside of your daily job to ask for general career advice.
Take home message
My take home message would be, despite seeming daunting, you can break into software without having a computer science background. Ask questions of all of those around you and use schemes like those set up by the Software Sustainability Institute to expand your network and knowledge.