
The Coder’s MUST know
Where is the idea coming from
Uncle Bob once wrote on his “The Clean Coder” that there are a couple of concepts every programmer should know.
You and I could add or remove a couple of items from this list, however I believe it is a good place to start from. So I would like to start a series of posts covering these items and by doing so helping you to become a more complete Coder š
The contents
Here are the items we are going to cover and I will link them little by little as they get written:
- All the 23 GoF (Gang Of Four) Patterns:
- Creational
- Structural
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
- Behavioral
- Chain of responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
- Have a working knowledge of many of the patterns in the POSA (Pattern-Oriented Software Architecture) books:
- Volume 1
- Layers
- Pipes and filters
- Blackboard
- Broker
- MVC
- Presentation-Abstraction-control
- Microkernel
- Reflection
- Whole-Part
- Master-Slave
- Proxy
- Command Processor
- View Handler
- Forwarder-Receiver
- Client-Dispatcher-Server
- Publisher-Subscriber
- Countered Pointer
- Volume 2
- Wrapper Faceade
- Component Configurator
- Interceptor
- Extension Interface
- Reactor
- Proactor
- Asynchronous Completion Token
- Acceptor-Connector
- Scoped Locking
- Strategized Locking
- Strategized Locking
- Double-Checked Locking Optimization
- Active Object
- Monitor Object
- Half-Sync/Half-Async
- Leader/Followers
- Thread-Specific Storage
- Volume 1
- SOLID Design Principles
- SRP
- OCP
- LSP
- ISP
- DIP
- Component Principles
- REP
- CCP
- CRP
- Methods
- XP
- Scrum
- Lean
- Kanban
- Waterfall
- Structured Analysis
- Structured Design
- Disciplines (you should practice)
- TDD
- Object-Oriented Design
- Structured Programming
- Continuous Integration
- Pair Programming
- Artifacts (you should know how to use)
- UML (Class Diagrams 1Ā and 2,Ā Sequence Diagram)
- DFDs
- Structure Charts
- Petri Nets
- State Transition Diagrams and Tables
- Flow Charts
- Decision Tables
So you see… we have material to talk about for a while! I hope this proves useful and makes you a better Coder. It is always better to know more than less anyway and continuous improvement is something everyone should strive for, at least in my opinion.
As usual I will try to add some interesting illustrations for you (my) fellow visual learners out there, as well as, where applicable, I will add some examples and try-it-yourself challenges.
Stick around!
P.s.: For a nice little searchable index (while this list is being filled š ) check this link.