What are code interview sites

Coding interviews

Chapter 1. Interview Process

Applying for a technical job is, in many ways, a unique experience. The interview process is unlike any other. Applicants who do not know what to expect are at a severe disadvantage. The purpose of this chapter is to acquaint you with the process so that, instead of being surprised, you will have an advantage over your competition. By understanding the process, you will be prepared for even the toughest interviews and have the opportunity to let your talents dictate your success.

Chapter 2. Programming Languages

There are a number of popular programming languages ​​these days. Different companies, even different departments within the same company, prefer to use different languages. Driver developers get used to writing code in C. Many programmers who work on Linux develop applications in C ++, while other programmers working on Windows prefer C #. Many cross-platform systems are developed in Java. Objective C becomes more and more popular due to sales of iPads and iPhones. Additionally, scripting languages, such as Perl and Python, are very suitable for toolkit development.

Chapter 3. Data Structures

The primary purpose of most computer programs is to store, retrieve, and process information. Consequently, data structures and algorithms that manipulate information are at the heart of computer science. For this reason, many interviewers often focus a number of their questions on these aspects. This chapter will cover typical interview questions about the most common data structures, including arrays, strings, lists, trees, stacks, and queues.

Chapter 4. Algorithms

In addition to data structures, algorithms are also quite common topics in interviews. There are many interview questions about search and sort algorithms. Backtracking, dynamic programming, and greedy algorithms are useful tools to solve many problems posed in coding interviews. Additionally, bit operations can be viewed as special algorithms to manipulate binary integers. All of these algorithms will be discussed in this chapter.

Chapter 5. High Quality Code

Interview candidates will want to write code of high quality during interviews, but many of them cannot meet their interviewers ’expectations. This chapter provides detailed instructions on how to write clean, complete, and robust code. While solving a set of sample coding interview problems, we will illustrate how functional, boundary, and negative test cases, as well as defensive programming, are used to produce complete and robust code.

Chapter 6. Approaches to Solutions

There are often tough situations where candidates are asked difficult interview questions. This chapter provides three strategies to solve complex problems:
  • Figures may be helpful to visualize data structures problems such as lists and trees.
  • Step-by-step analysis with examples may uncover hidden rules.
  • The divide-and-conquer approach breaks down a problem into manageable pieces and solves them recursively.

Chapter 7. Optimization

Interviewers usually expect efficient solutions that solve problems within the resource constraints, so it is important for candidates to improve code performance from the perspectives of both time and space consumption. This chapter illustrates strategies to optimize programs by selecting appropriate data structures and algorithms, as well as by making trade-off decisions to balance time and space efficiencies.

Chapter 8. Skills for Interviews

Interviews are chances for candidates to demonstrate their communication skills. Sometimes interviewers ask coding questions with new concepts to verify candidates ’learning skills. Candidates might solve new interview problems with skills that reapply solutions to classic problems or solve problems abstracted from daily life and work with mathematical modeling skills. Divergent thinking skills are necessary for candidates when conventional solutions are disallowed by interviewers. All of these skills are discussed in detail with several sample coding interview questions in this chapter.

Chapter 9. Interview Cases

We have discussed five key factors that determine performance of candidates in the previous chapters:
  • Basics of programming languages, data structures, and algorithms
  • Approaches to writing code of high quality
  • Strategies to solve difficult problems
  • Skills required in interviews

Backmatter