Here is a minimal list of the things that every software professional should be
• Design patterns. You ought to be able to describe all 24 patterns in the GOF book
and have a working knowledge of many of the patterns in the POSA books.
• Design principles. You should know the SOLID principles and have a good
understanding of the component principles.
• Methods. You should understand XP, Scrum, Lean, Kanban, Waterfall,
Structured Analysis, and Structured Design.
• Disciplines. You should practice TDD, Object-Oriented design, Structured
Programming, Continuous Integration, and Pair Programming.
• Artifacts: You should know how to use: UML, DFDs, Structure Charts, Petri
Nets, State Transition Diagrams and Tables, flow charts, and decision tables.
(from clean coder page 18-19).