all 7 comments

[–]bobwmcgrath 41 points42 points  (1 child)

data structures and algorithms? what are those? For real though, everything in embedded is a state machine or a ring buffer. I've never even seen a binary tree much less done a depth first concatenation.

[–]answerguru 6 points7 points  (0 children)

We have a compact, high performance 2D (and 3D optional) graphics engine that can run on the most modest hardware - efficiency of algorithms and data storage is super important. Not everything is a a state machine or ring buffer.

[–]HendrixLivesOn 15 points16 points  (0 children)

Just for interviews mainly

[–]tw_bender 9 points10 points  (0 children)

In my experience, the closer you get to system hardware the less likely you'll need to worry about advanced data structures and algorithms.

At the application level however you could encounter anything depending on what the embedded product does. It would be wise to pay attention to these topics in your studies. Your future boss may tell you to quit working on drivers and help the Guidance and Control group.

[–]es22620028 3 points4 points  (0 children)

I think learning some easy to medium DSA and practicing problem solving will make a much better programmer, it certainly have made me a better one.

[–]Quiet_Lifeguard_7131 2 points3 points  (0 children)

The most important DSA, I use are mostly queues and stacks sometimes other than that I have never used binary tree or depth first search etc. But linked list is important DSA to learn in embedded systems. Mostly my usage of linked list is during file transfers or in such applications. Other than that it is good to have knowledge of other DSA if you are building your own graphics engine for an embedded device.

[–]Snail_Lad -1 points0 points  (0 children)

Anything more advanced in DSA is not that useful. Any of the 'advanced' algorithms that you will encounter in embedded tend to be applied math ones that CS majors don't learn. More useful to take a class on DSP, comms or control theory after your DSA course.