Work Experience Season is in full swing here at CORE Software Solutions we have have been busy supporting and hosing a few students looking to see what the world of a Software Developer looks like and one of the most commom questions we have been asked is How Do I Get My First Job in Software Development? So we thought we would ask our Software Development Manager Ian Barwick for an inside track in getting into the world of Software Development this Blog looks at just that…
One question I am often asked is how can a young person improve their chances to get their first job in software development?
Typically, the question is being asked by a parent, who knows nothing about software development but does know their son or daughter has an interest, and they are due to leave school or college and need to find a job.
What am I Looking For?
There are three qualities I look for when recruiting for a Software Developer role:
- Enthusiastic
- Quick Learner
- Problem Solver
These are the basic qualities a good developer needs and interestingly, they are the exact same things I look for whether I’m recruiting for an apprentice, junior developer or for a more senior role.
Obviously, there are some soft skills, such as good communication, turning up for the interview on time, having a well-presented CV, etc. These all help, but the first three are key.
Show Don’t Tell
So, if you are just leaving school/college and don’t have any previous job experience as a developer, how can you demonstrate these qualities?
The one thing guaranteed to grab my attention from any applicant, is having one or more examples of projects you have worked on. It really doesn’t matter what it is, as long as you can show:
- You found a project you were interested in
- You had a go at it
- You overcame some challenges
Hopefully, you can see how these relate back to the three qualities I said I was looking for.
Some interesting projects applicants have told me about include:
- A script that monitored a NASA Public API to track the distance from Earth of the Voyager Space Probe and post reports to Reddit, using PHP.
- An implementation of the game Battleships in Javascript.
- A school leaver who was running his own Minecraft Server community, reselling hosting to his friends at school.
None of these projects directly relate to what we do as a business. But they all demonstrated enthusiasm, the ability to learn quickly and problem-solving skills.
Languages Don’t Matter
Often, when people are asking how a young person can improve their chances of landing their first job in software development, they frame the question in terms of what programming languages should they learn? What’s the hot new thing that will maximise their chances?
Well, I could say something like:
Python – Is the current hot thing for AI, Machine Learning, Big Data, etc. Although, you could hardly claim it’s new. It’s essential for anyone who wants to get into these areas.
PHP – The technology serving the webpage you are reading this blog post on, (unless you are reading this in the future), and powering around 75% of websites worldwide.
Javascript – A must-have skill for anything to do with front end web development, and with node.js increasingly used in backend development too.
SQL – Essential for working with databases, don’t even talk to me about NoSQL.
But I don’t think that’s really the best answer. I can’t speak for other recruiters, and some will have very different views on this. But for me, what programming language you use is not important. In my experience, someone who is a natural problem solver and learns fast can switch to a new language quickly and easily.
The hard part of programming is understanding the business requirements, how other computer systems and actual human beings will interact with the software you are creating. In other words, deciding what you want it to do is harder than making it do the thing. For more detail of why I think this, see my previous blog post: Will ChatGPT Replace Software Developers?
So, whilst I’m confident there will be demand for programmers in all these languages for a good while yet, no one really knows what the landscape will look like in 5 – 10 years’ time.
Maybe “Go” will be the next big thing, or “Rust” or maybe “Fortran” is due for a comeback, and no, I’m not even kidding about Fortran. As I said, pick a project you find interesting and go for it. In whatever programming language you like.
Stand Out from the Crowd
So, how do I stand out?
Pick a project, have a go at it. Then, make sure you are ready to talk about it:
- How does it work?
- What were the challenges?
- What did you learn?
- How could you improve it?
- What would you do differently next time?
Think about how you will be able to show your achievements.
A lot of times people tell me about websites or software projects they worked on for friends and family. But unfortunately, the site is no longer active, the project ended, and they can’t actually show anything.
This is not the end of the world and is definitely better than nothing. But it is going to be harder for you to remember the details and talk confidently about the project.
Think about setting up a Github account. This is a good way to keep a permanent record of your work. It gives you something to show, like a portfolio and can be a great way to kick start a conversation about a project you are proud of. If you have a working version, on your laptop or a live website, even better.
I wouldn’t say these things are essential requirements, but they will make it easier for you to demonstrate your experience and show that you have the three essential qualities.
Summary
This post is based purely on my own perspective. As someone who recruits software developers, in a company that emphasises training apprentices. It is my personal view, about what I am looking for when recruiting an apprentice or junior developer. Everyone is different though, and there must be plenty of recruiters who have different priorities. So if you are interested in becoming a Software Developer or you know someone that is Contact Us today and let us help you forge a Career in Software Development.