How to prepare for coding interviews

While many steps in the employment process are universal to any role you may apply to, applying for a role as a software developer, or any coding-related job for that matter, you may be expected to do a coding interview. 

This article explains what a coding interview is, what you might be expected to do in them, why you might be expected to do them, and some resources to help you prepare for them. 

What is a coding interview? 

At some point following an initial interview, you may be asked to do a coding interview. This is notorious for being one of the hardest parts of the interview process. During a coding interview, you will be given a task to do within a limited time frame. You might be observed by an interviewer as part of this and expected to explain your programming choices as you go. 

Why do I have to do a coding interview? 

While the purpose of an interview is typically to get a feel for who a potential employee is as a person and if they will fit within a team, a coding interview does the same but to get a feel for who you are as a programmer. It helps determine what your skill level and programming style is like. This is essential as they will want to know what kind of code you might be contributing to their projects. 

Coding interview resources 

There are numerous different resources to help you prepare for coding interviews, the only issue is that for many of them you must pay to use. I’ve collated some free resources that I recommend checking out to hopefully lend a hand when this stage of the interview process comes knocking 

Codewars 

Unsurprisingly, one of the best ways to practice for a coding interview is to code. But rather than working on your larger projects, it is important to try to solve lots of “bitesize” coding problems.  

An excellent resource for this is Codewars.  

Codewars is a platform that helps you learn, train and improve your coding skills by solving a range of tasks at varying difficulty levels. These challenges are called Katas and are specific to the languages and areas you want to focus on.  

You can find these challenges on the Codewars page or if you subscribe to their Weekly Coding Challenge newsletter, you will receive weekly emails with a selection of tasks to solve. 

All the challenges can be completed within the IDE provided on the Codewars website so you could complete them while on the go without your computer. Here is an example of one of their challenges: 

This is a relatively easy problem but nicely lays out how Codewars works. You see what your task is, and some examples of what solutions would be.  

You write your solution in this window before pressing Attempt to see if your solution is correct. If it is, you can then go and look at other people’s solutions to get an idea of how other people attempted the problem! 

This is a great resource to consistently practice your coding skills, and the range of challenges you may encounter will help you prepare for coding interviews. 

If this seems like something you are interested in, find more information here

InterviewBit 

Another great resource for coding interviews is InterviewBit. It works in much the same as Codewars with different challenges you can complete but also has some more supplementary content you can use if you so wish. 

There are three main categories to InterviewBit: Practice Problems, Fast Track Courses and Interview Prep.  

You can solve practice problems of varying difficulties much like with CodeWars but you also get to see what kind of companies ask these questions. 

You can also spend time learning the fundamentals of different languages, perfect for when you want to train or revise a certain skill ahead of an interview. 

Another excellent resource on InterviewBit is the Technical Interview Questions. These are guides not only on how to secure roles at large companies like Google, Amazon and Microsoft but more generalised roles that would require you to code in certain languages. 

Coding Interview University

Another excellent resource is the GitHub repository Coding Interview University This was created by Josh Masham for interview preparation. It was using these resources that he was able to get a job at Amazon. This repository is jam-packed with details, resources and links that will be sure to help anyone in their journey to employment. 

These are only three different resources you can check out to get that edge when it comes to a coding interview but there are many more out there and not everything will work for you, so just experiment! 

An Interview with the Careers Service

Image preview

We interviewed Sara Williams about their role as Careers Consultant for Newcastle University and learn exactly what they do, and how that can be a big help to you. 

Sum up your role in 10 words or less 

I help/facilitate students to achieve their career goals.

What are the official responsibilities of your role? 

Official responsibilities include: 

  • Carrying out appointments with students either via our drop-in system,  
  • Pre-booked online or in-person and longer 1-hour appointments for career guidance and mock interviews 
  • Delivering some of our central workshops.  

I also work closely with the academics and Employability leads in the schools of Computing and Engineering to understand student requirements and plan a calendar of events.  

Being up to date with what’s happening in the jobs market and sectors that might be relevant to our student groups as well as more broadly with recruitment trends and assessment methods is also an important part of my role. 

What are the unofficial responsibilities of your role? 

Unofficially I get involved with a wider remit of what the career service does whether it be helping out on University Open Days or at Careers Fairs and hosting employer-led events. 

“Have things on your CV beyond academics”

What are the top three mistakes you find that students make when it comes to employability? 

Not mistakes necessarily, more learning points.  

  1. I think maybe underestimating the recruitment process and how many stages you might have to go through for some companies and perhaps not being prepared for that. 
  1. It’s tricky as not everyone can commit to it but, having things on your CV beyond your academics can be really useful, not only so you can showcase a broad range of skills to employers but also as a learning process for you to figure out what you are good at and what you enjoy. 
  1. And I think number three is that students can often feel the pressure to just jump in and start applying before they have taken a step back to try and understand what they might be looking for in their next job, and more broadly, their career. 

What employability resource do you think is most helpful for students? 

I think one of the challenges is that there is SO much information out there and so many resources. I might be biased but our website is really comprehensive and covers a wide range of employability topics from planning your careers to what to expect at assessment centres and what you can do to prepare. 

Here is a link to view all those resources:  https://www.ncl.ac.uk/careers/

“Learn as much about the assessment process you will go through as you can”

Where in the process of getting employed (applying, interviews, assessment centre, etc.) do you think students struggle with the most? And how can they overcome that difficulty? 

I think each of the assessment stages can come with its own challenges and people can struggle with different things.  I think the key bit of advice I would give here is for students to try and learn as much about the assessment process they will go through either via speaking to someone at the organisation, looking at their website or looking at sites like Glassdoor. Armed with that knowledge they can then use the multitude of resources via the careers service to help them prepare. If I was pushed for something more specific, I think interviews can be really challenging as sometimes students may not have ever had a formal interview before. There’s a lot of advice and guidance out there on interviews and I’d also encourage students to use careers appointments to practice answers or talk through answers with a consultant. 

How many students make use of the employability team? 

Oooo that’s a tough one as it can be hard to define how students use the Careers Service. As an example, we conducted about 8,400 appointments last year and roughly 4,000 students came to one of our workshops. Beyond that the Careers Service also looks after processing for on-campus job opportunities, hosting employer events like our careers fairs, our curriculum team runs and manages a careers module, our placement team manages around sending 150 students out on placement and our start-up team also supports students in terms of building their own businesses or if they want to operate as a freelancer… 

“Students can make use of the careers service 3 years post-study”

If there was one piece of advice you want students to take away from this interview, what would it be? 

Make use of the careers service!  

We’re here to support you through your time at Newcastle and beyond (students can access us for 3 years post-study) and we offer impartial advice and guidance on anything to do with careers. 

I used the University’s resources to make a CV, and this is what I learned

For those of you who haven’t used the careers service much, you might not know about the abundance of resources it has to help you build up and develop your CV. Even if you’ve never made one before, the careers service offers tons of help. I tried out their resources for this and this is what I found out. 

Before writing this blog post, I hadn’t put too much thought into my CV. Sure I had previous versions used to apply for certain roles, but nothing I was overly happy with and certainly something I wasn’t confident about showing employers. But by spending an hour or two using the university’s CV-building resources, I was able to build a professional-looking CV from scratch. And there is nothing stopping you from doing the exact same thing. 

I don’t intend to give a word-for-word recounting of what resources are available to use, the careers service already does a fantastic job of that. Instead, let’s look at what I found most helpful. 

CV and Covering Letter Pathway 

The MyCareer page is not really something I’ve spent much time using other than casually searching for job or internship opportunities, so I found myself pleasantly surprised to find that there is so much more here. There are different pathways to help develop certain skills which will massively improve your employability, and one just happens to be about CVs. Let’s navigate to it first and then talk about what it has to offer. 

Step 1 

Log into MyCareer using your student email address 

Step 2 

Select Pathways 

Step 3 

Select CV and Covering Letter Pathway 

If done correctly, you should see a series of steps to complete to get you on the road to a fantastic CV.  

I want to draw your attention specifically to step 3, Create your CV and covering letter, as it has an extremely useful resource that I find myself consistently going back to. 

I’m of the belief that the CVs and Covering Letters Workbook is the bible of the employability world. This nifty little document is packed full of tips and steps to follow when building your CVs and covering letters, giving insights and templates for key areas like work experience and education. It provides a list of action words to really make your CV pop out to employers and even a checklist to use to critique and improve your own CV. There is something here for everyone so even if you don’t use it to make your CV, I wholeheartedly recommend looking when you want to take your application to the next level. 

CareerSet 

With your university account, you get access to the fantastic tool called CareerSet. This tool gives you instant AI-generated feedback on your CV, at any time of the day.  

When you upload a PDF copy of your CV, CareerSet analyses it against key stills recruiters are looking for, specifically impact, brevity and style. You can make changes based on the feedback given and then resubmit it again straight away. 

CareerSet scores your CV based on a percentage. Try to aim for at least 70% as that should give an indication that you are on the right track.  

Initially, I was worried about what kind of feedback this AI tool would give me for my CV, and I was half expecting something generic, but I found myself pleasantly surprised. CareerSet breaks down the issues with your CV into clear sections, giving an indication of which areas need improvement, and which you are already doing well with: 

It also gives a brief summary of where you went well and what you can improve next: 

One of my favourite bits of the tool is the Line-by-Line analysis which breaks down your CV and gives suggestions on how you can improve each line. It is excellent when you are redrafting your CV and ensures the language you are using is engaging: 

If you want to go a step further, CareerSet also allows you to tailor your CV to a specific role by searching for keywords in your file to see if they are in the job description. While this isn’t guaranteed to make your application successful, it will definitely help you stand out and get through the initial screening process for CVs, something usually done with AI! 

It is important to note that CareerSet only works for chronological CVs, so more creative or skill-based CVs won’t work as well. Luckily enough though, the university provides 1 on 1 sessions with CV advisers so you can get an extra level of feedback. 

Feedback from a CV adviser 

I booked one of these sessions and was able to get a time slot only a day afterwards. And while the workbook and CareerSet were invaluable tools, this was probably the best help. The 20-minute session almost imitated how an employer would look at your CV, going through it quickly to get an idea of what works, what doesn’t and what doesn’t stand out. They took the time to explain why certain things worked and why certain things didn’t, rather than just what should be changed (like with the AI tool). Key tips like evidencing all your skills in your CV, using as many technical terms as possible and focusing on content rather than visuals were some of the most helpful things I learned. I highly recommend booking one of these appointments as while an AI tool can be helpful, there is nothing more helpful than another pair of human eyes looking through your work. 

Hopefully, by the time you finish this article and have tried each of the things recommended, you will have a CV you are happy with and confident to show employers. Be sure to tailor your CV to each of the roles you are applying for. This might sound like a tall order, but the more you do this, the easier it will be to adapt. Best of luck in all your job applications! 

How to set up your portfolio

Whether you are a stage one student hoping for a summer placement, a stage two student thinking about a year in industry or someone in stage three applying for roles after university, your portfolio is an essential part of your career as a computer scientist. But how do you make a good one? 

Your portfolio is the best impression employers can get an idea of not just what you’ve done, but what you can do. Showing your different projects, the coding practices and how you have applied your knowledge will be much more beneficial than your CV when it comes to applying, hence why showing your work in the best way possible is so important. 

Here are some recommendations on how to best show off your work in a portfolio as well as some tips to make the projects you show really stand out for employers. 

GitHub 

Chances are you have heard of GitHub, certainly so if you are in your second year or above. The version control titan is the bread and butter for every programmer, allowing you to make use of git to store multiple versions of your projects and access them wherever you may be. But if used correctly, GitHub can be an excellent place to host your portfolio. 

On your GitHub profile you can see all your projects in something like this: 

It likely won’t be too exciting and certainly will not stand out against a slew of other GitHub profiles. But it is a suitable place to start from, you can show off some of your best projects and talk a little bit about yourself in a personalised ReadMe. And it turns out that going that extra step is a lot easier than you would think, all thanks to something called GitHub Pages. 

Making your own website has its advantages (something we will get into later) but some aspects like hosting can be difficult, expensive and time consuming. GitHub Pages solves those issues by letting you use GitHub to host your own portfolio website. And it only takes a few steps! 

GitHub Pages allows you to transform your existing repositories into websites to show off things like your portfolio, projects, or documentation. This is a great next step as it allows you to add your own unique spin to your projects that will make your applications stand out.  

You don’t need to worry about databases or servers; however, you will need a bit of HTML knowledge. But even if you aren’t confident with web development, this is a fantastic way to get some experience and really show off to employers. GitHub pages can be used with Jekyll to ease this process and make use of templates (look here for more details). 

The official documentation for GitHub Pages has a great video breaking down how it works and there is an abundance of content to help support you as you build up your very own portfolio. 

https://youtu.be/2MsN8gpT6jY

It is worth noting that while GitHub Pages does allow you to host your own website, this is limited to one per GitHub account. But you can have unlimited project sites. 

Making your projects “Portfolio Ready” 

Making your portfolio look nice is great, but you want to make sure it isn’t all style and no substance. Here are some tips on making the content of your portfolio really stand out. 

Tidy up your existing projects 

Good, readable code is an essential part of programming, and even more important for employers. When looking at your portfolio, employers won’t spend much time trying to understand your code, so making it as clear and efficient as possible is a great way to start things on the right foot. It will show employers your coding style and make it easier for you to understand your own work when you come back to it down the line!  

There are lots of different ways you can add subtle improvements to your code either as you do it, or in retrospect when working on your portfolio. Making sure your code is consistent with things like sensible names for variables, methods and files is a great place to start. 

One mistake many people make is to comment every single line of code to explain what is happening. This can almost double the size of your files and make them a lot messier than they need to be. If you think you need to explain each line, then you may need to go back and refactor your code with better variable names and simplify it as it is likely too complicated.  

But that doesn’t mean removing all comments in your files. Giving brief descriptions of methods and their return types is a fantastic way of reducing the amount of time you read, as it gives a quick understanding of what something does without having to go line by line to understand it. Just make sure to use comments only when you feel they are needed. 

Here is a simple example below for calculating a factorial: 

Bad factorial function
Good factorial function

Both functions work in the same way, but one is clearly more understandable than the other. The first only uses generic variable and function names whereas the second uses sensible names for both. This makes it a lot clearer even without the excessive commenting that the first method. 

Now that your code looks good, there are some things you can do portfolio side to make your projects stand out before employers even start looking at them. 

Give a brief description of what your project is, indicating the key features that you want to show off, what your contribution is (especially if it’s a team project) and what languages are used. This tells people looking at your portfolio what you can do straight away and make them more likely to look at your work more closely. Here is a good example: 

Work on projects outside of your degree 

One of the great things about your degree is that you get the opportunity to work on several different projects that can help you build up the solid foundations of a portfolio. The only issue is that every other student in your year, ~300, will have similar projects, hence why it is important to work on projects outside of your degree. 

This allows you to explore your interests and fine-tune your skills for the field you want to go into, and it also looks great for employers as you are showing them how you work independently and what your interests are. Also, having more projects is always beneficial as it allows you to be more flexible with what you want to show to different companies. 

When building new projects, it can be quite daunting to figure out exactly what to work on, especially with other commitments, including your degree. But don’t worry, you don’t need to be making some cutting-edge development with every project you have. Practicing new features and developing your programming skills is a great way of showing your personality through your portfolio.  

A great type of project to work on to help build up your portfolio is to recreate existing projects. Be it something as simple as the Instagram home page, it is great practice to try to build something from the ground up and try to understand how it works. It helps give insight into how companies develop software and there is always the opportunity to iterate and improve, something especially good when you end up applying for the same company! 

Tailor the projects you are showing off to the companies you are applying for 

Now that you have tons of professional-looking projects on your portfolio, you need to choose what to spotlight, so be sure to tailor it to the company you are applying for.  

You may have projects covering a wide range of things, but chances are you will be more confident in some than others and each will highlight different skills. Aim to show the breadth of skills you feel are most beneficial for your employability, but make sure not to focus on only one or two. Highlighting six projects that are all the same only gives no real indication of everything you can do.  

Be sure to show a mix of work that highlights your strengths and weaknesses. Team projects and solo projects, different languages and different topics show not just your range of abilities to employers, but who you are as a person – something which should be a focus of every portfolio. 

Remember, Rome wasn’t built in a day, and neither will your portfolio. Take your time and do it in iterations. Be sure to make use of University resources both in and out of the School of Computing to help you as you develop your portfolio and always ask people to check it over.