A number of Software Engineer interview questions and answers
+ What is polymorphism?
+ What is encapsulation?
+ What is inversion of control?
+ Design principles:
- Separation of concerns.
- Single Responsibility principle.
- Principle of Least Knowledge.
- DRY: Don’t repeat yourself.
- Minimize upfront design.
+ Drawbacks of not using `separation of concerns`.
+ Microservices is a variant of the service-oriented architecture (SOA).
+ What is SOLID Principles of Object Oriented and Agile Design?
- Single responsibility principle.
- Open/closed principle.
- Liskov substitution principle.
- Interface segregation principle.
- Dependency inversion principle.
+ Design patterns.
- Creational: Builder, Object Pool, Factory Method, Signleton, Multiton, Prototype, Abstract Factory.
- Structural: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy.
- Behavioral: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento,
Observer, State, Strategy.
+ 3-tier architecture?
- Presentation tier.
- Application tier.
- Data tier.
+ 3-layer architecture?
- DAO (Repository).
- Business (Service) layer.
- Controller).
+ What is REST?
+ Idempotent operation EX: The PUT and DELETE methods are referred to as idempotent,
meaning that the operation will produce the same result no matter how many times it is repeated.
+ nullipotent operation EX: GET method is a safe method (or nullipotent),
meaning that calling it produces no side-effects.
+ (medium) given a collection of numbers and a sum , find a matching pair that is equal to the sum
- assume the numbers is sorted
- assume the numbers is not sorted
what is the best complexity you can come up with?
can you do it in O(n^2) , O(nlog(n)) , O(n) , etc... ? where n is the length of the numbers
example : [1 , 2 , 3 ,6] , Sum = 10 , no matching pair
: [1 , 2 , 4 , 4] , Sum = 8 , matching pair = (4, 4)
+ (Easy) given a string , find the first recurret charter in the string
example : 'ABCDA' , answer = 'A'
: 'ABCBDA' , answer = 'B'
: 'ABC' , answer = NULL
find the O(n) answer