Interview for a Software Engineering Position
A software engineer designs and develops computer programs and systems, and it can be a very rewarding and competitive career option. On top of answering standard interview questions, you’ll also have to work through technical problems that showcase your problem-solving and coding abilities. While it may seem intimidating, there are a few things you can do before and during the interview to boost your chances of getting the position. As long as you practice and have a confident attitude, you’ll be ready for any interview!
Contents
Steps
Reviewing Coding Languages
- Research the company online to see what programming language they use. Look through the job posting and write down any programming languages that are listed. If you can’t find the language that they use, try searching online for the name of the company and the term “programming language” to see if past employees or the company have mentioned one.
- There are many different programming languages, but the main ones you will probably need to know are Java, JavaScript, C++, Python, or Scala.
- Go over concepts and keywords for the programming languages. Look up the name of the programming language online so you can find the basic keywords and functions it uses to operate. Write the keywords and concepts down so you’re less likely to forget them. Be sure to review the commands for algorithms and data structures for each of the languages so you’re able to remember them during your interview.
- Common algorithms you’ll probably use in the interview include binary search, merge sort, and quick sort.
- Try asking the company what coding challenges they do in interviews. Many tech companies and past employees are open about what you can expect from their coding challenges. If you have an interview scheduled with the company, send an email or call so you can ask what they usually cover in the interviews. While they won’t give you the exact problem you need to solve, they may give you ideas of the problems past interviewees have solved so you get an idea of the complexity.
- You can also try looking up the company online followed by the phrase “interview coding challenge” or “technical question example” to see if someone’s posted their experience online.
- Work on programming problems to prepare for the technical question. The technical question in an interview usually consists of a complex coding problem and usually lasts about 30 minutes. Look up practice technical questions online and do your best to solve them. Talk through your process to yourself so you get used to explaining how you solve problems. Try out multiple practice problems so you’re prepared for whatever question they give you during the interview.
- The technical questions are usually open-ended so there isn’t 1 specific right answer.Template:Greenbox:'''Tip:''' Try writing out your code on paper. Many times, you won’t be able to use coding software or a computer during the interview, so you won’t be able to test or run the program.
Working through Technical Questions
- Listen to the programming prompt thoroughly. Many times, the interviewer will stay in the room and read the prompt to you. Listen carefully so you have an understanding of what information you’re given and what the end result should be.
- Technical questions will vary between companies, but they could be anything from designing a program to find pairs of numbers, play a game of tic-tac-toe, or sort through lists of data.
- Technical questions usually last around 30 minutes, but it may vary.
- Ask the interviewer for clarification if you don’t understand the problem. If you’re confused about the prompt or you need further clarification on the information, talk to the interviewer directly. Repeat what they said and try asking for more details around the problem.
- For example, if you need to make a program that finds pairs of numbers in a set, you can ask something like, “Should I assume that the numbers are in order?” or, “Could negative numbers appear in this set?” since these could affect how you write the code.
- Talk through ways to solve the problem out loud before writing anything. The technical questions don’t have 1 specific answer, so it can help to say out loud what you’re thinking and how you interpret the problem. Offer up different solutions and work through them out loud so you can talk about how they can satisfy the problem. Don’t start writing code right away since you may find an easier solution.
- While the interviewer is testing to see if you can figure out a solution to the problem, they also are paying attention to your method of thinking when you solve it. By speaking out loud, the interviewer may give you hints or guide you in a more specific direction.
- As you work through the problem, the interviewer may add more constraints. For example, in a program for finding pairs of numbers, you may start off with a small set of numbers in ascending order. If you find a solution, the interviewer may change the problem to include a larger set of numbers in random order.Template:Greenbox:'''Tip:''' It’s okay to admit if you don’t know something, but try to make an educated guess on how to solve it. For example, you may say, “I’m not quite sure how to do that, but if I had to guess…”
- Write the code in your preferred programming language. Unless you’re instructed otherwise, you can usually pick which programming language to write the code in. Choose the one you’re most familiar with and start writing the code for the problem on a whiteboard or piece of paper. As you write the code, explain what each part of the code does to show that you understand how it works. Put the code in the proper format and check for any spelling errors.
- It’s okay if you don’t figure out a solution to the problem as long as you explained your processes and started making progress in the right direction. Interviewers may still hire you if they see your potential.
- Search for edge cases to troubleshoot your program. After writing the code, try to test it by going line by line. Substitute a number or a value into the code for any variables and explain how the program would run. Mention if there are any cases where the program would give you an error or not give the expected output.
- The interviewer may guide you to notice any mistakes in the code so you can go back and make corrections.
Nailing the Basic Interview
- Wear clothes appropriate for the company. Search online or ask your interviewer about the company’s dress code so you don’t arrive under- or over-dressed. Typically, wearing a button-down shirt with a tie or blouse will work well as a top. Opt for pants or a knee-length skirt for your bottoms along with a nice, clean pair of shoes. Make sure your clothes are clean and wrinkle-free before you go to your interview.
- You typically won’t have to wear a suit if you’re interviewing for a software engineer position.
- It’s okay if you wear a vibrant color since it can help you stand out, but avoid wearing something too bright or distracting.
- Arrive at the interview early so you don’t feel rushed. Check how long it takes to get to the interview site and plan enough time for your commute. Aim to get there between 5–10 minutes early so you can find where you need to go without getting panicked or rushed. That way, you can take some time to calm yourself down if you start feeling anxious.
- If you’re doing a phone or online interview, still try to be ready a few minutes early just in case there are any technical issues.
- Mention coding projects that you’ve worked on in the past. Your interviewer will want to see that you’re consistently working on projects, so give a brief 30-second overview of what the program was and your involvement in it. Include information about the programming language and algorithms you used. Bring up any problems you ran into along the way and how you managed to solve them.
- You may also provide links to a GitHub or portfolio page to show your code on a phone or tablet.Template:Greenbox:'''Warning:''' Avoid showing the program without any explanation since the interviewer won’t understand the thought process that went into it.
- Talk about your interests and hobbies outside of programming. While your qualifications are important, the interviewer also wants to find out if your personality is a good fit for the company. Bring up other things you’re interested in and try to relate them back to your work life. Try to list a few of your hobbies and interests so you can hold a natural conversation with the interviewer.
- For example, if you play a recreational sport, you can say that it’s helped with your communication and team-building skills.
- As another example, if you host board game nights with friends, you can mention you organize weekly get-togethers and have experience teaching others.
- Ask questions about the company when you’re prompted. Try to think of at least 1–2 questions you have about the company and workplace environment. When the interviewer asks if you have any questions, bring them up and let them answer completely. Avoid asking about salary and benefits right away since you may come across disingenuous.
- For example, you could ask things like, “What new duties can I expect from this position 6 months after starting?” or, “What direction do you see the company going in the next 5 years?”
- Asking the interviewer questions shows that you have initiative and that you care about how your work can affect the company.
Tips
- Always research the company and go into an interview so you’re prepared and know what to expect from them.
- Even if you don’t nail the first interview, keep your head high and continue looking for positions.
Warnings
- Don’t lie about your skills or coding ability since it could make you look dishonest.
Related Articles
References
- [v161479_b01]. 21 July 2020.
- https://hackernoon.com/5-steps-to-successfully-prepare-for-software-engineering-interviews-qc1lh33ho
- https://builtin.com/software-engineering-perspectives/software-engineer-interview-questions
- https://hackernoon.com/5-steps-to-successfully-prepare-for-software-engineering-interviews-qc1lh33ho
- [v161479_b01]. 21 July 2020.
- https://youtu.be/XOtrOSatBoY?t=59
- [v161479_b01]. 21 July 2020.
- https://youtu.be/XOtrOSatBoY?t=121
- https://youtu.be/XKu_SEDAykw?t=1026
- https://www.forbes.com/sites/robinryan/2019/11/13/hr-reveals-what-you-should--and-shouldnt--wear-to-a-job-interview/#1c1f70119fd6
- https://www.forbes.com/sites/lizryan/2017/11/14/ten-tips-for-people-who-get-nervous-at-job-interviews/#25f3c634615a
- https://builtin.com/software-engineering-perspectives/software-engineer-interview-questions
- https://www.forbes.com/sites/laurencebradford/2017/05/30/5-mistakes-software-engineers-make-on-their-job-interview/#129eb8776dd5
- https://codeburst.io/the-software-engineers-guide-to-cracking-hr-interviews-a37582e0daaa
- [v161479_b01]. 21 July 2020.