Читать онлайн «Cracking the Coding Interview: 150 Programming Questions and Solutions»

Автор Gayle Laakmann McDowell

CRACKING THE

CODING

INTERVIEW

5th Edition

Also by Gayle Laakmann McDowell

The Google Resume

How to Prepare for a Career and Land a Job at Apple, Microsoft, Google, or any Top Tech Company

CRACKING THE

CODING

INTERVIEW

5th Edition

150 Programming Questions and Solutions

GAYLE LAAKMANN MCDOWELL

Founder and CEO, CareerCup. com

CareerCup, LLC Palo Alto, CA

CRACKING THE CODING INTERVIEW, FIFTH EDITION

Copyright © 2008 - 2013 by Gayle Laakmann McDowell.

All rights reserved. No part of this book may be reproduced in any form by any electronic or mechanical means, including information storage and retrieval systems, without permission in writing from the author or publisher, except by a reviewer who may quote brief passages in a review.

Published by CareerCup, LLC, Palo Alto, CA. Version 5. 01390210100131.

No part of this book may be used or reproduced in any manner without written permission except in the case of brief quotations in critical articles or reviews.

978-0984782802 (ISBN 13)

To Pauline "Ота" Venti for her eternal support

Foreword

Dear Reader,

Let's get the introductions out of the way.

I am not a recruiter. I am a software engineer. And as such, I know what it's like to be asked to whip up brilliant algorithms on the spot, and then write flawless code on a whiteboard. I know because I've been asked to do the same thing—in interviews at Google, Microsoft, Apple, and Amazon, among other companies.

I also know because I've been on the other side of the table, asking candidates to do this.  I've combed through stacks of resumes to find the engineers who I thought might be able to actually pass these interviews. And I've debated in Google's Hiring Committee whether or not a candidate did well enough to merit an offer. I understand and have experienced the full hiring circle.

And you, reader, are probably preparing for an interview, perhaps tomorrow, next week, or next year. You likely have or are working towards a Computer Science or related degree. I am not here to re-teach you the basics of what a binary search tree is, or how to traverse a linked list. You already know such things, and if not, there are plenty of other resources to learn them.

I am here to help you take your understanding of Computer Science fundamentals to the next level, to learn how to apply those fundamentals to crack the coding interview.

I'm excited for you and for the skills you are going to develop. Thorough preparation will give you a wide range of technical and communication skills. It will be well-worth it no matter where the effort takes you!