Most Essential Coding Interview Questions

On the way to your first coding interview? This is a collection of some of the most common coding, algorithm and engineering questions. Your perfect preparation for your interview!

Software Engineering Questions

When you know programming, what is the need to learn software engineering concepts?

A person who knows how to build a wall may not be good at building an entire house. Likewise, a person who can write programs may not have knowledge of other concepts of Software Engineering. The software engineering concepts guide programmers on how to assess requirements of end user, design the algorithms before actual coding starts, create programs by coding, testing the code and its documentation.

What is software process or Software Development Life Cycle (SDLC)?

Software Development Life Cycle, or software process is the systematic development of software by following every stage in the development process namely, Requirement Gathering, System Analysis, Design, Coding, Testing, Maintenance and Documentation in that order.

What is software project management?

Software project management is process of managing all activities like time, cost and quality management involved in software development.

Who is software project manager?

A software project manager is a person who undertakes the responsibility of carrying out the software project.

What does software project manager do?

Software project manager is engaged with software management activities. He is responsible for project planning, monitoring the progress, communication among stakeholders, managing risks and resources, smooth execution of development and delivering the project within time, cost and quality contraints.

What is software scope?

A. Software scope is a well-defined boundary, which encompasses all the activities that are done to develop and deliver the software product.

The software scope clearly defines all functionalities and artifacts to be delivered as a part of the software. The scope identifies what the product will do and what it will not do, what the end product will contain and what it will not contain.

What is project estimation?

It is a process to estimate various aspects of software product in order to calculate the cost of development in terms of efforts, time and resources. This estimation can be derived from past experience, by consulting experts or by using pre-defined formulas.

How can we derive the size of software product?

Size of software product can be calculated using either of two methods

  • Counting the lines of delivered code
  • Counting delivered function points

What is baseline?

A. Baseline is a measurement that defines completeness of a phase. After all activities associated with a particular phase are accomplished, the phase is complete and acts as a baseline for next phase.

What are functional requirements?

Functional requirements are functional features and specifications expected by users from the proposed software product.

What is modularization?

Modularization is a technique to divide a software system into multiple discreet modules, which are expected to carry out task(s) independently.

What is concurrency and how it is achieved in software?

Concurrency is the tendency of events or actions to happen simultaneously. In software, when two or more processes execute simultaneously, they are called concurrent processes.

What is functional programming?

Functional programming is style of programming language, which uses the concepts of mathematical function. It provides means of computation as mathematical functions, which produces results irrespective of program state.

What is black-box and white-box testing?

Black-box testing checks if the desired outputs are produced when valid input values are given. It does not verify the actual implementation of the program.

White-box testing not only checks for desired and valid output when valid input is provided but also it checks if the code is implemented correctly.

Personal Questions

What programming languages have you used in the past? What are your top two programming languages?

This question allows you to see how many programming languages the candidate knows and whether they are familiar with a language you commonly use at your company. What to look for:

  • Applicant’s programming knowledge
  • Applicant’s fit for your company
  • Level of proficiency

How much are you coding on a daily basis? If you do not code on a daily basis, what is typical in your role?

Since coding is a big part of being a software engineer, if a candidate isn’t spending much of their time coding and they aren’t in a management role, it may be a sign of problems with their coding skills. What to look for:

  • Commitment to coding
  • Applicant’s coding ability
  • Role in previous job

How comfortable are you in a startup environment, or do you prefer working in a more established company?

Working in a startup is very different than being at a more established company. You want to make sure a candidate is a good fit for your company environment and expected workload that comes with working in a startup. What to look for:

  • Company fit
  • Ready for startup life
  • Understanding of expected workload

If needed, how would you go about designing scalable applications? Walk us through your process.

This question is designed to test a candidate’s knowledge and thought processes when it comes to design and solving common project specific problems. What to look for:

  • Test applicant’s knowledge
  • Problem-solving skills
  • Understand their approach to design

Algorithm & Data Structures

Find all solutions to these questions on

  • How do you find the missing number in a given integer array of 1 to 100?
  • How do you find the duplicate number on a given integer array?
  • How do you find the largest and smallest number in an unsorted integer array?
  • How do you find the middle element of a singly linked list in one pass?
  • How do you check if a given linked list contains a cycle? How do you find the starting node of the cycle?
  • How do you print duplicate characters from a string?
  • How do you check if two strings are anagrams of each other?
  • How do you print the first non-repeated character from a string?
  • How can a given string be reversed using recursion?
  • How is a binary search tree implemented?
  • How do you perform preorder traversal in a given binary tree?
  • How do you traverse a given binary tree in preorder without recursion?
  • How do you perform an inorder traversal in a given binary tree?
  • How is a bubble sort algorithm implemented?
  • How is an iterative quicksort algorithm implemented?
  • How do you implement an insertion sort algorithm?
  • How is a merge sort algorithm implemented?
  • How do you implement a bucket sort algorithm?


Find an expert mentor

Get the career advice you need to succeed. Find a mentor who can help you with your career goals, on the leading mentorship marketplace.