Details

Programming Interviews Exposed


Programming Interviews Exposed

Coding Your Way Through the Interview
4. Aufl.

von: John Mongan, Noah Suojanen Kindler, Eric Giguère

20,99 €

Verlag: Wiley
Format: PDF
Veröffentl.: 28.03.2018
ISBN/EAN: 9781119418498
Sprache: englisch
Anzahl Seiten: 384

DRM-geschütztes eBook, Sie benötigen z.B. Adobe Digital Editions und eine Adobe ID zum Lesen.

Beschreibungen

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

Diese Produkte könnten Sie auch interessieren:

Domain Architectures
Domain Architectures
von: Daniel J. Duffy
PDF ebook
31,99 €