Programming interviews exposed : secrets to landing your next job

John Mongan is a resident radiologist at UC San Francisco, conducting research in medical informatics. He has a PhD in bioinformatics and several patents on software testing technologies. Eric Giguere is a software engineer at Google with over 20 years of professional programming experience. He has...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Mongan, John, Giguère, Eric, Kindler, Noah
Format: E-Book Buch
Sprache:Englisch
Veröffentlicht: Indianapolis, Ind Wiley 2013
John Wiley & Sons, Incorporated
Wrox
Ausgabe:3
Schlagworte:
ISBN:9781118261361, 1118261364
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Inhaltsangabe:
  • Cover -- Title Page -- Copyright -- Contents -- Preface -- Introduction -- Chapter 1: Before the Search -- Know Yourself -- Know the Market -- Basic Market Information -- What About Outsourcing? -- Develop Marketable Skills -- Get Things Done -- Manage Your Online Profile -- Summary -- Chapter 2: The Job Application Process -- Finding and Contacting Companies -- Finding Companies -- Getting Referrals -- Working with Headhunters -- Contacting the Company Directly -- Job Fairs -- The Interview Process -- Screening Interviews -- On-Site Interviews -- Dress -- A Recruiter's Role -- Offers and Negotiation -- Dealing with Recruiter Pressures -- Negotiating Your Salary -- Accepting and Rejecting Offers -- Summary -- Chapter 3: Approaches to Programming Problems -- The Process -- The Scenario -- The Problems -- Which Languages to Use -- Interactivity Is Key -- Solving the Problems -- The Basic Steps -- When You Get Stuck -- Analyzing Your Solution -- Big-O Analysis In Action -- How Big-O Analysis Works -- Best, Average, and Worst Cases -- Optimizations and Big-O Analysis -- How to Do Big-O Analysis -- Which Algorithm Is Better? -- Memory Footprint Analysis -- Summary -- Chapter 4: Linked Lists -- Why Linked Lists? -- Kinds of Linked List -- Singly Linked Lists -- Doubly Linked Lists -- Circular Linked Lists -- Basic Linked List Operations -- Tracking the Head Element -- Traversing a List -- Inserting and Deleting Elements -- Linked List Problems -- Stack Implementation -- Maintain Linked List Tail Pointer -- Bugs in removeHead -- Mth-to-Last Element of a Linked List -- List Flattening -- List Unflattening -- Null or Cycle -- Summary -- Chapter 5: Trees and Graphs -- Trees -- Binary Trees -- Binary Search Trees -- Heaps -- Common Searches -- Traversals -- Graphs -- Tree and Graph Problems -- Height of a Tree -- Preorder Traversal
  • Database Transactions -- Database Problems -- Simple SQL -- Company and Employee Database -- Max, No Aggregates -- Three-Valued Logic -- Summary -- Chapter 13: Graphics and Bit Manipulation -- Graphics -- Bit Manipulation -- Binary Two's Complement Notation -- Bitwise Operators -- Optimizing with Shifts -- Graphics Problems -- Eighth of a Circle -- Rectangle Overlap -- Bit Manipulation Problems -- Big-Endian or Little-Endian -- Number of Ones -- Summary -- Chapter 14: Counting, Measuring, and Ordering Puzzles -- Tackling Brainteasers -- Beware of Assumptions -- Don't Be Intimidated -- Beware of Simple Problems -- Estimation Problems -- Brainteaser Problems -- Count Open Lockers -- Three Switches -- Bridge Crossing -- Heavy Marble -- Number of American Gas Stations -- Summary -- Chapter 15: Graphical and Spatial Puzzles -- Draw It First -- Graphical and Spatial Problems -- Boat and Dock -- Counting Cubes -- The Fox and the Duck -- Burning Fuses -- Escaping the Train -- Summary -- Chapter 16: Knowledge-Based Questions -- Preparation -- Problems -- C++ versus Java -- Friend Classes -- Argument Passing -- Macros and Inline Functions -- Inheritance -- Garbage Collection -- 32-Bit versus 64-Bit Applications -- Network Performance -- Web Application Security -- Cryptography -- Hash Tables versus Binary Search Trees -- Summary -- Chapter 17: Nontechnical Questions -- Why Nontechnical Questions? -- Questions -- "What Do You Want to Do?" -- "What Is Your Favorite Programming Language?" -- "What Is Your Work Style?" -- "What Can You Tell Me about Your Experience?" -- "What Are Your Career Goals?" -- "Why Are You Looking to Change Jobs?" -- "What Salary Are You Expecting?" -- "What Is Your Salary History?" -- "Why Should We Hire You?" -- "Why Do You Want to Work for This Company?" -- "Do You Have Any Questions for Me?" -- Summary -- Appendix: Résumés
  • Preorder Traversal, No Recursion -- Lowest Common Ancestor -- Binary Tree to Heap -- Unbalanced Binary Search Tree -- Six Degrees of Kevin Bacon -- Summary -- Chapter 6: Arrays and Strings -- Arrays -- C and C++ -- Java -- C# -- JavaScript -- Strings -- C -- C++ -- Java -- C# -- JavaScript -- Array and String Problems -- Find the First Nonrepeated Character -- Remove Specified Characters -- Reverse Words -- Integer/String Conversions -- Summary -- Chapter 7: Recursion -- Understanding Recursion -- Recursion Problems -- Binary Search -- Permutations of a String -- Combinations of a String -- Telephone Words -- Summary -- Chapter 8: Sorting -- Sorting Algorithms -- Selection Sort -- Insertion Sort -- Quicksort -- Merge Sort -- Sorting Problems -- The Best Sorting Algorithm -- Stable Selection Sort -- Multi-Key Sort -- Make a Sort Stable -- Optimized Quicksort -- Pancake Sorting -- Summary -- Chapter 9: Concurrency -- Basic Thread Concepts -- Threads -- System Threads versus User Threads -- Monitors and Semaphores -- Deadlocks -- A Threading Example -- Concurrency Problems -- Busy Waiting -- Producer/Consumer -- The Dining Philosophers -- Summary -- Chapter 10: Object-Oriented Programming -- Fundamentals -- Classes and Objects -- Inheritance and Polymorphism -- Construction and Destruction -- Object-Oriented Programming Problems -- Interfaces and Abstract Classes -- Virtual Methods -- Multiple Inheritance -- Summary -- Chapter 11: Design Patterns -- What Are Design Patterns? -- Why Use Design Patterns? -- Design Patterns in Interviews -- Common Design Patterns -- Creational Patterns -- Behavioral Patterns -- Structural Patterns -- Design Pattern Problems -- Singleton Implementation -- Decorator versus Inheritance -- Efficient Observer Updates -- Summary -- Chapter 12: Databases -- Database Fundamentals -- Relational Databases -- SQL
  • The Technical Résumé -- A Poor Example -- Sell Yourself -- Keep It Short -- List the Right Information -- Be Clear and Concise -- Relevant Information Only -- Use Reverse Chronological Ordering -- Always Proofread -- The Improved Example -- Managers and Senior Developers -- Tailor the Résumé to the Position -- Sample Résumé -- Conclusion -- Index -- Advertisement Page -- EULA