Programming concepts
fundamental concepts
- conditionals
- loops
- data types
- integer
- floating point (precision: double, triple, quadruple)
- structures
- lists
- arrays
- object oriented programming
- classes
- objects
- copy
- shallow copy
- copy on write (CoW)
- copy on read
- deep copy
- lazy copy
Algorithms
- big O notation
- recursion
- iteration
Patterns
Patterns are recognisable structures of code which solve particular problems in a defined way.
There are also Anti-Patterns, which are things you should avoid. Often, using software development patterns too much leads to overdoing them, which is an anti-pattern.
Anti-patterns lead to code smell, which is a way to say that something is not right with your code.
Gang of four patterns
- Factory
- Builder
- Prototype
- Singleton
- Adapter
- Bridge
- Composite
- Decorator
- Proxy
- Facade
- Flyweight
- Chain of Responsibility
- Command
- Memento
- Observer
- Template Method
- Visitor
- Iterator
- Mediator
- State
- Strategy