Thank you! You are now a Monster member—and you'll receive more content in your inbox soon.
Preparing for an interview | nidirect
- THE PARANORMAL PREACHER: THE TRUTH ABOUT ALIENS AND AREA 51?
- Ireland Header.
- Make the Most of Your Opportunity.
I've seen interviewees go down the wrong rabbit trail and the interviewer just let them—all the while silently going to fail them. While I don't agree with this practice, make sure you're working the right problem. I do come from a computer science background, so I knew a doubly-linked list means a list that has a pointer to a head and a tail node—where each node also points to its next and previous node.
Now even though I knew that, what did I do? I said that out loud and asked if that was correct. Even though I thought I knew what to do, I made absolute sure I did. Once you think you understand the problem, restate your understanding the interviewer so they can correct or guide you. The next thing I did was ask another question: "Can I use an array for the nodes? If you're not familiar with Ruby this is just an initializer or constructor where I make a new variable called nodes set to an empty array. But, the interviewer told me, no, I couldn't do that—which makes sense.
If I had used an array it would have defeated the whole purpose of the exercise which is building out the fake "pointers" between the nodes. And boy, am I glad I asked. I didn't want to take the chance that the interviewer would let me use the array, and then fail me. In my experience being interviewed and interviewing other developers, I find that most people try to do too much all at once.
So start simple—the simplest you can in fact—hardcoded—and work your way up.
So I have a blank Ruby class, how can I hardcode something to progress forward? I looked at my empty test suite and saw that there was a function called head that returned the first node in the list, so let's try that:.
Explore our site
I made a head function, and hardcoded the capital letter "A" as a string, and I ran that test. It passed. There are countless interviews I've seen where someone makes a small mistake right at the beginning, gets flustered, and then spends the majority of the interview trying to recover and fix whatever is wrong. Don't underestimate the value of quick wins for your confidence. Stacking up small wins will propel you through the interview. Ok, we have a hardcoded string 'A'.
Now how do we make that into a dumb solution? Well, how about making that letter "A" into a hash or map? That's a little better. Now instead of a one character string our "node" is represented as hash with a value property. We've gone from hardcoded to dumb. Now how can we make it better? Well, how about we introduce our head pointer in the list?
What did we change here? Here we add back our initializer and create a new variable called head , and we use that new variable in our head function. This is beginning to look like some real code. Now this approach may seem really silly, but I promise you, it works. Each of these changes are made in seconds of small, iterative coding, and they stack up to produce a working implementation in short time. If you're thinking this approach will seem odd to a potential interviewer, here's the next tip, and this one is very important:.
Here's the thing: getting to a correct solution is important yes, but equally if not more important is showing your thought process. The interviewer wants to know how you think—how you solve problems. You can do this by sharing everything you're thinking out loud. The only way to make these internal thoughts visible is to say them out loud. If you've never done this before, you might want to practice it because it's vital for nailing the interview.
Preparing for an interview
To give you some practical examples, here are some things I say every single time I'm interviewed:. Ok, so we're saying things out loud. But sometimes we make a mistake or we get stuck. We've been speaking our thought process out loud, but now we may need to shift and investigate a potential issue or error. If you're in an interview and there's a problem or error with your code, your brain desperately wants to figure out what is wrong—but don't be too desperate that you begin thrashing your code or your thought process.
You see, just like the interviewer wants to see how you break down a problem, they also want to see how you debug a problem. This is equally as important as explaining your thought process. Try your best to stay in a logical flow and avoid thrashing the code or your ideas. This is an extremely important part of the interview, because this is where you get the majority of your leverage for job level and compensation negotiation. And the tip is:.
You're working the challenge, you're talking out loud, and you're doing well. The next thing you need to be looking for are opportunities to show your knowledge and expertise.
- Types of interviews.
- Manage Your People!
- Hat Schwarz-Grün eine Zukunft?: Chancen und Grenzen schwarz-grüner Optionen (German Edition).
- The only 3 Interview Tips you need: “Mind Hacking”, the Perfect Response System, & More.
- Plan as far in advance as possible.
Is this the place in the code where you might send an email? Mention that it should be done in a background worker instead you probably won't even have to implement it. Are you working on validation logic in a model? Talk about how you would also add database constraints to ensure data integrity. What indexes would you add? How would you roll out the migrations to prevent downtime?
Would you create a module for this? What about a service object? What about putting some of this logic in a background job? Discuss the tradeoffs. Most interview questions are aimed at the lowest common denominator —meaning the very basic requirements of the job. The challenge or questions themselves are usually not designed to test the top end of someone's skill. The interview is probably not going to pull the information out of you, so you have to supply that information.
So while you're talking through your thought process, mention all of the things you would incorporate in a real-life application or codebase and discuss them. How will the success of the person in this position be measured? I have more suggested questions here. It can also help to remember that no one gives a perfect interview. It can even help to approach the interview as if you were a consultant. Sometimes lowering the stakes can lower your nerves and help you give a better interview. Got a question for her? Email askaboss nymag.
Her advice column appears here every Tuesday. Already a subscriber? Log in or link your magazine subscription.