I am often asked – typically by young engineers and college students – how to learn about doing embedded software. It is a fair question. Although there are some good college courses around nowadays, they can still be hard to find.
So, how do you acquire the specialist skills needed to develop software for embedded systems? …
There are, of course, many possible ways to learn stuff:
- learning on the job
- commercial courses
- online resources
- technical conferences
As I said before, learning at college may be difficult, so many engineers pick up the skills on the job, starting with an electronics or computer science background. An intelligent engineer can learn a lot from more experienced colleagues. Indeed this is largely how my own career started and I have mentored quite a few younger guys who had come out of college with few clues.
There are a few companies [a particularly fine example is in the UK - email me if you want details] that offer specialist classes in many aspects of embedded software. Obviously these cost money, but if you would rather be taught than do self-study, it may be a good investment.
Books are an obvious option. Search Amazon for “embedded” and you will get a limited number of hits, but there are some good ones out there – even if I would naturally recommend my own work. An excellent new book has just been published and I have a copy on my desk awaiting my review – watch this space. If you are impatient for details, again email me.
Of course, for many [most?] of us, the answer to almost any question is found on the Internet. There are numerous online resources for learning about embedded programming. There are obviously many documents, but also presentations of various kinds. Commonly, companies run Web seminars ["webinars"] covering all aspects of embedded technology. These are best attended live, when there is often the chance to pose questions, but commonly recordings are available after the event – Mentor Embedded has a large library of webinar recordings.
Another rich source of information is technical conferences. Most are run quite strictly, banning avoid sales pitches, so that attending is a true learning experience. In the US, the biggest embedded conference is Design West [a.k.a. ESC West], which took place recently in San Jose, CA. Sadly, the equivalent event on the East Coast, Design East, which has normally taken place in Boston, has been canceled. Both ARM and Freescale have dedicated events, which have a large embedded software content. In Europe, Embedded World took place in Nuremberg, Germany earlier in the year and that is the biggest event of its kind. Smaller events will take place in Sweden [ECS] and Germany [ESE Kongress] later in the year. Some conferences are not dedicated exclusively to embedded, but have a comprehensive track on the topic. Examples include the Electronic Design Show [Coventry, UK] and IP-SOC [Grenoble, France].