Mark As Completed Discussion

One Pager Cheat Sheet

  • Follow this guide for a step by step walkthrough on how to conquer interview nerves, approach coding interview questions from top companies, and learn important patterns.
  • While uncertainty about what questions to expect in software engineering and technical interviews may cause anxiety, with the right approach and behaviours, as well as regular practices such as meditation and exercise, it is possible to overcome these nerves.
  • By acknowledging you don't know the answer and showing enthusiasm to learn, it is possible to turn a difficult situation into an opportunity to demonstrate your technical experience and eagerness.
  • Whiteboard algorithm interviews are still relevant, although controversial, because they give good signals to the interviewer and can be conducted at scale easily.
  • Good interviewees approach whiteboard questions by running through a few examples to get a feel for the problem, unpacking the brute force solution quickly, tying the solution back to a specific pattern, optimizing the solution and running through the same test cases, and (if there is time) calling out edge cases.
  • Open and articulate communication is essential to demonstrate strong communication skills during the software engineering interview, even if you're shy.
  • It is important to clarify the requirements for a technical interview question and repeat them in your own words to ensure that you understand the full scope of the problem.
  • Start by asking for few sample arrays and build up test cases, increasing the size as you go, so that you can understand the transformation needed to get the desired outputs.
  • By thinking through a very basic implementation and iterating through the given inputs, it is possible to manually come up with a brute force solution to a given problem.
  • Writing pseudocode can help you clarify your thoughts to make the implementation of algorithms simpler and more modifiable.
  • Interviewers modifying the problem to make it more complicated shows they think you are doing well and is a good sign, so be prepared with different techniques to optimize your solution.
  • By leveraging patterns and thinking from a higher-level, you can optimize your solutions by exploring alternative solutions and trying to transform the input.
  • Introducing a counter variable to track the index of the last non-zero element helps to efficiently and quickly implement the solution to the Zeros to the End problem.
  • We have improved both time and space complexity by using two loops instead of just one, now with time complexity being O(n) and space complexity being constant!
  • It's essential to know data structures like arrays, hash tables, linked lists, heaps, graphs, AVL trees, tries, priority queues, suffix arrays, and bloom filters, and hash tables should be the first choice when dealing with searches, duplicates, and storing/retrieving items.
  • Introduce a computer science algorithm technique by using divide and conquer, recursion, memo-ization and greedy approaches.
  • When all else fails, ask more questions or say "I'm stuck", in order to get a hint from the interviewer.
  • After running through a few example inputs step-by-step with your pseudocode, ensure that you are confident with your solution and feel ready to move on to coding it up.
  • **The interview is now out of your control, so focus on the present moment and remain professional and composed - no matter the outcome - for the best chances at success.`