- Programming fundamentals - Be comfortable in at least one language such as Python, Java, JavaScript/TypeScript, maybe even C++
- Data structures & algorithms - Arrays, strings, hash maps, stacks/queues, trees, sorting/searching, and basic time/space complexity.
- Testing - Writing basic unit/integration tests and understanding why automated testing matters.
- APIs & databases - Basic REST/HTTP concepts, JSON, SQL, and CRUD operations are useful.
Command line/Linux basics - Navigating directories, running programs, managing files, and using common terminal commands.
- Git & GitHub - Commits, branches, pull requests, merges, and resolving simple conflicts.
- Debugging - Reading error messages, using a debugger/logging, reproducing bugs, and narrowing down causes.