Part 4: The Interview Process
Preparing for your career in Tech
If you’re planning to enter the Tech industry for the first time or are looking to change companies, specifically in a software developer role, then you’ve likely already heard about how grueling the interview process can be. From in-person or remote technical screenings, to behavioral questions, to the dreaded whiteboard interview, we understand the fortitude and commitment it takes to make it through and “land the job”. In Part 4 of “Learning to Code: 5 Paths to Becoming a Software Developer and How to Enhance Your Skills Along the Way” we’ll discuss the interview process and how to get the help you need while you practice and prepare for your new tech career.
Whether you’re self-taught, a computer scientist or bootcamp grad, at some point in your job search you’ll encounter the dreaded technical interview which will most likely include a whiteboard interview. None who enter this field are immune. At some point or another your technical skills will be assessed and even if you are one of those rare few that were not subject to the technical interview process for your first tech job, stick around anyway. If you ever chose to change companies, it’s likely that you will be technically vetted in one way or another the next time. Interviewing is an art all of its own and knowing how to solve a problem isn’t enough. Interviewers are looking for more than just your solution code, they want to know how you arrived at the solution, what questions you asked along the way, how you accept feedback and what your overall process looks like. It’s extremely likely that at some point in the interview process you’ll have to problem solve for or with potential teammates and they’ll want to get a sense of what it’s like to work with you. Now that we have some perspective on what you should expect in technical interviews, it’s important to remember that first impressions matter. What can you do to be sure you make a good one? Let’s look at some ways you can prepare and leverage help from seasoned software developers.
Many software developers make use of code challenge websites and/or technical interview prep materials, like “Cracking the Coding Interview”, that serve up a variety of questions designed to test your problem solving ability. Some use these sites and materials to practice becoming a better coder, others to prepare for interviews, but most likely both reasons apply. Some of these resources will even rank your answers allowing users to promote their abilities to potential employers. Whether or not you’re looking to be ranked, these resources may be helpful when testing your problem solving abilities to common interview questions. If you choose to use them for practice don’t rely solely on your performance there to carry you through your interview. It’s one thing to sit down and code an efficient solution that passes all built-in tests and use cases as defined by the author, and quite another to whiteboard your answer in real-time to an audience who may have questions, suggestions or comments along the way. In addition to providing functional solution code in your interview, be prepared to also:
- Identify and talk about the problem domain.
- Provide a visual representation of the problem and its solution.
- Either offer solid pseudo code or a working algorithm (it’s okay if you have to change your thoughts here when it comes time to write your solution code, but it’s important to show your thought process and ability to course correct).
- Address runtime complexity and any possible improvements.
- Provide a method for testing your solution.
Remember, don’t make assumptions. The code challenge you’re tasked with may be intentionally ambiguous to see whether or not you ask clarifying questions. The best thing you can do is to practice solving code challenges both online and on a whiteboard with someone else. Look for local meetups that provide whiteboard practice or practice with a friend. If you need more assistance beyond that, then you may want to work 1-on-1 with another software developer in individualized learning sessions. More on that later.
Another common interview task is the code assignment. In some cases, the code assignment may replace the whiteboard interview or it might just be an additional part of the vetting process. Either way, code assignments can take many forms. Often the interviewee is asked to code something specifically related to the position in question. Or you may be given starter code and asked to code a feature or to build an app from scratch. Additionally, conditions of the assignment may be to pair program with your interviewer, code on-site alongside the team or to take the assignment home. No matter the condition or nature of the assignment, the ability to communicate effectively and efficiently are just as important as your ability to code. Practicing assignments like these is important so cover all your bases by practicing common interview code assignments with a strict deadline. When possible do it in a new or distracting environment (to help simulate being in a new workplace) and/or find a partner to work on pair programming. Similar to whiteboard questions, you’ll want to hit key points and address all aspects of the assignment. Effective interviewees go into these assignments with a plan or process, ask clarifying questions and do their best to represent their technical abilities and soft skills. As with almost everything in life, practice is key.
If you already have someone with whom you can practice and prepare for your interview with, great! Having someone you trust and can rely on is helpful as you prepare, but don’t underestimate the value of working with someone new. If variety is the spice of life, then seek to become well-seasoned. Involving interview partners with different problem solving styles and experiences is not only technically enlightening, but can enhance the way you think or approach challenges. This will give you a competitive and dynamic edge, since you never know what questions you’ll be asked in an interview. Cast your net wide and make use of friends, colleagues and software developer tutors.
Here at Code Fellows we have the distinct privilege to offer tutoring services for anyone, anywhere wanting to learn not only how to code, but also how to prepare for a technical interview. We believe that by learning from, and practicing with, trained and experienced software developers you are able to more fully grasp concepts and improve your interviewing skills. If you’re wondering who these tutoring services are for, everyone is the answer. We help code school students, computer science grads, the self-taught, and industry professionals prepare for the next phase of their career by becoming interview ready.
Sound good? That’s because it is. One session with a tutor goes a long way. Not only do participants get individualized help by working with us, all profits go towards our Diversity Scholarship Fund which helps underrepresented individuals get the support they need to begin a career in tech.
Ready to get started? The process is quick and easy. Simply click the big “Get Started” button below and fill out our general inquiry form. We’ll follow up with you over email right after to learn more about you and what you’d like help with. Be on the lookout for that email and check your spam folder just in case! The instructions within help us match you with the right tutor. After you’re matched, you’re free to begin scheduling learning sessions directly with your tutor. Also, there’s no program to join or commitment to make. Just schedule with your tutor for as long as you need.
For questions, please email firstname.lastname@example.org and we’ll be in touch!