Top 100 Technical Interview Questions Flashcards

1
Q

What are design patterns?

A

Design patterns are reusable solutions to common software design problems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Explain the Singleton pattern.

A

The Singleton pattern ensures a class has only one instance and provides a global point of access to that instance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the Factory pattern?

A

The Factory pattern creates objects without specifying the exact class of object that will be created.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Describe the Observer pattern.

A

The Observer pattern defines a dependency between objects, so that when one object changes state, all its dependents are notified and updated automatically.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How does the Strategy pattern work?

A

The Strategy pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the Decorator pattern?

A

The Decorator pattern attaches additional responsibilities to an object dynamically.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Explain the Adapter pattern.

A

The Adapter pattern allows incompatible interfaces to work together by providing a wrapper with a compatible interface.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Describe the Template Method pattern.

A

The Template Method pattern defines the structure of an algorithm but allows subclasses to provide certain steps’ implementations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the Command pattern?

A

The Command pattern turns a request into a stand-alone object, containing all information about the request.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Explain the Proxy pattern.

A

The Proxy pattern provides a surrogate or placeholder for another object to control access to it.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the Chain of Responsibility pattern?

A

The Chain of Responsibility pattern sends a request along a chain of handlers, where each handler decides whether to process the request or pass it along.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Describe the State pattern.

A

The State pattern allows an object to change its behavior when its internal state changes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the Composite pattern?

A

The Composite pattern composes objects into tree structures to represent part-whole hierarchies.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Explain the Iterator pattern.

A

The Iterator pattern provides a way to access the elements of an aggregate object sequentially without exposing its underlying representation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Describe the Memento pattern.

A

The Memento pattern captures and restores an object’s internal state.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What does SOLID stand for?

A

SOLID stands for Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Inversion Principle.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Explain the Single Responsibility Principle (SRP).

A

SRP states that a class should have only one reason to change, i.e., it should have only one responsibility.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is the Open-Closed Principle (OCP)?

A

OCP suggests that software entities should be open for extension but closed for modification.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Describe the Liskov Substitution Principle (LSP).

A

LSP states that objects of a superclass should be replaceable with objects of its subclasses without affecting the correctness of the program.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What does the Interface Segregation Principle (ISP) state?

A

ISP states that clients should not be forced to depend on interfaces they don’t use.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Explain the Dependency Inversion Principle (DIP).

A

DIP states that high-level modules should not depend on low-level modules, both should depend on abstractions, and abstractions should not depend on details.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is Dependency Injection (DI)?

A

DI is a design pattern that allows the creation of dependent objects outside of a class and provides them to the class through constructors, methods, or properties.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is Inversion of Control (IoC)?

A

IoC is a principle where the control of an object’s lifecycle and dependencies are handed over to a container or framework.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Why is Dependency Injection beneficial?

A

DI promotes loose coupling, easier testing, and better maintainability by decoupling components and their dependencies.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Explain Constructor Injection.

A

Constructor Injection involves passing dependencies through a class’s constructor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What is Property Injection?

A

Property Injection involves setting the dependencies through public properties on a class.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Describe Method Injection.

A

Method Injection involves passing dependencies as parameters to methods where they’re needed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

What is the role of an IoC container?

A

An IoC container manages the instantiation and injection of dependencies, following the IoC principle.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Name a few popular IoC containers in .NET.

A

Some examples include Unity, Autofac, Ninject, and StructureMap.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

What is MVC (Model-View-Controller)?

A

MVC is a design pattern that separates an application into three interconnected components: Model, View, and Controller.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Explain the Model in MVC.

A

The Model represents the application’s data and business logic.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

What is the View in MVC?

A

The View presents the data to the user and receives user input.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Describe the Controller in MVC.

A

The Controller handles user input, processes it, and updates the Model and View accordingly.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

What is MVVM (Model-View-ViewModel)?

A

MVVM is a design pattern that separates an application into Model, View, and ViewModel components.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Explain the ViewModel in MVVM.

A

The ViewModel acts as an intermediary between the Model and the View, providing data and behavior for the View.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

How does data binding work in MVVM?

A

Data binding automatically synchronizes the data between the ViewModel and the View, ensuring consistency.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

What is a microservices architecture?

A

Microservices is an architectural style where an application is composed of loosely coupled, independently deployable services.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

What are the advantages of microservices?

A

Advantages include scalability, independent deployment, technology diversity, and easier maintenance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Describe the communication between microservices.

A

Microservices often communicate over lightweight protocols like HTTP/REST or messaging systems like RabbitMQ.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

What are the challenges of microservices?

A

Challenges include managing distributed data, ensuring consistency, dealing with network latency, and monitoring complex systems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

How does microservices architecture relate to containers and orchestration?

A

Microservices are often deployed within containers (e.g., Docker) and orchestrated using tools like Kubernetes for efficient management.

42
Q

What is software architecture?

A

Software architecture is the high-level structure and organization of a software system.

43
Q

Explain the difference between monolithic and microservices architectures.

A

Monolithic architecture consists of a single codebase, while microservices architecture divides an application into smaller, independently deployable services.

44
Q

What is the role of an architect in software development?

A

An architect designs the overall structure of the system, defines technical standards, and ensures that the design aligns with business goals.

45
Q

Describe the concept of modularity in software design.

A

Modularity involves breaking down a system into smaller, self-contained units to improve maintainability and reusability.

46
Q

What is coupling in software design?

A

Coupling refers to the degree of interdependence between different components or modules in a system.

47
Q

Explain cohesion in software design.

A

Cohesion measures how closely the responsibilities of a module or component align with its intended functionality.

48
Q

What is architectural scalability?

A

Architectural scalability refers to the ability of a system to handle increased load by adding more resources or components.

49
Q

Describe the difference between horizontal and vertical scaling.

A

Horizontal scaling involves adding more machines to distribute load, while vertical scaling involves upgrading a single machine’s resources.

50
Q

What are design anti-patterns?

A

Design anti-patterns are common mistakes or bad practices in software design that should be avoided.

51
Q

Explain the concept of code maintainability.

A

Code maintainability refers to how easy it is to make changes to the codebase without introducing errors or negatively impacting the system.

52
Q

What is technical debt?

A

Technical debt refers to the consequences of choosing a suboptimal solution in the short term, leading to increased effort required for maintenance or future improvements.

53
Q

Describe the role of documentation in software architecture.

A

Documentation helps communicate design decisions, architecture, and usage of components to developers, stakeholders, and future maintainers.

54
Q

What is a software design review?

A

A software design review is a formal evaluation of a system’s architecture and design to ensure they meet requirements and follow best practices.

55
Q

Why is testing important in software development?

A

Testing helps identify defects, ensures the software meets requirements, and increases overall software quality.

56
Q

Explain unit testing.

A

Unit testing involves testing individual components or functions in isolation to ensure they work as expected.

57
Q

What is integration testing?

A

Integration testing verifies interactions between different components, ensuring they work together correctly.

58
Q

Describe regression testing.

A

Regression testing involves retesting a system after changes to ensure that existing functionalities are not negatively impacted.

59
Q

What is continuous integration (CI)?

A

CI is a practice of frequently integrating code changes into a shared repository, followed by automated builds and tests.

60
Q

What is continuous delivery (CD)?

A

CD extends CI by automating the deployment process, allowing for frequent and reliable releases.

61
Q

What is version control?

A

Version control is a system that tracks changes to files and helps teams collaborate on software development.

62
Q

Explain the difference between Git and other version control systems.

A

Git is distributed, allowing developers to work offline and commit changes locally before syncing with a remote repository.

63
Q

What is a repository in Git?

A

A repository is a storage location where a project’s files, history, and metadata are stored.

64
Q

Describe the concepts of branching and merging in Git.

A

Branching allows developers to work on separate features or fixes, and merging combines those changes back into the main codebase.

65
Q

What is a pull request in Git?

A

A pull request is a mechanism for submitting changes to a repository and initiating a review process before merging.

66
Q

What is concurrency in software?

A

Concurrency is the ability of a system to handle multiple tasks simultaneously.

67
Q

Explain the difference between threads and processes.

A

Threads are lighter-weight than processes and share the same memory space, while processes have their own memory space.

68
Q

What is multithreading?

A

Multithreading is the concurrent execution of multiple threads within the same process.

69
Q

What are the challenges of multithreading?

A

Challenges include race conditions, deadlocks, and synchronization issues.

70
Q

Describe the purpose of locks and mutexes in multithreading.

A

Locks and mutexes are synchronization mechanisms used to prevent multiple threads from accessing shared resources simultaneously.

71
Q

Why is software security important?

A

Software security is essential to protect sensitive data, prevent unauthorized access, and ensure the integrity of the system.

72
Q

What is authentication in software security?

A

Authentication is the process of verifying the identity of a user, device, or system.

73
Q

Explain the concept of authorization.

A

Authorization determines what actions or resources a user is allowed to access after successful authentication.

74
Q

What is SQL injection?

A

SQL injection is a type of attack where malicious SQL queries are inserted into input fields to manipulate or access a database.

75
Q

Describe Cross-Site Scripting (XSS)

A

XSS is a vulnerability where malicious scripts are injected into web pages viewed by other users.

76
Q

Why is performance optimization important in software development?

A

Performance optimization ensures that software runs efficiently, responds quickly, and uses resources effectively.

77
Q

What is profiling in performance optimization?

A

Profiling involves analyzing a program’s runtime behavior to identify performance bottlenecks.

78
Q

Explain caching as a performance optimization technique.

A

Caching stores frequently used data in memory to reduce the need for repeated resource-intensive operations.

79
Q

What is load balancing?

A

Load balancing distributes network or application traffic across multiple servers to ensure optimal resource utilization.

80
Q

What is cloud computing?

A

Cloud computing involves delivering computing services (such as servers, storage, databases) over the internet.

81
Q

Explain the difference between Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS).

A

IaaS provides virtualized computing resources, PaaS offers a platform for application development, and SaaS delivers ready-to-use software applications.

82
Q

What is auto-scaling in cloud environments?

A

Auto-scaling automatically adjusts the number of resources (such as servers) based on traffic or load, ensuring optimal performance.

83
Q

What is the Waterfall model?

A

The Waterfall model is a sequential software development process where each phase must be completed before the next one starts.

84
Q

Explain Agile methodology.

A

Agile is an iterative and incremental approach to software development that emphasizes collaboration, flexibility, and customer feedback.

85
Q

What is Scrum?

A

Scrum is an Agile framework that divides work into time-boxed iterations called sprints, focusing on incremental development and adaptability.

86
Q

Describe the concept of User Stories in Agile.

A

User Stories are short, simple descriptions of a feature or requirement from the perspective of an end user.

87
Q

What is Test-Driven Development (TDD)?

A

TDD is a development approach where tests are written before writing the actual code, ensuring that the code meets requirements.

88
Q

Explain Behavior-Driven Development (BDD).

A

BDD is an extension of TDD that emphasizes collaboration between developers, testers, and non-technical stakeholders to define system behavior.

89
Q

What is containerization?

A

Containerization is a technology that packages applications and their dependencies into isolated environments called containers.

90
Q

Explain Docker.

A

Docker is a popular platform for developing, shipping, and running applications in containers.

91
Q

What are Docker images and containers?

A

Docker images are templates for containers, and containers are instances of those images running as isolated processes.

92
Q

How does Docker differ from virtualization?

A

Docker containers share the host OS kernel, making them more lightweight and efficient compared to virtual machines.

93
Q

What is DevOps?

A

DevOps is a cultural and technical practice that emphasizes collaboration between development and operations teams to automate and streamline software delivery.

94
Q

Describe continuous monitoring in DevOps.

A

Continuous monitoring involves continuously collecting and analyzing data to ensure that a system is performing optimally and securely.

95
Q

What is a DevOps pipeline?

A

A DevOps pipeline automates the steps involved in building, testing, and deploying software, ensuring a smooth and consistent delivery process.

96
Q

Why is ethics important in software development?

A

Ethics in software development ensures that software is developed and used in a responsible and accountable manner, taking into consideration the impact on users and society.

97
Q
A
98
Q
A
99
Q
A
100
Q
A