Related: Concepts MOC
Summary
To level-up your actual coding skills/knowledge, you need to learn tangential skills.
1. Code in a low level language
take your knowledge of programming (python, etc.), and go learn how to learn in a more computer-based (“low level”) languages. Learn C!
C requires you to learn memory management and writing safe (i.e. bullet proof) code
it requires you to think of your code defensively, and you go with this mindset when looking at other people’s code, and learn documentation pages
teaches you about computers at a high level
2. Learn an Assembly variant
allows you to see performance impact of code, which gives you a major advantage while writing
3. Basics of reserve engineering
teaches you fundamentally how things work AND how things are engineered = what the output of the compiler
think of this in the way of spiral learning, step-by-step of adding a small tool in your toolbox
crackmes.one for reverse engineering challenges
4. Pick up a board and run code on a board
write the code and run it on the board, to really understand how to code is going to be pushed to the board, and how it will act on an external server