Welcome to Top 20 Software Developer (engineer) Interview Questions and Answers. This article is specifically designed to help you prepare for an interview and provide confidence boost so that you get that awesome job. All questions and answers are researched and contributed by a professional software developer.
Keep in mind, it is incredibly hard to know exactly which questions will be asked during an interview; however, we can prepare by studying different possibilities.
Aside from technical questions below; you also might want to consider reading about most common interview questions.
We also have a video of this topic at the bottom of this article…
1. What is 29 in binary and hexadecimal?
Binary: 11101 – Hexadecimal: 1D
2. What is a singleton class?
A class that can only be instantiated once.
3. Explain inheritance in object-oriented programming?
A class can inherit the implementation of its parent class, while also extending and/or changing parts of it. This allows for reuse of code when classes have a lot in common.
4. With threads A and B and resources x and y, describe a deadlock situation?
Thread A reserves resource x. Then thread B reserves resource y. Thread A, without releasing x, then requests resource y, but have to wait for thread B to release it. Meanwhile thread B, without releasing y, requests resource x, but have to wait thread A to release it. Both threads are now waiting for each other to release their resource, but none will until the other does.
5. What is a non-functional requirement?
A non-functional requirement specifies general behavior requirements of the system. It describes what you want your system to be, rather than what it should do. Some non-functional requirements include accessibility, maintainability and security.
6. What is a functional requirement?
A functional requirement describes the specific functionality you want of your system.
7. What are steps of the waterfall method?
Requirements – Design – Implementation – Verification – Maintenance
8. In SCRUM, what is the purpose of the daily stand-up meeting?
The purpose of the stand-up is for the team to get up to speed what has been done and what will be done that day, and to bring attention to real or potential obstacles in the development. (The stand-up meeting works as follows: Each member of the development team answers three questions in turn: 1. What did I do yesterday? 2. What will I do today? 3. Have I discovered anything that might impede our progress towards the sprint goal?)
9. What are the benefits and disadvantages of paper prototyping?
Benefits: The main benefits of paper prototyping are that it is quick and cheap, and easily allows an entire team to take part in the design process.
Disadvantages: The major disadvantage is that it is hard to emulate the true feel of the system and certain functionality, such as scrolling, data entry and dynamic elements. Often paper prototypes will only be able to show the general outline (breadth-first) or show off a few specific functionalities (depth-first) of the system.
10. What is the purpose of a sequence diagram/event diagram?
A sequence diagram shows the interactions, sent messages and return values, between objects, and in what order they are sent. This gives an idea of the runtime flow of the application.
11. What is modularization?
Modularization is a technique where the software is divided into several modules that work independently of each other. The main benefit of this is better maintainability.
12. Can you describe the Model-view-controller architecture?
The MVC architecture is used most commonly for GUI applications, and means to separate the data from the user interface. The model layer holds the data, the view layer outputs the data to the user and the controller is responsible for making changes to the model based on user input.
13. What is a directed acyclic graph?
A DAG is a directed (edges have direction) graph without any cycles (it is impossible to start at a node, and following any directed edges return to that same node).
14. What is the difference between black box and white box testing?
While black box testing only tests a function for correct output given an input, white box testing also tests if the implementation is correct.
15. What is the difference between a queue and a stack?
A queue is based on the FIFO – First In, First Out – principle, which means the first item to enter the queue is the first to be removed, like the queue at the cash register. A stack on the other hand is based on the LIFO – Last In, First Out – principle, which means the last item to enter the stack is also the first to be removed (or “popped”), like a stack of plates.
16. What is a recursive function?
A recursive function is a function that calls itself. At each function call, one or more parameters are changed. The recursion continues until a base case (a set of parameters which return a value instead of calling itself recursively) is reached, and the recursion is resolved.
17. What is the average and worst case run time of the quicksort algorithm?
Average case: O(n log n) – Worst case: O(n2)
18. How does the A* algorithm work?
A* is a path-finding algorithm that works on weighted graphs with a heuristic function that estimates the cost of travelling from node n to the goal node (The heuristic function is problem specific). The nodes to be considered at each step is stored in a collection – usually a priority queue. It starts by adding every node that is adjacent to the start node into the queue with their estimated total cost, based on the formula f(n) = g(n) + h(n), where g(n) is the actual cost from the start node to node n, while h(n) is the heuristic function. At each iteration, the node with the smallest estimated cost f(n) is expanded. A path is found when the goal node is the one chosen for expansion. Alternatively, no path is found if the queue becomes empty.
19. In SQL, with unique keys, what does inner and outer join do?
Both operations join two tables. Inner join works as the intersection between the tables, so only keys that exists in both tables will be kept in the joined table. Outer join works as the union between the tables, so all rows are included in the joined table. (Left outer join will keep all rows from the left table, while only the rows with keys that also exists in the left table are included from the right table. Equivalently, right outer join includes all rows from the right table, but not necessarily all rows from the left.)
20. What is an SQL injection, and how are they prevented?
SQL injection is when SQL statements are entered into data fields that are to be stored in an SQL database. The most usual mitigation techniques include parameterized statements, escaping characters with special meaning in SQL, pattern checking and limiting database permissions.
Before going to an interview, take time to learn as much as possible about company that you are applying with. This will further improve your chances because you can tailor your answers in accordance to what this company is looking for in an employer.
Best of luck to you and if you are applying for other IT positions have a look at below topics.