Suggestions for Learning Embedded C Programming
Asked by
TechieTurtle29
I'm a 23-year-old who has a decent grasp of higher-level programming languages and I've spent a lot of time with web development using Rails, CLI work, and Linux. However, I've never studied programming in a formal setting as I went into the trades instead. I really enjoy creating things and find that developing embedded firmware requires knowledge of C or a low-level language, which I'm now trying to learn. But honestly, I'm feeling overwhelmedโterms like stack, heap, push, macro, and hexadecimal are throwing me for a loop! I would love some recommendations for good starting points to learn embedded-focused C, ideally from someone with experience in programming microcontroller or SoC firmware. Thanks for any guidance!
Answers
You're on the right track, but the first step is to become really comfortable with the C programming language itself before diving into embedded systems. Itโs like trying to understand quantum mechanics without any mathโit's just going to frustrate you! Once you've got a solid grasp on C, you can start tackling embedded programming more effectively.
Reply to this answer
Since you have experience with Java, why not leverage that? Try building your own stack data structure in Java to understand the stack vs. heap better. You can also create a tool that converts between different numeral systems, like decimal and hexadecimalโthis will help clarify those concepts as you move to C! Focus on one topic at a time, and build your knowledge gradually.
Reply to this answer
Iโd recommend starting with learncpp.com to cover the foundations applicable to both C and C++. Once you're comfortable with manual memory management and similar concepts, you'll be better prepared to tackle the design patterns specific to embedded programming.
Reply to this answer
Donโt forget to explore forums and subreddits dedicated to C programming and embedded systems. Places like those often have great resource lists in their wikis that could really guide you in your learning journey!
Reply to this answer
Check out the 'Embedded-engineering-roadmap' on GitHub! It really helps in structuring your learning path. Also, I found the FreeCodeCamp series on pointers quite helpfulโit's around 4 hours but it's a good dive into the basics you need.
Reply to this answer
Add your answer
Answers are reviewed before publication.
EmbeddedEagle05: Exactly! If you're struggling with concepts like hexadecimal now, take the time to master C first.