For as long as I can remember, I’ve always loved problem solving. Riddles, Rubik’s cubes and jigsaw puzzles – I would become (as my parents would probably say), obsessed with one thing for a few days/weeks until it was solved, then my search began for the next problem I could put my mind to.
At school, I was initially drawn to natural sciences to satisfy this. Following physics through to degree level, it was only during my time as a physics undergraduate that I got a taste of – what I consider one of the purest forms of problem solving – software development. Throughout the rest of my degree I realised that software development was a very real option for a career, however I was left as a physics graduate with almost no experience in programming looking to follow a career in IT. Since then, I have become a Software Engineer at here, and I wanted to share some things I learned during both my job search and my time working in software development.
Let’s say you haven’t written a single line of code in your life, well – you may already have many of skills needed to be an excellent programmer. Abstract thinking, planning, and problem-solving are all essential to writing good code, none of which is guaranteed with a computer science degree. STEM (Science, Technology, Engineering, and Mathematics) degrees may find more skills that are obvious choices for a job in IT, but it doesn’t take much imagination to see how the abstract thinking and logic of philosophy, or the attention to detail required for law can be applied to developing code.
Writing good code doesn’t make a good developer; no matter how good your code is, there’s only so much one person can do. You need to be able to work collaboratively, to get your point across and listen to others. It can be as simple as a positive attitude making you enjoyable to work with, or being able to communicate very high-level concepts in an easy-to-understand way. Being personable is a benefit in almost any field, but can really set you apart in IT – an industry usually focused on technical skills and knowledge.
The same as any job, experience trumps qualifications. If you can show you’re already competent at programming, it doesn’t matter if you learned it at University or at home. “But Jack!” you might ask, “How am I supposed to get some experience?” Well, there are plenty of ways of learning to code online, many of which don’t cost a penny – from online courses that will walk you through learning your first programming language, to articles explaining the intricacies of machine learning. Codecademy and /r/learnprogramming helped me learn a lot of the basics.
In the same vein as qualifications vs experience, there’s no better way to learn than to just jump straight in. I recommend starting with something small and basic, that you either know mostly how to do it, or you can find tutorials for online. Then you can move onto something a little bigger and more advanced, using what you’ve learned from your first project. Organically building yourself up to larger projects means you won’t be committed to poor design decisions or spaghetti code in the earlier projects, and you’re free to learn from your mistakes.
Eventually, when you’re more comfortable working on larger developments, consider contributing to an open source project. This will help you gain some experience working on existing legacy code, working within a large group, and showing your interest in development outside of just a career. Proving you enjoy the work can be vitally important as no matter how well suited for the job you are (either at a keyboard or away from one), you’ll quickly burn out if you hate the job.
Lastly, a general tip for when you’re ready to apply, is to make sure you’ve done your research on the company and position you’re applying for. Don’t make the mistake of focusing on all the work you’ve done on database management during the interview for a front-end developer position, make sure you’re a good match for the position.
So, even though it might feel like you need a computer science degree to get a job in the IT industry, there are plenty of things that you can do to hedge your bets and overcome your shortfalls when applying for a relevant job. There are countless skills from other disciplines that can be applied to software development along with lots of soft skills that are needed to keep any project running smoothly. Gaining experience in the various aspects of development can really help you in your applications – so broaden your horizons!
Don’t worry, there’s a job for you in IT.