The Insiders' Guide
Author: Adnan Aziz,Tsung-Hsien Lee,Amit Prakash
The core of EPI is a collection of over 300 problems with detailed solutions, including 100 figures, 250 tested programs, and 150 variants. The problems are representative of questions asked at the leading software companies. The book begins with a summary of the nontechnical aspects of interviewing, such as common mistakes, strategies for a great interview, perspectives from the other side of the table, tips on negotiating the best offer, and a guide to the best ways to use EPI. The technical core of EPI is a sequence of chapters on basic and advanced data structures, searching, sorting, broad algorithmic principles, concurrency, and system design. Each chapter consists of a brief review, followed by a broad and thought-provoking series of problems. We include a summary of data structure, algorithm, and problem solving patterns.
The Insider's Guide
Author: Adnan Aziz,Amit Prakash,Tsung-Hsien Lee
This is the Python version of our book. See the website for links to the C++ and Java version.Have you ever... Wanted to work at an exciting futuristic company? Struggled with an interview problem thatcould have been solved in 15 minutes? Wished you could study real-world computing problems? If so, you need to read Elements of Programming Interviews (EPI). EPI is your comprehensive guide to interviewing for software development roles. The core of EPI is a collection of over 250 problems with detailed solutions. The problems are representative of interview questions asked at leading software companies. The problems are illustrated with 200 figures, 300 tested programs, and 150 additional variants. The book begins with a summary of the nontechnical aspects of interviewing, such as strategies for a great interview, common mistakes, perspectives from the other side of the table, tips on negotiating the best offer, and a guide to the best ways to use EPI. We also provide a summary of data structures, algorithms, and problem solving patterns. Coding problems are presented through a series of chapters on basic and advanced data structures, searching, sorting, algorithm design principles, and concurrency. Each chapter stars with a brief introduction, a case study, top tips, and a review of the most important library methods. This is followed by a broad and thought-provoking set of problems. A practical, fun approach to computer science fundamentals, as seen through the lens of common programming interview questions. Jeff Atwood/Co-founder, Stack Overflow and Discourse
Secrets to Landing Your Next Job
Author: John Mongan,Noah Suojanen Kindler,Eric Giguère
Publisher: John Wiley & Sons
Be prepared for your next job interview with this tried-and-true advice In today's tight job market, competition for programming jobs is hotter than ever. This third edition of a popular guide to programming interviews includes new code examples, information on the latest languages, new chapters on sorting and design patterns, tips on using LinkedIn, and a downloadable app to help prepare applicants for the interview. Like its earlier editions, this guide covers what software companies and IT departments want their programmers to know and includes plenty of helpful hints to boost your confidence. Looks at current job search and hiring processes, such as the rise of LinkedIn and other social networks as recruiting resources Addresses the most important languages for a programmer to know and features examples in multiple languages Includes new programming questions designed to sharpen your knowledge Features all-new chapters on design patterns and sorting, including how to deal with memory constraints and mobility issues Walk into your next job interview with confidence, knowing you have thoroughly studied this newest edition of Programming Interviews Exposed.
Author: Alexander A. Stepanov,Paul McJones
Publisher: Addison-Wesley Professional
New techniques for building more secure, reliable, high-performance software, from the renowned creator of the C++ STL • • A truly foundational book on the discipline of generic programming: how to write better software by mastering the development of abstract components. • Based on Alexander Stepanov's breakthrough lectures to programmers at Adobe and throughout Silicon Valley. • For serious software developers, architects, and engineers, the perfect complement to Knuth's theory and Stoustrup's practice. Elements of Programming is the next breakthrough book for serious practitioners seeking ways to write better software. In this book, Alexander Stepanov - the legendary architect and creator of the C++ Standard Template Libraries - focuses on the discipline that offers the greatest potential for improving contemporary software: the proper development of abstract components. Drawing on his enormously popular lectures to programmers at Adobe and throughout Silicon Valley, Stepanov illuminates crucial techniques of generic programming, specifically focusing on abstraction as the key to secure, reliable, and high-performance software. Together with co-author and ACM Fellow Paul McJones, Stepanov shows programmers how to use mathematics to compose reliable algorithms from components, and to design effective interfaces between algorithms and data structures. Topics covered in Elements of Programming include: transformations, associative operations, linear orderings, ordered algebraic structures, iterators, coordinates and coordinate structures, copying algorithms, rearrangement, sorting, and much more. This book requires an understanding of mathematics, but is consistently focused on identifying superior solutions to practical programming problems. Stepanov and McJones illuminate their concepts and techniques with C++ code, but the techniques are equally applicable to a wide range of contemporary object-oriented languages.
160 Questions and Answers for Success
Author: Edward Guiness
Publisher: John Wiley & Sons
Be prepared to answer the most relevant interview questions and land the job Programmers are in demand, but to land the job, you must demonstrate knowledge of those things expected by today's employers. This guide sets you up for success. Not only does it provide 160 of the most commonly asked interview questions and model answers, but it also offers insight into the context and motivation of hiring managers in today's marketplace. Written by a veteran hiring manager, this book is a comprehensive guide for experienced and first-time programmers alike. Provides insight into what drives the recruitment process and how hiring managers think Covers both practical knowledge and recommendations for handling the interview process Features 160 actual interview questions, including some related to code samples that are available for download on a companion website Includes information on landing an interview, preparing a cheat-sheet for a phone interview, how to demonstrate your programming wisdom, and more Ace the Programming Interview, like the earlier Wiley bestseller Programming Interviews Exposed, helps you approach the job interview with the confidence that comes from being prepared.
500 Questions with Solutions
Author: Sergei Nakariakov
Publisher: CreateSpace Independent Publishing Platform
Part I Algorithms and Data Structures 1 Fundamentals Approximating the square root of a number Generating Permutation Efficiently Unique 5-bit Sequences Select Kth Smallest Element The Non-Crooks Problem Is this (almost) sorted? Sorting an almost sorted list The Longest Upsequence Problem Fixed size generic array in C++ Seating Problem Segment Problems Exponentiation Searching two-dimensional sorted array Hamming Problem Constant Time Range Query Linear Time Sorting Writing a Value as the Sum of Squares The Celebrity Problem Transport Problem Find Length of the rope Switch Bulb Problem In, On or Out The problem of the balanced seg The problem of the most isolated villages 2 Arrays The Plateau Problem Searching in Two Dimensional Sequence The Welfare Crook Problem 2D Array Rotation A Queuing Problem in A Post Office Interpolation Search Robot Walk Linear Time Sorting Write as sum of consecutive positive numbers Print 2D Array in Spiral Order The Problem of the Circular Racecourse Sparse Array Trick Bulterman’s Reshuffling Problem Finding the majority Mode of a Multiset Circular Array Find Median of two sorted arrays Finding the missing integer Finding the missing number with sorted columns Re-arranging an array Switch and Bulb Problem Compute sum of sub-array Find a number not sum of subsets of array Kth Smallest Element in Two Sorted Arrays Sort a sequence of sub-sequences Find missing integer Inplace Reversing Find the number not occurring twice in an array 3 Trees Lowest Common Ancestor(LCA) Problem Spying Campaign 4 Dynamic Programming Stage Coach Problem Matrix Multiplication TSP Problem A Simple Path Problem String Edit Distance Music recognition Max Sub-Array Problem 5 Graphs Reliable distribution Independent Set Party Problem 6 Miscellaneous Compute Next Higher Number Searching in Possibly Empty Two Dimensional Sequence Matching Nuts and Bolts Optimally Random-number generation Weighted Median Compute a^n Compute a^n revisited Compute the product a × b Compute the quotient and remainder Compute GCD Computed Constrained GCD Alternative Euclid’ Algorithm Revisit Constrained GCD Compute Square using only addition and subtraction Factorization Factorization Revisited Decimal Representation Reverse Decimal Representation Solve Inequality Solve Inequality Revisited Print Decimal Representation Decimal Period Length Sequence Periodicity Problem Compute Function Emulate Division and Modulus Operations Sorting Array of Strings : Linear Time LRU data structure Exchange Prefix and Suffix 7 Parallel Algorithms Parallel Addition Find Maximum Parallel Prefix Problem Finding Ranks in Linked Lists Finding the k th Smallest Element 8 Low Level Algorithms Manipulating Rightmost Bits Counting 1-Bits Counting the 1-bits in an Array Computing Parity of a word Counting Leading/Trailing 0’s Bit Reversal Bit Shuffling Integer Square Root Newton’s Method Integer Exponentiation LRU Algorithm Shortest String of 1-Bits Fibonacci words Computation of Power of 2 Round to a known power of 2 Round to Next Power of 2 Efficient Multiplication by Constants Bit-wise Rotation Gray Code Conversion Average of Integers without Overflow Least/Most Significant 1 Bit Next bit Permutation Modulus Division Part II C++ 8 General 9 Constant Expression 10 Type Specifier 11 Namespaces 12 Misc 13 Classes 14 Templates 15 Standard Library
Author: Peter Sestoft
Publisher: MIT Press
The third edition of Java Precisely provides a concise description of the Java programming language, version 8.0. It offers a quick reference for the reader who has already learned (or is learning) Java from a standard textbook and who wants to know the language in more detail. The book presents the entire Java programming language and essential parts of the class libraries: the collection classes, the input-output classes, the stream libraries and Java 8's facilities for parallel programming, and the functional interfaces used for that.Though written informally, the book describes the language in detail and offers many examples. For clarity, most of the general rules appear on left-hand pages with the relevant examples directly opposite on the right-hand pages. All examples are fragments of legal Java programs. The complete ready-to-run example programs are available on the book's website.This third edition adds material about functional parallel processing of arrays; default and static methods on interfaces; a brief description of the memory model and visibility across concurrent threads; lambda expressions, method reference expressions, and the related functional interfaces; and stream processing, including parallel programming and collectors.
Author: Jun Yuan,Carl Pixley,Adnan Aziz
Publisher: Springer Science & Business Media
Covers a field in functional verification of electronic designs, referred to as the "constraint-based verification." This book aims to show how constraints, or assertions, can be used towards automating the generation of testbenches, resulting in a seamless verification flow. It is aimed at verification engineers as well as researchers.
Author: Narasimha Karumanchi
Category: Business & Economics
"Coding Interview Questions" is a book that presents interview questions in simple and straightforward manner with a clear-cut explanation. This book will provide an introduction to the basics. It comes handy as an interview and exam guide for computer scientists.
Questions, Analysis & Solutions
Author: Harry He
This book is about coding interview questions from software and Internet companies. It covers five key factors which determine performance of candidates: (1) the basics of programming languages, data structures and algorithms, (2) approaches to writing code with high quality, (3) tips to solve difficult problems, (4) methods to optimize code, (5) soft skills required in interviews. The basics of languages, algorithms and data structures are discussed as well as questions that explore how to write robust solutions after breaking down problems into manageable pieces. It also includes examples to focus on modeling and creative problem solving. Interview questions from the most popular companies in the IT industry are taken as examples to illustrate the five factors above. Besides solutions, it contains detailed analysis, how interviewers evaluate solutions, as well as why they like or dislike them. The author makes clever use of the fact that interviewees will have limited time to program meaningful solutions which in turn, limits the options an interviewer has. So the author covers those bases. Readers will improve their interview performance after reading this book. It will be beneficial for them even after they get offers, because its topics, such as approaches to analyzing difficult problems, writing robust code and optimizing, are all essential for high-performing coders.
Coding Your Way Through the Interview
Author: John Mongan,Noah Suojanen Kindler,Eric Giguere
Publisher: John Wiley & Sons
Ace technical interviews with smart preparation Programming 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 more Technical 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.
The Java Programmer's Guide to Numerical Computing
Author: Ronald Mak
Publisher: Prentice Hall Professional
Mak introduces Java programmers to numerical computing. This book contains clear, non-theoretical explanations of practical numerical algorithms, including safely summing numbers, finding roots of equations, interpolation and approximation, numerical integration and differentiation, and matrix operations, including solving sets of simultaneous equations.
Author: Al Vermeulen
Publisher: Cambridge University Press
The Elements of Java Style, written by renowned author Scott Ambler, Rogue Wave Software Vice President Alan Vermeulen, and a team of programmers from Rogue Wave, is for anyone who writes Java code. While there are many books that explain the syntax and basic use of Java, this book, first published in 2000, explains not just what you can do with the syntax, but what you ought to do. Just as Strunk and White's The Elements of Style provides rules of usage for the English language, this book provides a set of rules for Java practitioners to follow. While illustrating these rules with parallel examples of correct and incorrect usage, the book provides a collection of standards, conventions, and guidelines for writing solid Java code which will be easy to understand, maintain, and enhance. Anyone who writes Java code or plans to should have this book next to their computer.
A Book of Lenses, Second Edition
Author: Jesse Schell
Publisher: CRC Press
Good game design happens when you view your game from as many perspectives as possible. Written by one of the world's top game designers, The Art of Game Design presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, visual design, film, software engineering, theme park design, mathematics, puzzle design, and anthropology. This Second Edition of a Game Developer Front Line Award winner: Describes the deepest and most fundamental principles of game design Demonstrates how tactics used in board, card, and athletic games also work in top-quality video games Contains valuable insight from Jesse Schell, the former chair of the International Game Developers Association and award-winning designer of Disney online games The Art of Game Design, Second Edition gives readers useful perspectives on how to make better game designs faster. It provides practical instruction on creating world-class games that will be played again and again.
189 Programming Questions and Solutions
Author: Gayle Laakmann McDowell
Category: Business & Economics
Now in the 6th edition, the book gives you the interview preparation you need to get the top software developer jobs. This is a deeply technical book and focuses on the software engineering skills to ace your interview. The book includes 189 programming interview questions and answers, as well as other advice.
Author: Tony Bevis
Publisher: Ability First Limited
Once you've learned the fundamentals of Java, understanding Design Patterns is essential for writing clear, concise and effective code. This fully revised and updated book gives you a step-by-step guide to object-oriented development, using tried and trusted techniques. The examples have been kept simple, enabling you to concentrate on understanding the concepts and application of each pattern. All examples have been designed around a common theme, making it easier to see how they relate to each other and how you can adapt them to your applications. While the book assumes a basic knowledge of Java you don't need to be a guru. This book is perfect for the programmer wishing to take their skills to the next level, and feel confident about using Java in real applications. Coverage includes all 23 of the patterns from the "Gang of Four" work, additional patterns including Model-View-Controller, and simple UML diagrams.
Author: Noel Markham
Publisher: John Wiley & Sons
If you are a skilled Java programmer but are concerned about the Java coding interview process, this real-world guide can help you land your next position Java is a popular and powerful language that is a virtual requirement for businesses making use of IT in their daily operations. For Java programmers, this reality offers job security and a wealth of employment opportunities. But that perfect Java coding job won't be available if you can't ace the interview. If you are a Java programmer concerned about interviewing, Java Programming Interviews Exposed is a great resource to prepare for your next opportunity. Author Noel Markham is both an experienced Java developer and interviewer, and has loaded his book with real examples from interviews he has conducted. Review over 150 real-world Java interview questions you are likely to encounter Prepare for personality-based interviews as well as highly technical interviews Explore related topics, such as middleware frameworks and server technologies Make use of chapters individually for topic-specific help Use the appendix for tips on Scala and Groovy, two other languages that run on JVMs Veterans of the IT employment space know that interviewing for a Java programming position isn't as simple as sitting down and answering questions. The technical coding portion of the interview can be akin to a difficult puzzle or an interrogation. With Java Programming Interviews Exposed, skilled Java coders can prepare themselves for this daunting process and better arm themselves with the knowledge and interviewing skills necessary to succeed.
How to Prepare for a Career and Land a Job at Apple, Microsoft, Google, or any Top Tech Company
Author: Gayle Laakmann McDowell
Publisher: John Wiley & Sons
Category: Business & Economics
The practical guide for constructing a voice-controlled virtual assistant
Author: Tanay Pant
Build a voice-controlled virtual assistant using speech-to-text engines, text-to-speech engines, and conversation modules. This book shows you how to program the virtual assistant to gather data from the internet (weather data, data from Wikipedia, data mining); play music; and take notes. Each chapter covers building a mini project/module to make the virtual assistant better. You'll develop the software on Linux or OS X before transferring it to your Raspberry Pi, ready for deploying in your own home-automation or Internet of Things applications. Building a Virtual Assistant for Raspberry Pi walks you through various STTs and TTSs and the implementation of these components with the help of Python. After that you will start implementing logic for handling user queries and commands, so that the user can have conversations with Melissa. You will then work to improve logic handling to detect what the user wants Melissa to do. You will also work on building some useful applications/modules for Melissa, which will allow you to gain interesting information from Melissa such as the time, weather information, and data from Wikipedia. You will develop a music playing application as well as a note taking application for Melissa, laying the foundations for how Melissa can be further extended. Finally, you will learn how to deploy this software to your Raspberry Pi and how you can further scale Melissa to make her more intelligent, interactive and how you can use her in other projects such as home automation as well. What You'll Learn Design the workflow and discover the concepts of building a voice controlled assistant Develop modules for having conversations with the assistant Enable the assistant to retrieve information from the internet Build utilities like a music player and a note taking application for the virtual assistant Integrate this software with a Raspberry Pi Who This Book Is For Anyone who has built a home automation project with Raspberry Pi and now want to enhance it by making it voice-controlled. The book would also interest students from computer science or related disciplines.
Author: Michael T. Goodrich,Roberto Tamassia,Michael H. Goldwasser
Publisher: Wiley Global Education
Based on the authors market leading data structures books in Java and C++, this textbook offers a comprehensive, definitive introduction to data structures in Python by authoritative authors. Data Structures and Algorithms in Python is the first authoritative object-oriented book available for the Python data structures course. Designed to provide a comprehensive introduction to data structures and algorithms, including their design, analysis, and implementation, the text will maintain the same general structure as Data Structures and Algorithms in Java and Data Structures and Algorithms in C++.