The foremost thing for any beginner who is willing to make a career in Embedded Systems is to understand the complete ecosystem of Embedded Systems and its current day demands. Only by understanding these issues they can clearly know the skills that they would need to master to make an impactful career in this area.
During our counseling sessions here we have seen that most fresh engineers blindly choose embedded systems as they believe that it is a highly rewarding career or their relatives or seniors suggested them to do so. I’m not worried about this, but what worries me is that these fresh engineers do not have a clue on what skills they need to learn to fully understand the current day embedded systems needs, its industry and markets.
So let us first look at the current day embedded system or more specifically the current day embedded gadget and relate to the skills which are needed today.
Current day embedded gadgets are SMART
Unlike old times where microcontroller based embedded devices used to do dedicated tasks, consumers today need embedded devices that are more smarter and capable of doing multiple jobs. Just look around and see for yourselves, your mobile, TV, set top box, smart TV, navigation systems etc, aren’t they doing more than what they were traditionally intended to do?
Now if you can see this you will easily understand that the skills that you need to succeed as an embedded engineer is much more than just learning how to hard-code your microcontrollers, which unfortunately most training institutes are offering as embedded system courses.
So you need to understand that current day embedded devices cannot be just dedicated systems running on memory constrained microcontrollers, but devices which can run multiple applications, which have more memory, where devices are more reusable, faster, with more software updates, stable and so on. So do you now think that just learning Embedded C and microcontrollers will help?
Why learn an OS (Linux)?
I regularly find students asking me what is the role of Linux in embedded systems and even bad, I have students questioning the role of Linux in embedded systems as they perceive that it’s all about learning Embedded C and microcontrollers.
As you might have realized that smarter embedded systems should have multiple functionalities and to have multiple functionalities you need to have a stable operating system running, which can host these multiple functionalities (applications), now don’t you think that the need to learn an OS is justified. Just look around at some of the current day embedded devices like your Android phone, Smart TV, Digital set-top boxes etc. do you know that all these uses Linux as their host OS and all the functionalities are delivered through it.
The Saddest part
The saddest part is that most embedded systems training institutes are still clinging on to Embedded C and microcontrollers, and students are under the impression that those are the most important skills to learn. We are not denying the importance of it, but very clearly suggesting that those skills are narrow and legacy and at the most can help you get small embedded systems jobs on microcontrollers, which will surely make your career stagnated and monetarily less rewarding.
And this is proved beyond any doubt, because most of the participants who enroll for our professional course on Linux drivers and embedded Linux are working people from the microcontroller industry, who are unable to upgrade their career in the field of modern day embedded systems.
So the key is to master core programming skills using C, writing driver software for new devices, knowing an OS threadbare and learn how to use the OS for any requirement, be it embedded systems, real-time systems or general purpose systems. Once you understand these aspects fully I promise you that you can do just about anything, not only in the field of embedded systems but on any core/non-core programming area as well.
So look out, understand what you need to learn and then start learning
Become deserving and make a strong career, Cheers.