Embedded C is the key skill required for getting software development job in computer architecture domain AKA Embedded system software. This is one of the major reason for failure in interviews. You may check article Which programming language I should learn ?
Embedded system technical interview can have two major sessions:
- Coding Skill
- Debugging skill
Which is important coding or debugging ?
Here is the outcome of survey done at Linkedin :
Actually coding skills can be developed by practice but debugging skills can be learned through practical experience only. Additionally, debugging requires knowledge of coding as well. One has to go through various libraries , macros, function APIs, compiler, assembler and linker relates issues. That is possible with good coding skills only.
How to develop coding and debugging skills ?
You may notice from the survey given below that most of the embedded professionals have gone through simulator, evaluation boards and custom boards.
Lets try to understand all these options :
- Simulator – There are various types of simulation methods are used in embedded system development. For example : Instruction set simulation, circuit simulation, system simulation, model simulation etc. One can use instruction simulator of Keil IDE to practice Embedded C basics. Similarly QEMU can be used for system level programming. If the goal is to learn bare-metal programming, simulator is not a good choice because you will miss lot of practical learning aspects. However if your goal is to learn system level programming, QEMU can be used.
- Evaluation boards or reference boards are preferred as compared to Simulators. Semiconductor companies and their partners provide evaluation boards along with development eco-system. One can setup this development environment within minutes. Since these boards already come through production so software developer don’t have to put efforts in hardware debugging. This can be second stage after simulation based learning.
- Purchase STM32 board
- Custom boards are designed for specific purpose and require experienced folks in design process. Both hardware and software developers will have to go through debugging cycle i.e. board bring-up process. One can get this opportunity in job for a specific product development. This board bring-up process may provide lot learning.
How Embedkari can help in learning Embedded System ?
After success of our online Embedded Developer Kit course, we are launching hybrid model to cover offline expectations as well. Offline EDK students will have access to a variety of evaluation boards . Most popular bare-metal boards are from ST and TI . In addition to those ESP32, Nordic , Raspberry Pi, Nuvoton, NxP etc.
Will this program help to students planning for MS?
There are many MS students in our existing Embedded developer kit course so we are adding many practical oriented concepts in EDK – premium course. If you are planning for MS , read this article “How should I prepare for starting a Master degree in Embedded systems ? “
Why Embedded Developer Kit- Premium ?
This course is created considering two aspects :
- Students or working professionals don’t have to wait for relocation. They can start course online first. This will reduce their cost of living in Bangalore.
- 15 offline workshops will be conducted to take care of additional projects or anything missed in online training.