Learning Curriculum Guidance

Qualities and skills required to become an embedded engineer

I'm interested in embedded technology, but I don't know where to start...

The following is an explanation of what you need to prepare in your curriculum to learn embedded technology. The starting point is different for each individual.

Before that, I want you to know the depth of the embedded world...

A wide range of knowledge and experience is required to acquire embedded technology.
Beginners and inexperienced users in particular need knowledge and experience of electrical and electronic circuits and programming skills in the C programming language before starting to learn the core microcontroller. For those who are just starting out in embedded technology, it may be difficult to know where to start, so we will explain the curriculum for learning.

The following chart illustrates the qualities and skills required of engineers working with embedded technology. For beginners and inexperienced engineers, please keep this in the back of your mind for reference.

In my experience, this represents the ideal balance of qualities and skills that a professional embedded engineer should possess.

In practice, the most important qualities are "design ability and technical sense," which are not acquired by learning, but rather by making full use of wisdom through actual experience. Those who aspire to become embedded engineers should always be conscious of improving their "design ability and technical sense". These are probably the most important qualities for freelancers and other independent workers.

"Other technical knowledge and experience" is necessary to broaden the scope of work areas in practice to include not only electrical and electronic applications, but also machinery and controls, such as robotics. For example, in order to create applications in the field of mechatronics, design can only be done with an essential understanding of control engineering in addition to the mechanical elements of mechanical engineering. If you are skilled in microcomputer operation but leave the mechanical part to others because it is not your specialty, you will not be able to produce excellent products, and you will be halfway there as an embedded engineer. "Other technical knowledge and experience" is not essential for a beginner embedded engineer, but it is very important depending on the nature of the job.

"Programming (C language)" is an indispensable element that you cannot acquire embedded technology without this skill, but it is only a part of the tool in embedded technology in practice. It seems that the image of "programming" = "embedded system" is ahead, but what you can't do with programming skills only is that you can't do anything with only CAD operations in the mechanical design field. It is the same that you need a technical skill and sense to create.

If you are interested in embedded technology, please continue to expand your knowledge and experience in a well-balanced manner. To do this, first of all, you must be eagerly interested in everything, and when you have a question, dig deeper to understand it, and use it as a source of knowledge and experience.

Qualities required for embedded technology

Embedded learning using a teaching board

The qualities required for embedded technology have been described above, but beginners who want to learn about embedded technology should start by operating a concrete microcontroller rather than abstract technical concepts.

Embedded technology actually handles "things", so it is essential to have basic engineering knowledge and experience, including peripheral circuits composed of electrical and electronic circuits. The quickest way to learn is to acquire skills not only through theory on the desk, but also through hands-on experience with resistors, capacitors, diodes, transistors, and other components to configure small circuits. In order to check the operation of a circuit, you should be able to use a measuring instrument called a tester to check voltages and to turn a circuit on and off, i.e., to check for continuity or non-circuitry.

So how exactly do you operate a microcontroller?

STM32Nucleo board recommended for learning while electronics work designated for this site is used as the learning material in this site's introduction to embedded systems. This board allows you to use the microcontroller development environment described on this site as it is and to check the operation, so you can start learning in the shortest possible time.

Can I use other commercially available microcontroller boards?

If you want to start programming and microcontroller operation quickly, you can use other commercially available microcontroller evaluation boards for learning. I introduce several types of boards (with ARM core STM32F1xx series) on this site, but you can easily start learning microcontroller by using a board with a built-in debugger, such as STM32VLDISCOVERY.

However, depending on the board, the frequency of the mounted crystal oscillator may differ, and the pin specifications may differ depending on the type of microcomputer, so the program on this site cannot be used as it is and must be customized (ported). I recommend that you use the designated teaching material board before you get used to it.

The dedicated teaching material board introduced on this site has a built-in debugger, so as long as you have a USB cable, you can immediately start learning according to the curriculum. In addition, if you prepare a breadboard and resistors used for input/output interface at a minimum, you can try out various applications introduced on this site.

Also, it would be efficient to learn C programming at the same time by actually using the teaching material board once you have a certain overview of the C programming language.

In concrete terms, if you put off understanding the technical details until later, and for the time being configure a comprehensive development environment (STM32CubeIDE) and operating environment (terminal software tera term, etc.) that allows serial communication between the PC and the microcontroller, you can check the calculation results, etc. on the PC monitor. This allows for practical learning of programming that functions on a microcontroller. The development environment called "cross-environment" allows students to learn practical C language.

Learning C and microcontroller in the same environment/tools is practical and keeps me motivated!

Creating a program that functions on a microcontroller

Programming skill development is important because the final performance of embedded technology is an important factor that depends on how well the software is done. Programming skills improve as one becomes able to actually create software in embedded technology.

As you become somewhat familiar with the operation of microcontrollers, you will also need to acquire the qualities required for practical work as an engineer. In addition to microcomputer operation, this site explains the basics of embedded development and design in "Tutorial to ARM(STM32)[Effective method for ARM beginners]" in "Tutorial to ARM MCU for practical Use[Must-see for beginners]" so please refer to it and acquire the skills. 

Learning Curriculum Flow

Let's return to the study curriculum. Here are some guidelines for the order of study so that you can start learning according to your own current situation. The first prerequisite is that you are interested and enthusiastic.

Group Selection Chart

 Group A 
Technical knowledge and experience and familiarity with programming (C language)

 Group B 
Technical knowledge, experience and familiarity with programming, but no experience with C

 Group C 
Technical knowledge and experience, but no programming experience

 Group D 
Familiar with C language in programming, but no electrical/electronic knowledge/experience

 Group E 
Some programming experience, but no electrical or electronic knowledge or experience

 Group F 
Beginners with no technical knowledge

Group A-C: Technical knowledge and experience available

Those in Group A can start learning embedded technology right away and will find their skills in the shortest possible time if they follow the steps.
You can continue to learn at your own pace, focusing on microcontroller learning.

Those who belong to Groups B and C should start learning programming at the same time they start learning embedded technology on this site.
This site does not provide explanations of the C language, but you are encouraged to learn it through books and other means that suit your needs. You will understand more quickly if you study embedded systems in a concrete way, rather than learning programming in the abstract.

It may be tough to start with C, especially for those who belong to Group C and are complete beginners in programming, but please refer to other programming languages and search for C books for beginners to learn. Finding the right books and materials for you is another skill. As with anything, once you get a good start, the skills you acquire will follow in a steady stream.

Please put off the areas that can easily trip you up, such as pointers used for memory operations, etc., and just make sure you understand the basic structure of the C language and the basics of the basics.
To increase the efficiency of learning, it is also recommended to learn programming at the same time by actually using dedicated teaching materials once you have a certain overview of the C programming language.

Group D-E: Experienced in programming

When people in Group D begin embedded technology, they must begin their studies with an awareness that they will be dealing with actual hardware, not just programming-only software. The first step is to get to know the hardware, but it is very important to have a solid understanding of basic engineering knowledge. In particular, to handle the circuits around microcontrollers, knowledge and experience in electricity and electronics are necessary.

You can understand the basics in the "Basics of Embedded Technology" section of "Tutorial to ARM MCU for practical Use[Must-see for beginners]"on this website, but if necessary, please broaden your knowledge by yourself and familiarize yourself with electric and electronic circuits by actually touching the circuits.

Those in Group E, like those in Group D, should start with a solid understanding of basic engineering fundamentals and become familiar with the C language at the same time. It is a shortcut to learn about microcontrollers, which are the core of embedded systems, after you have become somewhat familiar with the technical aspects.

Group F: Beginners with no technical knowledge

It is difficult for those in Group F to suddenly understand embedded technology, especially microcontrollers. Since basic knowledge and experience are necessary for everything, please start by learning about electricity and electronics. The electrical and electronic circuits used in embedded systems are at a level that can be understood by those who know electrical circuits learned in junior high school.

The "Basics of Embedded Technology" section of this site's "Tutorial to ARM MCU for practical Use[Must-see for beginners]" explains the operation of actual circuits by combining the basics, so you should be able to understand it if you follow the steps in order. I think you should start programming at the same time, but it may be too difficult to start with C language.
Regardless of the language, it may be a good idea to start C programming when you have some understanding of what programming is all about.

The program has a clear goal of mastering embedded technology, so I believe that students will be able to learn in a concrete, rather than abstract, manner. There are abundant program examples as applications, so please refer to them. The program is simple, so once you get used to it, I think you will be able to progress rapidly.

Embedded technology requires both engineering electrical and electronic knowledge and experience as well as programming, but since it is a technology that deals with hardware as objects, emphasis should be placed on acquiring technical knowledge and experience with electrical and electronic circuits.
Programming is not the main focus of this course, but rather is an adjunct to these technologies.

Curriculum Guidance Summary

The process of acquiring embedded skills

To be able to take advantage of embedded technology to create applications for real work, it is not enough to simply operate the microcontroller, the core part of the technology. What is important is to acquire the design and development skills to realize a given application task.

The design and development skills are explained in detail in "Embedded Design and Development" in "Tutorial to ARM MCU for practical Use[Must-see for beginners]". This is software design through programming. Once you have mastered the use of a microcontroller, you should be able to balance these skills freely. These are important elements that are not related to the type of microcontroller, but are essential skills.

In realizing an application task, it is the quality of the software that ultimately determines performance. To take advantage of this, programming skills that fully utilize the performance of the microcontroller will be put to the test. Please improve your skills through experience.

By this stage, you may feel confident that the skills you have acquired will allow you to create applications in a somewhat broader range of fields. We hope that you will continue to expand your field of activity by honing not only your skills but also your sense of style.