Word Count: 8000
Many beginners, and even veterans with several years of experience, complain about the fierce competition in the electronics industry. Feeling dejected only kills their passion; without passion, working in electronics is a waste of life. Is the competition really that fierce? Compared to other fields, isn’t the competition in business and management just as fierce? In this society, every field and industry faces competition.
How to Learn Microcontrollers Well?
After Learning Programming, How to Transition to Microcontrollers?
Are ARM, DSP, and Other Main Controls Difficult?
What is Embedded Software?
Discussing PCB Design
Currently, embedded development is leaning towards intelligence, which we refer to as smart hardware (hardware + software). This is evident from the various cutting-edge embedded products. A trend in embedded product development is a greater inclination towards automated control and human-machine interaction, rather than emphasizing algorithms. It’s essential to distinguish yourself as an embedded engineer rather than an algorithm engineer; terms like “artificial intelligence,” “AlphaGo,” “deep learning,” and “neural networks” don’t require deep understanding; those are the domains of graduate and doctoral students. The author doesn’t imply a lack of capability; rather, “specialization leads to excellence.” This is not the workload of an embedded engineer; instead, your job is merely to interface with the “cloud brain” and call their APIs. With the rise of advanced disciplines like artificial intelligence and big data, many question, “Does embedded still have prospects?” I can confidently state that “embedded has excellent prospects; cutting-edge embedded technologies are about to rise or have already risen.” Indeed, artificial intelligence and big data may impact embedded systems, and currently, fewer students are inclined towards embedded studies compared to previous years. However, a reduced number of scholars does not equate to decreased demand or declining salary levels; in fact, the current trend in embedded technology is towards integration with intelligent disciplines. For example, in the case of Baidu robots, the core of the robot is the brain, which consists of “data and algorithms.” However, for a robot’s brain to enable it to move like a human, speak, and walk freely, embedded technology is essential. This illustrates my point about the application of embedded systems combined with intelligent disciplines; in the long run, embedded systems will only grow in popularity, and the rise of intelligent disciplines will inevitably foster the development of new embedded technologies.
Comprehensive Skills for Embedded Development
In 2020, Two Must-Know Skills for Embedded Development Engineers
1. Programming Languages
When we talk about writing code that runs around hardware layers, the most frequently mentioned is C language. 25 years ago, transitioning from assembly language to C language was a slow process with high demand. If you want to enter the embedded programming field, C and C++ should still be your primary focus in 2020.
If you want to try embedded programming, you can start with the following:
-
https://www.learn-c.org/
Learn-c.org is a personal project by Ron Reiter. Although it’s not directly related to embedded systems or hardware, it’s an excellent starting point for learning C language.
-
Buy a Microcontroller
In my personal experience, hands-on practice is the best learning method. You can buy a microcontroller to interact with hardware and see actual results, which is what you should focus on. You can purchase popular processors like Arduino and start with a small project to truly understand how hardware works.
-
Read Books and Documentation
Reading books and documentation is a crucial learning method. You can select books based on your chosen direction (embedded systems, firmware development, driver development, etc.).
Aside from C/C++, there aren’t any programming languages that have truly captured a significant market share in this field, but the following emerging languages are worth noting:
Rust
This year, I must prioritize learning Rust. Rumor has it that Rust is developed from C, and it will widely replace C in various application areas. Rust is rapidly developing in the embedded field. Comparing the number of questions related to C, Rust, and Assembly on StackOverflow, we can see that the number of questions about Rust surpassed those about Assembly in 2019, while C has declined slightly over the past few years.
Rust has several advantages over C, one of the most significant being memory safety. Medium has many articles discussing Rust; reading them will help you understand its advantages. Additionally, Rust can run on many microcontrollers, and this GitHub repository compiles a wealth of information (https://github.com/rust-embedded/awesome-embedded-rust).
If you want to learn Rust, I highly recommend visiting the Rust homepage (https://www.rust-lang.org/). This site provides a wealth of introductory documentation and tutorials. There’s also the book “The Rust Programming Language,” which is an excellent starting point. The Rust site offers specific guidelines for embedded applications (https://www.rust-lang.org/what/embedded), which can help you understand Rust programming on embedded devices.
Golang
Golang? Golang! The potential of Golang exceeds your imagination. Currently, it mainly operates in user space, replacing backend languages like Ruby or serving as user-space applications because it has excellent multi-processor support.
However, I believe Golang will gradually enter low-level programming. It’s currently being used in firmware development for bootloader development. As embedded devices continue to increase in RAM, ROM, and Flash capacity, it may eventually run on embedded devices. For every embedded system programmer, Golang is definitely worth a try, and those interested in firmware development must learn Golang.
Leave a Comment
Your email address will not be published. Required fields are marked *