Skip to content

Latest commit

 

History

History
114 lines (97 loc) · 5.72 KB

tips.md

File metadata and controls

114 lines (97 loc) · 5.72 KB

Tips

The BEST interview feel like a nice conversation about a problem, and collaborating well with your interviewer is a good way to impress them

  • behavior question

    • tell me a story
      • technical complexity
      • impact (e.g. 5000 users)
      • story
    • prepare 4 stories (engaging)
      • story = situation + task + action + resolve
      • (2 personal story) success failure collaboration goal (conflicts)
      • 2 tech challenge
        • (e.g.independent project like back end and front end communication)
        • resume reference
      • relaxed & humor
      • feedback (self-reflect and other people) -> improvement
  • coding

    • Procedure
      • Before coding
        • Clarification after problem given
        • discuss the approach w/ interviewer first before coding
      • after coding:
        • reviewing
        • test cases
    • solution: oop design of solution (avoid global var)
    • e.g. color covering (flood fill)
      • double for loop on each point and dfs
      • don't revisit cell
      • use hash table to indicate visited instead of array
      • rewrite it recursively
  • More coding

    • tell time complexity before so that we have a idea how it would work
    • don't spend all time on a question time efficiency
      • not focus on analysis too much for following up questions
      • nice and neat coding
    • data structure hash table
      • array -> hashmap (reduce space)
    • design option: time vs space
      • data flow in the program
    • hash table
      • to mark revisited in a 2D matrix
      • optimize to keep value & memorization
  • Think out loud


  • Helpful Resource 1 about coding questions

  • Helpful Resource 2 about coding questions

  • Other/About Specific Questions

    • how you would handle the problem if the whole input is too large to fit into memory, or if the input arrives as a stream (scaling)
      • divide-and-conquer approach — perform distributed processing of the data and only read certain chunks of the input from disk into memory,
      • write the output back to disk and combine them later.
    • summation or multiplication of a subarray
      • pre-computation using hashing or a prefix, suffix sum, or product
    • A common routine for interval questions is to sort the array of intervals by the start value of each interval.
    • convert problem to graph

More behavior questions

  • why I code

    • impact
    • take us to different corners: work anyplace with only a laptop and dream/idea (no laboratory no employee no approval from anybody)
      • built anything: customization automation tooling user interface design and optimization
    • value, challenged, impact
    • motivated, inspired, empowered
    • innovation is everywhere (inspiring)
    • collaboration (meet so many different people, marketing people, support people, design people etc.)
    • problem-solving (creativity)
    • adapt to new things, constantly learn
  • Why Facebook

    • core values: move fast, be bold, focus on impact, be open, and build social value
    • compared to Google, more fast-paced
    • inclusivity and cultivating ecosystems
    • empowering regular people and developers with open source tools
      • greatly admire a company who sees the value in making open sourcing a core mission statement and puts so much effort into developing and maintaining its open source projects
    • company is entrepreneurial and always taking risks
  • Why Microsoft

    • sample: "I’ve been using Microsoft software as long as I can remember, and I'm really impressed at how Microsoft manages to create a product that is universally excellent. For example, I’ve been using Visual Studio recently to do web dev, and it’s APIs are excellent."
  • What's your weakness

    • Sometimes, I may lose focus on the whole project while plunge into very detailed problems. It's not bad to spend more time finding the best solution. But it may be better to finish the most critical part first. As it is, I'll draw the whole design on paper and put it just in front of the monitor so that I can easily find out what I should focus on.
  • Question for interviewer:

    • Undergrad mentorship
    • work life balance
    • glue engineer (is creativity involved)
      • how system design is involved as an intern or junior engineer
    • Management structure
    • Working in a start up v.s. working in a big company
    • Do you have program managers? If there is a conflicts between developer and managers, how do you solve it?
    • machine learning opportunities as an undergrad, algorithm design only for phd students? any opportunities for that part as an undergrad?
    • how's internal tools?
    • “What is the ratio of testers to developers to product managers? What is the interaction like? How does project planning happen on the team?”
    • What kind of people besides developers would you meet in daily work
    • would you collobrate w/ someone you don't want to work with?
    • motivation
    • plan for future
    • Is the business marketing, sales, product or engineering driven
    • What's the biggest negative of working here?
    • How would you rate your codebase in terms of technical debt?
    • What's the hardest problem you(the interviewer) had to solve
    • Do you have a culture of excellence and/or high-performance? What gets you to come to work in the morning (besides money, in finance firms that's a valid answer though)?
    • team & plan