-
Notifications
You must be signed in to change notification settings - Fork 22
Prep: Engineering Topics
Cas Ibrahim edited this page Aug 7, 2020
·
5 revisions
- One of the most common mistakes devs make in interviews is to jump straight into coding rather than working through the components/process of the problem aloud and writing a formula/pseudocode to be sure the problem is fully understood first.
- Instead of getting overwhelmed by the question, we should read it through a few times to get all the components straight. If we process the problem a few times, it makes it easier to understand fully.
- After we conceptualize the problem and come up with a manual solution, we should try to optimize the solution! That way, we can start coding with an efficient strategy in mind.
- After coding, it's important to optimize the solution code we write, rather than just coding the correct answer and calling it complete.
- Most of our whiteboarding time (70%) should be spent on processing and preparing for pseudocode in order to set a strong foundation for our understanding of the problem.
- Visualizing a chunk of time (an hour of your day) and assigning a value to that time ($1000+) can help motivate us to treat our time more wisely.
- Anthony Moore writes, "When you’re busy, you are on autopilot. You can’t see the hours slipping away, time you’ll never get back." But busy is disorganized. We can instead think of our schedules as meaningfully-organized (and full), and this is a key to productivity. It makes it easier to set goals related to what we spend our time on.
- In addition to not wasting time on meaningless activities, it is important to learn to say "no" to activities/invitations that do not measure up to the value we have assigned to our time.
- Understand the problem: We have a good understanding of a problem when we can explain it in plain-speak
- Plan the solution: Think of a manual solution (with steps), then pseudocode
- Divide the problem: Complex problems can't be solved all at once. It's important to reduce the problem into solveable chunks, then connect the dots
- Get Unstuck: Debug, Look at the problem from another angle and try to identify general principles that could be of service to the solution, and Google it
- Practice problem-solving: Most employers prioritize problem-solving skills over other qualifications
- After identifying a problem, ask why it is occurring.
- This first answer is likely a surface-level reason.
- After that, trace back to the deeper cause of the issue by continuing to ask "why" until identifying the true cause of the problem (we've arrived at the true cause when asking "why" again does not produce a useful response).
- After identifying the true cause of the problem, develop a counter-measure that will solve the problem before it creates others.