- JavaScript and TypeScript machinery
- Timers: https://github.com/HowProgrammingWorks/Timers
- Typed Arrays: https://github.com/HowProgrammingWorks/TypedArrays
- Generators: https://github.com/HowProgrammingWorks/Generator
- Async generators: https://github.com/HowProgrammingWorks/AsyncGenerator
- Iterator: https://github.com/HowProgrammingWorks/Iterator
- Async iterator: https://github.com/HowProgrammingWorks/AsyncIterator
- Fundamentals
- Generics: https://github.com/HowProgrammingWorks/Generics
- Modularity, Layers and Low Coupling
- Function composition: https://github.com/HowProgrammingWorks/Composition
- Memoization: https://github.com/HowProgrammingWorks/Memoization
- Lists: https://github.com/HowProgrammingWorks/LinkedList
- Queue and Dqueue: https://github.com/HowProgrammingWorks/Dequeue
- Functional programming: https://github.com/HowProgrammingWorks/FunctionalProgramming
- Functor and Monad: https://github.com/HowProgrammingWorks/Functor
- Async Programming
- Asynchronous programming: https://github.com/HowProgrammingWorks/AsynchronousProgramming
- Reactive programming: https://github.com/HowProgrammingWorks/ReactiveProgramming
- Promise: https://github.com/HowProgrammingWorks/Promise
- Async/await: https://github.com/HowProgrammingWorks/AsyncAwait
- EventEmitter: https://github.com/HowProgrammingWorks/EventEmitter
- EventTarget: https://github.com/HowProgrammingWorks/Events
- Principles and Techniques
- GRASP: Information expert
- GRASP: Low coupling and High cohesion
- Decomposition, Instantiation, Encapsulation, Delegation
- Class composition (Aggregation, Composition, Association)
- SOLID
- Single responsibility principle: https://github.com/HowProgrammingWorks/SingleResponsibility
- Open/closed principle: https://github.com/HowProgrammingWorks/OpenClosed
- Liskov substitution principle: https://github.com/HowProgrammingWorks/LiskovSubstitution
- Interface segregation principle: https://github.com/HowProgrammingWorks/InterfaceSegregation
- Dependency inversion principle: https://github.com/HowProgrammingWorks/DependencyInversion
- Basic patterns
- Singleton: https://github.com/HowProgrammingWorks/Singleton
- Decorator: https://github.com/HowProgrammingWorks/Decorator
- Adapter: https://github.com/HowProgrammingWorks/Adapter
- Wrapper: https://github.com/HowProgrammingWorks/Wrapper
- Proxy: https://github.com/HowProgrammingWorks/ProxyPattern
- Factory: https://github.com/HowProgrammingWorks/Factory
- Factory Method: https://github.com/HowProgrammingWorks/FactoryMethod
- Object Pool: https://github.com/HowProgrammingWorks/Pool
- Strategy: https://github.com/HowProgrammingWorks/Strategy
- FSM: https://github.com/HowProgrammingWorks/Automata
- Metaprogramming
- Introspection: https://github.com/HowProgrammingWorks/Introspection
- Reflect API: https://github.com/HowProgrammingWorks/Reflect
- Reflection: https://github.com/HowProgrammingWorks/Reflection
- «Design Patterns: Elements of Reusable Object-Oriented Software» Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
- «Refactoring: Improving the Design of Existing Code Edition Unstated» Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts, Erich Gamma
- «Patterns of Enterprise Application Architecture» Martin Fowler
- «Clean Architecture: A Craftsman's Guide to Software Structure and Design» Robert C. Martin
- «Clean Code: A Handbook of Agile Software Craftmanship» Robert C. Martin
- «The Clean Coder: A Code of Conduct for Professional Programmers» Robert C. Martin
- «Designing Object Oriented C++ Applications Using The Booch Method» Robert C. Martin
- «Agile Software Development, Principles, Patterns, and Practices» Robert C. Martin
- «Agile Principles, Patterns, And Practices in C#» Robert C. Martin
- «UML for Java Programmers» Robert C. Martin
- «Working Effectively with Legacy Code» Robert C. Martin
- «Clean Agile: Back to Basics» Robert C. Martin
- «Clean Craftsmanship: Disciplines, Standards, and Ethics» Robert C. Martin
- «Functional Design: Principles, Patterns, and Practices» Robert C. Martin