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