Based on a Reddit post in /r/embedded. Every so often this question comes along. While I base this list on my own experience, I still think people would learn a lot if they follow it. Most people who know some C and C++ can do this and it has a lot variation. You get to