How to prep for (technical) interviews for Web Developer position?
Hello everyone!
I'm a self-taught front-end web developer with background in Psychology.
- How do you usually prepare for your interviews ?
- What kinds of questions do they typical ask?
- When you are given a problem you can't solve on the spot, what do you do to leave a good impression?
I simply list a few questions I have in mind
Any suggestion will be greatly appreciated!
Thank you for your time in reading this post & Thank you for helping out the next generation Web Dev Ninja!
Take care :)
#JULY20
#interview #interview-preparation #interviewing-skills #coding
#programming#webDeveloper #technology #career #careertips
7 answers
Dhairya’s Answer
Often interviews for software engineering / web dev roles will involve the following three components: initial screen, technical interview and behavioral interview. Depending on the company and role, you may also have other thematic elements thrown in like an architecture evaluation (how well can conceptualize and design more complex software). I'll focus on the previous three though and try describe what to expect and how to prepare for them.
Initial Screen
- This is usually a phone call and consists of a conversation gauging your interest and sometimes a r preliminary coding test. The goal for the screen is two-fold, one ensure there's a good fit and two it's worth investing the time for longer interview process. During the phone screen, you'll be asked general questions about your interest in the company, what kind of opportunities you're looking for, you background. While the conversation will be light and a high level, you want to put forward a good first impression. It's also an opportunity for you to ask questions to see if the opportunity is a fit for you. Be sure to ask questions about the expectation of the role (is junior or senior, what technologies do they work with, is it a new role or is it a back fill for someone who left). Make sure the responsibilities of the role match your expectations and its ok not go further if they don't. Some companies will also have a coding screen, where you either do a take home coding assignment or do a live coding problem over the phone / web as part the initial screen. These problems are meant to be solvable and demonstrate that at a minimum you can code. The best way to prepare for these is to brush up on the easy level questions you'll see on leetcode or hackerrank. Be able to use for-loops, simple control structures (if/else), write functions etc. When setting up the phone screen, if there is a coding part, be sure to ask what setup is. Is there a required language or can you use what you feel comfortable with (usually most screens will let you solve it in your preferred language but make sure you ask)? If its online with a screen share, find a quiet place and make sure you have a strong internet connection. If its over the phone, have pen and paper ready. I'll provide tips on the technical part in the technical section.
Technical Interview
Depending on the company, this can one or several different thematic interviews. I personally don't like these interviews, but unfortunately they're common. In general the goal is to evaluate your ability to problem solve, think computationally, and write clean code. As with the phone screen, be sure to ask in advance what the setup is (which language, is it whiteboard or live coding on a laptop, should you bring your own computer etc). Choose a language you feel comfortable coding in (sometimes they'll even allow psuedo code) if you have that option. It's better to code in your preferred language vs one you're not familiar with even its part of their stack. Popular language for tech interviews include Javascript and Python, as both easy to write, have simple syntax and are terse. But again, choose what works for you with caveat that ideally its something that's isn't too obscure.
In the interview you'll be given a problem, like "write a function to check if a string is a palindrome". Take a moment or two to read or digest what the problem is. Next ask clarifying questions. What is the expected format of the input, is it validated or do you need to handle it, what is format of the expected output, etc. Check if its ok to write out logic/psuedo code first and then go back correct for syntax if that is important. Usually i care less about syntax and more so about your logic, but other interviewers may be sticklers for syntax and formatting.
Make sure you actually understand what the problem is before diving in, and ask questions along the way. State your assumptions. Try to think of the easiest or dumbest way to the solve the problem with the most lenient assumptions (e.g. assuming its a valid string, I'll reverse the string and check if is the same as the original string). As you're doing this, check if its ok to use base functionality (e.g. use .reverse() or do you need to manually traverse the string). If your solution require external methods, stub them out and then focus on the primary logic (e.g. say you have an external function to validate string, declare it and then return the palindrome logic). White you're working through the problem communicate what you're thinking. Once you have a solution, take a moment and check-in with the interviewer. If you think there's opportunities to optimize or update the logic for edge cases, say so and describe what you'd do. If your solution has complex logic, try first outline the steps of your logic and then fill in the code. Try to keep everything organized. It's ok if you can't solve the problems (sometimes they may be intentionally complex). The goal of the interview is to better understand how you think and work through a problem, so communicate along the way and test out solutions. It's ok to take time to sketch out a solution and explore on paper before going to the whiteboard, just make sure your say that you're doing that.
There's many more tips on what to expect and you can google whiteboard / coding prep tips. In general it really helps to practice a few times before. There's also a site called https://www.pramp.com/ which lets you practice whiteboard style problems with other people on the internet for free. Grab a friend to roleplay as the interviewer and go through working out the whiteboard/coding challenge live with them. Practice solving the easy and medium level problems found on sites like leetcode or hackerrank. Brush up on your algorithms (sorting, traversing a linked list, etc) and data structures (stacks, queues, trees). You can find specific advice in online blog pots and a book recommendation below. Note this advice is primarily about problem solving style interviews. You may also be asked for technology specific questions (e.g. write a react component). If you have a particular technology or library on your resume its fair game, so be prepared to talk about it (e.g. SQL or node.js , etc).
Behavioral Interview
So the goal here is get a better sense of your soft skills, what you'd be like as an employee, and if you're a good cultural fit. Again anything listed on your resume is fair game. Make sure you know your resume inside and out and are able to speak specifically about any experience listed. My general advice for behavioral interviews is to prepare 2 - 3 experiences a head of time and be able to speak about the confidently. Refer constantly back to them as specific examples. For example have a story prepared about a project where you were the primary lead that went well, one where you struggled/failed and what you learned, and one where you worked as part of a cross-functional team (e.g. you had technical and non-technical stakeholders). For each example, be able succinctly (1-2 sentences) describe what you were working on (e.g. building website for dog sitting company), the technologies you used (e.g. javascript, react and a postgres backend) if applicable, and what your contribution was (e.g. built the pet listing feature), any key challenges you faced, what you learned and who else you collaborated with. If you don't have professional work experience, use an academic coding project (self study or class) you worked on. For the team experience, its ok to refer to non-coding experiences as well, as long as you can speak to the communication aspect of work with others. Once you have your 2-3 stories, you can directly refer to them for any behavioral question that's relevant.
There are many behavioral question (you can google these). The goal is to not memorize answers to them but rather be prepared with experiences you've had that best address those questions. Be truthful and answer them to the best of your ability. Where you can, be specific and refer to your experiences for concrete examples. If you don't have a relevant experience, say so and then answer hypothetically. It's ok to take a moment or two before answering, especially if you want to gather your thoughts. Try your best to be succinct and only provide more information if asked. If you're going to tell a longer story, make sure you recap your key points at the end. Definitely don't disparage others you've worked with or previous employers. If you had a negative experience you want to share as a learning, share the details of why it was negative objectively, how you dealt with it, and what you wish could have been done differently. Finally, take credit and confidently advocate for what you did and are proud of. Its good to use "we" when talking about teams efforts but make sure you use "I" when describe work you specifically worked on. Usually if I hear the term "we did xyz" or "our team was responsible for xyz" used constantly, it's a signal to me that perhaps the candidate played a minor role on the team or was not a significant contributor as the work was perhaps done by more senior team members. So be clear and articulate specifically work you did, what resources you used and if any else provided critical support (e.g. I wrote the react component for listing dogs using the the dog apis provided by the dog inventory team. I was the primarily lead on designing the component spec and implementing it ... etc).
Hopefully this was helpful. I know there's a lot of information above. With all interviews, take your time, practice with friends doing mock interviews and work towards feeling confident in yourself and your experiences. Good luck and feel free to post anything else that comes up. I hope you find your next opportunity soon!
Dhairya recommends the following next steps:
Cameron’s Answer
I've done a good amount of technical interviews for software engineering positions. While this isn't only limited to Web Development, I think the tools would remain the same.
How do you usually prepare for your interviews?
- There are plenty of very useful tools online to help you practice basic types of questions most interviews will cover. While you may not get the same exact question, covering a broad range of topics can help build the problem-solving skills necessary during the actual interview. Though cliche, practice does make perfect :)
What kinds of questions do they typically ask?
- As I mentioned above, it's impossible to say exactly what questions they will ask. Make sure you practice the various types of questions (string manipulation, arrays, etc) so that its harder for them to throw you a curveball. Since you said you specifically focus in Web Dev, I would say it is very unlikely that they would expect you to memorize various HTML/CSS tags, or JS/TS functions. So don't spend too much time with the details. Just know which functions are useful in different situations, and generally what arguments they take. Outside of the interview, you'll have IDEs and compilers to do the rest.
When you are given a problem you can't solve on the spot, what do you do to leave a good impression?
- The biggest thing to know is you cannot give up and say "I don't know". With that being said, it is important to be vocal and honest. Constantly think out loud so the interviewer knows how you're thinking about the problem because if you do get stuck, it will help them push you in the right direction. In the end, its an interview for a technical position. They don't expect you to breeze through the problem with no difficulties every time. If you come prepared, they will be able to tell.
Sydney’s Answer
I think one thing I've also learned is that *technical skills can be taught, people skills cannot" so all I'm trying to say to be sure you're being yourself still!
Naina’s Answer
Hope this helps :)
How do you usually prepare for your interviews ?
Key to preparing for a web developer interview is same as all other interviews:
1. Be good at your basics. Practice and have a good hands on at some scenario based problems to get well equipped with your field/technology
2. Understand what the recruiter is looking for. Go through the job description and understand about the expectations from that role. Read more about the company,its history etc.
3. Have a good detailed resume, also mention any voluntary small projects or app developments that you have done using web technology
What kinds of questions do they typical ask?
There are usually 2-3 rounds of interview which may vary from company to company
Initial screening contains of understanding the work that you have done, what all have technologies you have used, what were you previous roles and responsibilities. This clears the way for the next round.
Next round is around solving some scenario based problems. For a beginner, these questions may be to understand your logical/reasoning and problem solving capabilities by giving you some javascript based problems like array manipulation problems, and some of the common examples like checking if string palindrome or not, reversing a string,replacing character in a string and so on.
You can find list of such examples here: https://www.w3resource.com/javascript-exercises/javascript-basic-exercises.php
Motive of the interviewer here is to understand the requirement, how you approach to solving the problem, and how you solve it using best code practices etc
For html/css, they might ask you to about significance of certain tags or style etc.
When you are given a problem you can't solve on the spot, what do you do to leave a good impression?
I have been taking interviews from quite some while, and i feel what the interviewer really looks at it is how do you understand the problem which was given to you, do you ask questions to understand requirements in detail. Also sometimes you might not be able to get the complete solution or maybe not recollect the exact syntax which is fine, given that the approach you used is correct and you are able to explain the approach step by step.
Would like to give one more suggestion here, try to get some good hands on basics like html,css,javascript and then move on to front end development frameworks like angular, react etc. It gets much simpler to learn and start framework once you are good with the basics. Also there is a lot of information/tutorials/videos available on web which can help you to learn these frameworks
Good Luck !!
Nikita’s Answer
Cameron has answered your questions really well. I would like to add a couple of points which my friends have followed during their technical interviews.
1. How do you usually prepare for your interviews?
- The norm these days with any kind of software interview is testing the candidate for data structures(DS) and algorithms. It will be part of the Initial screening round as well as the later stages. Below I have listed down some resources that are very useful in learning ad perfecting DS and algorithms,
- Introduction to Algorithms - by Thomas H. Cormen (Author), Charles E. Leiserson (Author), Ronald L. Rivest (Author), Clifford Stein
(Author)
- Cracking the Coding Interview (CTCI) - by Gayle Laakmann McDowell
- https://medium.com/javarevisited/7-best-courses-to-learn-data-structure-and-algorithms-d5379ae2588
2. What kinds of questions do they typically ask?
- The questions asked in the interview would again be designed to test your knowledge of basic data structures and algorithms. Yes, you might also expect UI specific questions but those would be an extension to the DS questions. The sources that you can use for getting used to a variety of such questions are as below,
- https://leetcode.com/ (This has a wide variety of questions categorized into various types)
- https://www.geeksforgeeks.org/
- Cracking the Coding Interview (CTCI) - by Gayle Laakmann McDowell
- Elements of Programming Interviews: The Insiders' Guide - by Adnan Aziz (Author), Tsung-Hsien Lee (Author), Amit Prakash (Author)
3. When you are given a problem you can't solve on the spot, what do you do to leave a good impression?
- I think the most important thing is to not panic and think about the problem calmly. It helps to break down a problem into small parts and tackle one part at a time. While doing this, it's also vital to think out loud and convey your thinking process to the interviewer. Generally, if the problem is too difficult, then a candidate is not expected to come up with a perfect answer. Most of the time, it's just about analyzing how a candidate tackles a difficult problem. That's how the interviewers judge how the candidate will perform in real-time work scenarios. So just take a deep breath, talk out your thought process make sure you deliver your thoughts clearly, and tackle the problem.