Job preparationSoftware development

Software development interview questions and answers

10 questions · 7 min read

OOP, design patterns, the SDLC, Agile, version control, TDD, ORMs and REST APIs.

These questions test one thing: whether you write code or build software. The difference is process.

Agile, Git and testing now come up even for junior roles, because nearly every team works that way.

The questions

What is object-oriented programming and what are its four core ideas?

What to coverOOP is a programming paradigm built around data and behaviour (methods). The four core ideas are encapsulation, inheritance, polymorphism and abstraction.

What is a data structure, and what are some common ones?

What to coverA data structure is a particular arrangement for storing and managing data. Common ones are arrays, linked lists, stacks, queues, trees, graphs and hash tables.

What are algorithm analysis and Big O notation?

What to coverAlgorithm analysis is the process of judging how well and how efficiently an algorithm performs. Big O is the notation used to express its time or space complexity.

What is a design pattern and what kinds are there?

What to coverA design pattern is a proven solution to a recurring problem in software design. The kinds are creational, structural and behavioural patterns.

What is the software development life cycle and what are its stages?

What to coverThe SDLC is the framework guiding the planning, building, testing and maintenance of each stage of a project. The stages are planning, requirements analysis, design, development, testing, deployment and maintenance.

What is Agile methodology and what defines it?

What to coverAgile is an incremental and iterative development methodology that stresses fast delivery, teamwork and continuous improvement.

What is a version control system and what kinds are there?

What to coverA version control system is a tool for tracking and managing changes to source code. The kinds are centralised (such as SVN) and distributed (such as Git).

What is test-driven development and what is the process?

What to coverTDD is a development method where the test is written before the code. The cycle is: write the test, watch it fail, write the code, make the test pass.

How do you integrate with a database, and what is an ORM?

What to coverDatabase integration is managing the exchange of data between an application and its database. An ORM is a tool that maps the data model of an object-oriented language onto the database.

What is an API, and what is a RESTful API?

What to coverAn API is an interface that lets software applications communicate and exchange data. A RESTful API is an API design pattern built on the HTTP protocol, following the REST architectural style.

Tips for this round

  • Give the SDLC stages in order, and say which of them you have personally worked in.
  • If Git comes up, skip the textbook definition and describe handling a real merge conflict.
  • If you have written tests, say so — it is rare among junior candidates.

Want to learn this hands-on? Take a look at the related course.

Browse courses