www.it-ebooks.info www.it-ebooks.info PROGRAMMING INTERVIEWS EXPOSED: SECRETS TO LANDING YOUR NEXT JOB PREFACE xxv INTRODUCTION xxix CHAPTER 1 Before the Search 1 CHAPTER 2 The Job Application Process 9 CHAPTER 3 Approaches to Programming Problems 19 CHAPTER 4 Linked Lists 31 CHAPTER 5 Trees and Graphs 61 CHAPTER 6 Arrays and Strings 85 CHAPTER 7 Recursion 107 CHAPTER 8 Sorting 125 CHAPTER 9 Concurrency 145 CHAPTER 10 Object-Oriented Programming 159 CHAPTER 11 Design Patterns 167 CHAPTER 12 Databases 177 CHAPTER 13 Graphics and Bit Manipulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 CHAPTER 14 Counting, Measuring, and Ordering Puzzles 207 CHAPTER 15 Graphical and Spatial Puzzles 225 CHAPTER 16 Knowledge-Based Questions 239 CHAPTER 17 Nontechnical Questions 253 APPENDIX Résumés 263 CONCLUSION 283 INDEX 285 www.it-ebooks.info www.it-ebooks.info Programming Interviews Exposed Third Edition www.it-ebooks.info www.it-ebooks.info Programming Interviews Exposed SECRETS TO LANDING YOUR NEXT JOB Third Edition John Mongan Eric Giguère Noah Kindler www.it-ebooks.info Programming Interviews Exposed: Secrets to Landing Your Next Job, Third Edition Published by John Wiley & Sons, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright © 2013 by John Mongan, Eric Giguère, and Noah Kindler Published by John Wiley & Sons, Inc., Indianapolis, Indiana Published simultaneously in Canada ISBN: 978-1-118-26136-1 ISBN: 978-1-118-28720-0 (ebk) ISBN: 978-1-118-28340-0 (ebk) ISBN: 978-1-118-28466-7 (ebk) Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1 No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permissions. Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specically disclaim all warranties, including without limitation warranties of tness for a particular purpose. No warranty may be created or extended by sales or pro- motional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the pub- lisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was written and when it is read. For general information on our other products and services please contact our Customer Care Department within the United States at (877) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002. Wiley publishes in a variety of print and electronic formats and by print-on-demand. Some material included with standard print versions of this book may not be included in e-books or in print-on-demand. If this book refers to media such as a CD or DVD that is not included in the version you purchased, you may download this material at http:// booksupport.wiley.com . For more information about Wiley products, visit www.wiley.com. Library of Congress Control Number: 2012941787 Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its afliates, in the United States and other coun- tries, and may not be used without written permission. All other trademarks are the property of their respective owners. John Wiley & Sons, Inc., is not associated with any product or vendor mentioned in this book. www.it-ebooks.info For Thuy, the love of my life, who understands me. —J M To my parents, Jean-Claude and Marie-Jolle, who encouraged and supported my love of programming. —E G To Mikey, Alex, and Teddy —N K www.it-ebooks.info www.it-ebooks.info [...]... which has given him additional perspective on programming interviews, reflected in this revision We’re pleased that Google seems to be leading a shift away from the use of trivial puzzles in interviews, something we’ve complained about since the first edition (see the following original preface) We hope you enjoy the third edition of Programming Interviews Exposed and that it helps you get the job you’ve... the answers This book will help prepare you for the interviews you will face when seeking a job in programming, development, technical consulting, or any other field that warrants a programming interview Programming interviews bear little resemblance to those described in traditional job-hunting and interview books They consist almost entirely of programming problems, puzzles, and technical www.it-ebooks.info... it helps you get the job you’ve always wanted We’d love to hear your thoughts on the book and your interview experiences You can contact us at authors@piexposed.com Be sure to visit the official Programming Interviews Exposed site at http://www.piexposed.com for updates and more information Preface to the First Edition If you’re like us, you don’t usually read prefaces This one has some useful information... putting you that much closer to landing the job you want Why Programming Interviews? Why do software firms use programming interviews? They want to hire great programmers who can work well with others to successfully produce great products Unfortunately, bitter experience has taught employers that a substantial portion of applicants for programming jobs simply cannot code You might expect that these... logical step: Ask applicants to do some coding during the interview Thus the programming interview was born Programming interviews are extremely effective at separating those who can code from those who can’t, which is why they are a nearly universal part of the technical interview process The difficulty with programming interviews is that employers don’t just want to screen out people who can’t code... edition was published, so it was thrilling to have another opportunity to revise Programming Interviews Exposed This edition represents the largest update yet In addition to revising, expanding, and updating the material from the previous edition, chapters on the important topics of sorting and design patterns are added The non -programming parts of the book were revised to reflect the realities of today’s... programmers who are inexperienced with programming interviews often struggle if they are unprepared for what they will face This book was written to prepare you for the technical interview process so that you have no problem demonstrating how great a programmer you are It doesn’t teach you how to program; it shows you how to use the programming skills you have to shine in a programming interview As you read... posing difficult programming challenges and noting how quickly and accurately the applicant solves them www.it-ebooks.info introduction The problem with this approach is that due to the time restriction inherent to an interview, the skills that can be tested in a programming interview only partially overlap the skills that are relevant to real-world development By necessity, programming interviews evaluate... environment that programming interviews don’t assess well (or at all) These include communicating and working as part of a team; architecture, and management of large codebases; time management and discipline to consistently produce reliable code on schedule; and the ability to tackle a large project, identify all the component parts, and carry the project through to completion Clearly, programming interviews. .. been tried More to the point, programming interviews are the way employers choose who they will hire, so you need to perform well in them regardless of whether they are an ideal form of assessment This book is devoted to teaching you how to adapt your programming skills to the peculiarities of interview problems and gives you the preparation and practice you need to shine in interviews so that you get . 285 www.it-ebooks.info www.it-ebooks.info Programming Interviews Exposed Third Edition www.it-ebooks.info www.it-ebooks.info Programming Interviews Exposed SECRETS TO LANDING YOUR NEXT JOB Third. www.it-ebooks.info www.it-ebooks.info PROGRAMMING INTERVIEWS EXPOSED: SECRETS TO LANDING YOUR NEXT JOB PREFACE xxv INTRODUCTION xxix CHAPTER 1 Before the Search 1 CHAPTER 2 The Job Application Process 9 CHAPTER 3 Approaches to Programming. YOUR NEXT JOB Third Edition John Mongan Eric Giguère Noah Kindler www.it-ebooks.info Programming Interviews Exposed: Secrets to Landing Your Next Job, Third Edition Published by John Wiley &