Whiteboarding tips and tricks

Before Attending the class

To get the most from the class we ask you to do the following before attending:
  • Create an account on www.leetcode.com.
  • Return to the home page and click on “Problems”
  • Review the available categories and types of problems.
  • Choose an easy question from one of the categories and try to solve it. This will allow you to see how leetcode works.
  • Whiteboarding tips and tricks

    Make sure you understand what they want you to create. Remember that, in some cases, your ability to understand the question and, if necessary seek additional information, may be a portion of the test. Key information may have intentionally been omitted to see if you make the effort to learn about the problem before just jumping in. In other cases, the way they say certain things may give you a hint as to what they want or expect.

    Consider the range of possibilities. Will your solution not only address the key topic, but the edge cases as well? For example, what happens if you test it with the largest/lowest value allowed?

    Consider using the approach that is the fastest for you to show first (usually a brute force approach) then consider ways to optimize what you have. This way, you have a solution that (we hope) works and then they can see how you approach optimizing. In some cases, you might briefly state the brute force approach so they know you understand one way, but then you might white board a more efficient approach as your solution.

    What are some alternate approaches to your solution? Could any of them increase performance? Or make the code more readable? In most cases, there are quite a few ways to solve the problem.

    Even if you can’t solve the problem, talk with the interviewer. Often, they may give you hints or nudge you. Or even remind you of a concept you know quite well, but didn’t click as an option.

    As you work think about various approaches, speaking your thoughts may also help them get a feel of your approach.

    Remember to consider which of the following is the most critical for the solution – speed, space (i.e. how much memory/disk space will be required), or flexibility (how easy can it be reused, modified, enhanced, etc.)

    Don’t forget to walk through your completed code to test if it handles all the cases. Do your solutions match the requirements (you didn’t miss one of the requirements did you?) Do you have anything that is redundant, unnecessarily repeated, or implemented in the wrong place, resulting in poor performance?

    If you usually program with an IDE that auto completes the code you type, mention that to the interviewer so that they are less likely to downgrade your code when you used the wrong method/function/etc. name.

  • Links to resources

    The following are some of the links that may help you as you prepare for your coding interviews. This is by no means a definitive list. Should you feel that other appropriate resources should be included, please let us know.

    Training resources:

    https://www.edx.org/
    Free university level courses in many areas (but the certificate of completion may cost money.)
    https://www.lynda.com/
    LinkedIn bought them, so are available via that platform. Fees vary depending on LinkedIn account. 1 month free (which may be all you need.) Lynda.com is free for anyone with a Sunnyvale library card which are free to any Santa Clara County resident.
    https://www.pluralsight.com/
    A paid training site. But lots of great topics by well-known authors.
    https://www.streetcode.us/
    https://www.streetcode.us/
    Coding & Mentoring for all ages.
    https://www.udacity.com/
    Wide variety of online coding courses.
    https://www.udemy.com/
    Wide variety of online coding courses.

    Practice sites:

    (coding sites to practice/improve coding skills as well as prepare for interviews)
    https://www.careercup.com/
    Interview questions with comments/answers by folks at large.
    https://www.codewars.com/
    Improve your coding skills.
    https://www.fullstack.cafe/
    Interview questions in many languages including cloud, blockchain & security. They also say they will help improve coding resumes & free interview prep plans.
    https://www.hackerrank.com/
    Practice coding and see how you match up to others. Apparently some companies even use this for their candidate testing.
    https://leetcode.com/problemset/all/
    Practice coding, contests and articles. Practice problems are in the categories of algorithms, database, shell & concurrency.
    https://www.pramp.com/
    Pair up with someone to work on a problem in an interview atmosphere.
    https://www.topcoder.com/
    A place to show off your coding skills and gain the attention of companies looking for people like you. Some companies also use this as a way to crowdsource code.

    Other Resources:

    Cracking the Coding Interview book by Gayle Laakmann McDowell – Some companies recommend it prior to starting the interview process.
    https://github.com/
    Source code repository (if you don’t have an account or are not familiar with it, you will probably benefit by doing so.)
    https://stackoverflow.com/
    Very popular place to post questions and show your skill by answering them. They also have a jobs page.
    https://www.codeproject.com/
    great resource for new trends, coding practices, etc. Lots of code. Slight slant towards Microsoft products.