The Coder’s MUST know

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:

  1. All the 23 GoF (Gang Of Four) Patterns:
    1. Creational
    2. Structural
      • Adapter
      • Bridge
      • Composite
      • Decorator
      • Facade
      • Flyweight
      • Proxy
    3. Behavioral
      • Chain of responsibility
      • Command
      • Interpreter
      • Iterator
      • Mediator
      • Memento
      • Observer
      • State
      • Strategy
      • Template Method
      • Visitor
  2. Have a working knowledge of many of the patterns in the POSA (Pattern-Oriented Software Architecture) books:
    1. 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
    2. 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
  3. SOLID Design Principles
    1. SRP
    2. OCP
    3. LSP
    4. ISP
    5. DIP
  4. Component Principles
    1. REP
    2. CCP
    3. CRP
  5. Methods
    1. XP
    2. Scrum
    3. Lean
    4. Kanban
    5. Waterfall
    6. Structured Analysis
    7. Structured Design
  6. Disciplines (you should practice)
    1. TDD
    2. Object-Oriented Design
    3. Structured Programming
    4. Continuous Integration
    5. Pair Programming
  7. Artifacts (you should know how to use)
    1. UML (Class Diagrams 1Ā  and 2,Ā Sequence Diagram)
    2. DFDs
    3. Structure Charts
    4. Petri Nets
    5. State Transition Diagrams and Tables
    6. Flow Charts
    7. 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.

Leave your opinion, start a discussion, share an experience or just a compliment...

%d bloggers like this: