Ao invés de sugerir para quem está iniciando em programação conceitos complicados de entender/aplicar como TDD, SOLID, GRASP, Object calisthenics, DDD, Event Driven.
Sugira conceitos fundamentais e com escopo menor como imutabilidade, complexidade ciclomática e funções puras.