30,99 €
versandkostenfrei*

inkl. MwSt.
Versandfertig in über 4 Wochen
15 °P sammeln
  • Broschiertes Buch

Ace technical interviews with smart preparationProgramming Interviews Exposed is the programmer's ideal first choice for technical interview preparation. Updated to reflect changing techniques and trends, this new fourth edition provides insider guidance on the unique interview process that today's programmers face. Online coding contests are being used to screen candidate pools of thousands, take-home projects have become commonplace, and employers are even evaluating a candidate's public code repositories at GitHub--and with competition becoming increasingly fierce, programmers need to shape…mehr

Produktbeschreibung
Ace technical interviews with smart preparationProgramming Interviews Exposed is the programmer's ideal first choice for technical interview preparation. Updated to reflect changing techniques and trends, this new fourth edition provides insider guidance on the unique interview process that today's programmers face. Online coding contests are being used to screen candidate pools of thousands, take-home projects have become commonplace, and employers are even evaluating a candidate's public code repositories at GitHub--and with competition becoming increasingly fierce, programmers need to shape themselves into the ideal candidate well in advance of the interview. This book doesn't just give you a collection of questions and answers, it walks you through the process of coming up with the solution so you learn the skills and techniques to shine on whatever problems you're given.This edition combines a thoroughly revised basis in classic questions involving fundamental data structures and algorithms with problems and step-by-step procedures for new topics including probability, data science, statistics, and machine learning which will help you fully prepare for whatever comes your way.* Learn what the interviewer needs to hear to move you forward in the process* Adopt an effective approach to phone screens with non-technical recruiters* Examine common interview problems and tests with expert explanations* Be ready to demonstrate your skills verbally, in contests, on GitHub, and moreTechnical jobs require the skillset, but you won't get hired unless you are able to effectively and efficiently demonstrate that skillset under pressure, in competition with hundreds of others with the same background. Programming Interviews Exposed teaches you the interview skills you need to stand out as the best applicant to help you get the job you want.
  • Produktdetails
  • Verlag: Wiley & Sons / Wrox
  • Artikelnr. des Verlages: 1W119418470
  • 4. Aufl.
  • Seitenzahl: 384
  • Erscheinungstermin: 17. April 2018
  • Englisch
  • Abmessung: 236mm x 190mm x 30mm
  • Gewicht: 521g
  • ISBN-13: 9781119418474
  • ISBN-10: 111941847X
  • Artikelnr.: 48916357
Autorenporträt
About the authorsJohn Mongan is Vice Chair, Informatics and Assistant Professor of Radiology at UCSF.Noah Kindler is a founder of a technology startup and was previously co-founder and COO of SocialShield.Eric Giguère is a staff software engineer at Google with over 20 years of professional programming experience including recruiting, interviewing, and hiring.
Inhaltsangabe
Preface xxvIntroduction xxixCHAPTER 1: BEFORE THE SEARCH 1Know Yourself 1Know the Market 3Basic Market Information 3What About Outsourcing? 4Develop Marketable Skills 5Get Things Done 6Manage Your Online Profile 7Summary 8CHAPTER 2: THE JOB APPLICATION PROCESS 9Finding and Contacting Companies 9Finding Companies 9Getting Referrals 10Working with Headhunters 10Contacting the Company Directly 11Job Fairs 12Technology-Driven Sites 12The Interview Process 12Screening Interviews 12On-Site Interviews 13Dress 14A Recruiter's Role 14Offers and Negotiation 15Dealing with Recruiter Pressures 15Negotiating Your Salary 15Accepting and Rejecting Offers 17Summary 17CHAPTER 3: THE PHONE SCREEN 19Understanding Phone Screens 19Phone Screens by Software Engineers 19Phone Screens by Nontechnical People 20How to Take a Phone Screen 21Phone Screen Problems 22Memory Allocation in C 22Recursion Trade-Offs 22Mobile Programming 23FizzBuzz 23Reversing a String 24Removing Duplicates 25Nested Parentheses 26Summary 27CHAPTER 4: APPROACHES TO PROGRAMMING PROBLEMS 29The Process 29The Scenario 29The Problems 30Which Languages to Use 30Interactivity Is Key 31Solving the Problems 32The Basic Steps 32When You Get Stuck 34Analyzing Your Solution 34Big-O Analysis 35How Big-O Analysis Works 36Best, Average, and Worst Cases 37Optimizations and Big-O Analysis 37How to Do Big-O Analysis 38Which Algorithm Is Better? 38Memory Footprint Analysis 39Summary 40CHAPTER 5: LINKED LISTS 41Why Linked Lists? 41Kinds of Linked Lists 42Singly Linked Lists 42Doubly Linked Lists 44Circular Linked Lists 44Basic Linked List Operations 44Tracking the Head Element 44Traversing a List 46Inserting and Deleting Elements 46Linked List Problems 48Stack Implementation 48Maintain Linked List Tail Pointer 54Bugs in removeHead 60Mth-to-Last Element of a Linked List 62List Flattening 65List Unfl attening 68Null or Cycle 70Summary 73CHAPTER 6: TREES AND GRAPHS 75Trees 75Binary Trees 77Binary Search Trees 78Heaps 80Common Searches 80Breadth-First Search 80Depth-First Search 81Traversals 81Graphs 82Tree and Graph Problems 83Height of a Tree 83Preorder Traversal 84Preorder Traversal, No Recursion 85Lowest Common Ancestor 87Binary Tree to Heap 88Unbalanced Binary Search Tree 91Six Degrees of Kevin Bacon 93Summary 97CHAPTER 7: ARRAYS AND STRINGS 99Arrays 99C and C++ 100Java 101C# 102JavaScript 102Strings 102C 103C++ 104Java 104C# 105JavaScript 105Array and String Problems 105Find the First Nonrepeated Character 106Remove Specified Characters 109Reverse Words 112Integer/String Conversions 116From String to Integer 116From Integer to String 118UTF-8 String Validation 121Summary 124CHAPTER 8: RECURSION 125Understanding Recursion 125Recursion Problems 129Binary Search 129Permutations of a String 131Combinations of a String 134Telephone Words 137Summary 142CHAPTER 9: SORTING 143Sorting Algorithms 143Selection Sort 144Insertion Sort 145Quicksort 146Merge Sort 148Sorting Problems 149The Best Sorting Algorithm 150Stable Selection Sort 153Multi-Key Sort 155Make a Sort Stable 156Optimized Quicksort 158Pancake Sorting 161Summary 163CHAPTER 10: CONCURRENCY 165Basic Thread Concepts 165Threads 165System Threads versus User Threads 166Monitors and Semaphores 166Deadlocks 167A Threading Example 168Concurrency Problems 170Busy Waiting 170Producer/Consumer 172The Dining Philosophers 175Summary 179CHAPTER 11: OBJECT-ORIENTED PROGRAMMING 181Fundamentals 181Classes and Objects 181Construction and Destruction 182Inheritance and Polymorphism 183Object-Oriented Programming Problems 184Interfaces and Abstract Classes 184Virtual Methods 186Multiple Inheritance 188Resource Management 189Summary 191CHAPTER 12: DESIGN PATTERNS 193What Are Design Patterns? 193Why Use Design Patterns? 193Design Patterns in Interviews 194Common Design Patterns 194Singleton 195Builder 195Iterator 197Observer 197Decorator 197Design Pattern Problems 198Singleton Implementation 198Decorator versus Inheritance 201Efficient Observer Updates 202Summary 202CHAPTER 13: DATABASES 203Database Fundamentals 203Relational Databases 203SQL 204NoSQL 208Object Databases 209Hybrid Key-Value/Column Databases 209Database Transactions 210Distributed Databases 211Database Problems 212Simple SQL 212Company and Employee Database 212Max, No Aggregates 215Three-Valued Logic 216School Schemata 218Summary 222CHAPTER 14: GRAPHICS AND BIT MANIPULATION 223Graphics 223Bit Manipulation 224Binary Two's Complement Notation 224Bitwise Operators 225Optimizing with Shifts 226Graphics Problems 226Eighth of a Circle 227Rectangle Overlap 229Bit Manipulation Problems 232Big-Endian or Little-Endian 233Number of Ones 235Summary 237CHAPTER 15: DATA SCIENCE, RANDOM NUMBERS, AND STATISTICS 239Probability and Statistics 240Descriptive and Inferential Statistics 241Confidence Intervals 242Statistical Tests 242Artificial Intelligence and Machine Learning 244Random Number Generators 245Data Science, Random Number and Statistical Problems 246Irreproducible Results 247Study More; Know Less 249Roll the Dice 251Calculate Pi 254Summary 258CHAPTER 16: COUNTING, MEASURING, AND ORDERING PUZZLES 259Tackling Brainteasers 259Beware of Assumptions 260Don't Be Intimidated 261Beware of Simple Problems 262Estimation Problems 262Brainteaser Problems 263Count Open Lockers 263Three Switches 265Bridge Crossing 266Heavy Marble 269Number of American Gas Stations 273Summary 274CHAPTER 17: GRAPHICAL AND SPATIAL PUZZLES 275Draw It First 275Graphical and Spatial Problems 276Boat and Pier 276Counting Cubes 278The Fox and the Duck 282Burning Fuses 283Escaping the Train 286Summary 287CHAPTER 18: KNOWLEDGE-BASED QUESTIONS 289Preparation 289Problems 290C++ versus Java 291Friend Classes 292Argument Passing 292Macros and Inline Functions 294Inheritance 295Garbage Collection 29632-Bit versus 64-Bit Applications 297Network Performance 298Web Application Security 298Cryptography 301Hash Tables versus Binary Search Trees 301MapReduce 302Summary 302CHAPTER 19: NONTECHNICAL QUESTIONS 303Why Nontechnical Questions? 303Questions 304"What Do You Want to Do?" 304"What Is Your Favorite Programming Language?" 305"What Is Your Work Style?" 306"What Can You Tell Me About Your Experience?" 306"What Are Your Career Goals?" 306"Why Are You Looking to Change Jobs?" 306"What Salary Are You Expecting?" 307"What Is Your Salary History?" 310"Why Should We Hire You?" 310"Why Do You Want to Work for This Company?" 311"Do You Have Any Questions for Me?" 311Summary 311APPENDIX: RÉSUMÉS 313The Technical Résumé 313A Poor Example 313Sell Yourself 317Keep It Short 317List the Right Information 318Be Clear and Concise 319Relevant Information Only 320Use Reverse Chronological Ordering 321Always Proofread 321An Improved Example 321Managers and Senior Developers 323Tailor the Résumé to the Position 329Sample Résumé 329INDEX 333