Technical Skills
β Non-Technical Skills | Next: 2.1 Programming Principles β
There is evergreen technical knowledge that is relevant for any software engineer, despite the specific area in which they are going to be working on. If these foundations are solid, they will probably be able to learn the specifics needed for any particular case without problems.
Sections
| # | Section | Description |
|---|---|---|
| 2.1 | Programming Principles | Control flow, Boolean algebra, OOP, SOLID, GRASP, functional programming, declarative vs. imperative |
| 2.2 | Data Structures | Basic structures, caching/memoization, stack vs. heap |
| 2.3 | Clean Code | Naming, self-documenting code, SemVer, code comments, composition over inheritance, TDD |
| 2.4 | Source Code Management | Version control, micro commits, conventional commits, branching, dependency hell |
| 2.5 | Technical Collaboration | Code review best practices, pair programming |
| 2.6 | DevOps Practices | CI/CD, build automation, test pyramid, feature flags |
| 2.7 | Language Theory & Low-Level | Compiled vs. interpreted, type systems, regex, lazy loading, profiling, concurrency |
| 2.8 | Field-Specific Knowledge | Front-end, back-end, architecture, infrastructure, security |