Want to be a software developer? Top tips for kickstarting your career.
5 min read Written by: Chris EliasWhile we do build tech solutions and work with technology, most of our work on the technology side, by our tech lead Ben, is about helping our clients understand what technology can do for their organisation, finding how to get the best from the tools they are already using and seeing what new technology can support their transformation.
Throughout the apprentice interview process we’re committed to giving everyone we interview feedback that will help them with their personal development, career and next steps. Ben has been pulling together some tips for candidates with a specific interest in tech and software development. We want to share these wider in case it helps anyone else in this space.
Ben’s advice to anyone looking for a role in software development
While you’re job searching, teach yourself to use some standard tools and languages that there’s a lot of demand for in the industry – there are lots of great tutorials around and if you already have some programming and web design skills this would mostly be a case of applying the principles you have already learned in different ways. I strongly suggest learning the following, in this order:
Javascript is the most commonly used language on the web and every programmer should know it. If you’re accustomed to working with C# you’ll find it very easy to read and understand the basics but don’t let it trick you into thinking it works like C#. It’s not object oriented and the way Javascript does scope is really weird but it’s also a very small core language and very flexible, you can easily learn everything you need to about the core language from MDN. Once you learn about its quirks you will find it can do a lot of really good stuff. The way it treats functions the same as strings or integers allows some really cool tricks – learning about Functional Programming is super interesting even if most people (including me) find it pretty hard.
Node is not a language, it is a tool that takes the core Javascript engine used in Chrome and moves it out of the browser so you can run it on the server/local machines. There is so much stuff built on top of Node now that it’s well worth knowing the basics of how to use it.
Git is the industry standard version control system and it is crazy powerful. Learn to use it on the command line (again it is a fairly simple, well designed, tool that lets you do clever things) and once you have a handle on creating and cloning repositories, branching and merging them you’ll have the core knowledge you need for most workplaces. Git is also the underlying tool used by Github, which is the home of Open-Source software. It’s worth getting an account on Github and maybe taking part in some Open-Source projects – that will give you some solid experience on your CV that most employers will pay attention to. There are some good videos by Eddie Jaoude on how to get involved.
Mysql/MariaDB every programmer should learn the basics of SQL – you don’t need to worry about the complicated stuff like Unions until you have a project that calls for it, but you should know how to use select, insert and update queries, and basic joins. Luckily, this is an old technology and there are loads of good introductions to it around, the important thing to know is that although it is old it still underlies most software and understanding it will help in pretty much any workspace, especially as the pendulum of storage fashion is swinging back from NoSQL solutions like Mongo at the moment. Relational data is everywhere.
Typescript is a tool that overlies Javascript and turns it into a language with static types (closer to languages such as C# and Java which sacrifices a little flexibility for a lot of reliability) and works more practically for large projects. Typescript is the underlying technology for Angular and a lot of other important tools now are written with it or at least entirely compatible with it.
From there the world is your oyster – there are lots of really interesting libraries that operate with Javascript/Typescript and let you do useful things – RxJS handles asynchronous events (really good to understand), React is the tool used by Facebook’s UI team and with React Native you can take it directly to mobile platforms, Angular is the tool used for Google’s applications, there are loads of fun and interesting projects to experiment with and once you have learnt to use a few you’ll find that learning more gets easier because learning is a skill in its own right.
Beyond that there are loads of useful languages and tools you could learn – Rust and Ruby are languages that do very different things but both will teach you about how a programming language can work, Python opens the door to a lot of data science and statistical work, PHP is awful but half the web runs on it so it’s very marketable, learning the Linux command line can really help if you are ever responsible for running a server. Development is not only about writing software, it’s also about developing your own abilities – no matter where you are in your career, keep learning and experimenting with new languages and technologies and you will find that all your work improves as a result.
Free to access and don’t worry about going wrong
Everything I’ve recommended here is free to download and install – I strongly recommend simply experimenting with things, watching videos or reading tutorials and figuring out how to use them for yourself. Don’t be afraid of going wrong – at worst you’ll have to reinstall stuff and it’s all part of learning. If you have git configured it will be very hard to lose any of your work. After a while you’ll probably think of some ideas for things you could build and that is a great way to get some experience- learning from tutorials or books is an essential way to start, but when you try and make something that works in the real world, even as a hobby project, it will teach you a huge amount. More than anything else, employers are interested in direct technical experience.
If you do get involved in Open-Source you will also have work available in public that people can look at and see exactly what you did and how you contributed, as an interviewer for a technical role, that would immediately give me a great indication of the kind of developer that you are, but more importantly your bug fixes or new features would be bringing something new to the community of users for that tool.
Share away!
We loved reading Ben’s tips and hope you do too. We hope they’ll be useful for others starting their career in tech and software development. So please feel free to share this widely with anyone you think may benefit.