Cracking the Coding Interview: Hackbright Students Learn from Author Gayle Laakmann McDowell

We invited “Cracking the Coding Interview” author Gayle Laakmann McDowell to Hackbright Academy this summer to speak to the students about interviewing.

Gayle started her career as a software engineer at Google, Microsoft and Apple. She has interviewed over 150 candidates and sat on the hiring committee at Google.

Her experience led her to author the books “Cracking the Coding Interview” and “The Google Resume”, and found CareerCup.

Interviews test for aptitude, not knowledge.

Gayle reminds the Hackbright students that companies interview as a test for intelligence, coding skills, experience then personality. “They tend not to ask you about what this keyword means in JJava or Python, or how will you solve new problems. They assume a base knowledge in computer science but tend not to get at the knowledge itself. How they evaluate you is RELATIVE to other candidates on the same question.”

Prepare for behavioral questions.

For behavioral questions, the goal is to deliver a good answer to the question. You can prepare to communicate well by filling out the behavioral grid ahead of time, thinking through your previous projects and work experience and preparing responses on challenges, influence/leadership and teamwork. Examples of technical resumes and the behavioral grid (go ahead, fill it out!) can be found at Gayle’s website here.

Learn to push yourself through problems.

You should practice to push yourself through problems, to deduce problems and solutions yourself.

“If you don’t know the answer, you can deduce it. Talk out loud. Your ability to think through something shows understanding,” said Gayle about practicing for technical interviews.

“Make sure your interviewer is on board with your algorithm before you start coding.”

You will not get dinged for coding too slow. Instead, a good coder is methodical and doesn’t rush.

More tips for whiteboard coding:

* Use arrows to insert new code snippets. Use “good” variable names, and then abbreviate after you define them. Write clean code.

* Start writing on the top left corner of the whiteboard. Yes, the FAR top left corner. Write small and straight. You can use pseudocode if you want to.

* Try using “breadth-first” coding”. To do this, divide problems into sub-components instead of writing one really big function. In other words, try to modularize and structure your code.

Here is a good exercise for technical interviews:

* Know how to implement the following from scratch: linked lists, stacks, queues, trees, tries, graphs, vectors, heaps, hash tables. Know when to use these – what are the pros and cons? How do you implement them?

Common interview mistakes include ignoring information given and not using examples. Another common mistake for interviewees is “pushing through” code when confused. Instead, ask clarifying questions and make sure you know what you.

You can find many technical interviewing resources online at CareerCup and by purchasing Gayle’s book “Cracking the Coding Interview”. Many of the students had her autograph their copy of her book when Gayle visited Hackbright Academy.

Happy interviewing, everyone! Let us know your own interviewing tips in the comments below.