I've been working in embedded development for a year now, and I feel like I'm finally ready to share some thoughts with you. Many of you might have felt the same frustration I did at the beginning—wondering what to focus on, how to grow, and where to start. That's why I decided to write this down, not just for others, but also as a way to reflect on my own journey. It helps me identify my weaknesses and clarify where I want to go next.
First off, the IT industry is all about continuous learning. Unlike other fields, we're constantly exposed to new tools, languages, and technologies. For example, if you're into programming, one language can easily become obsolete. If you work on system development, different OSes will challenge you. And if you're dealing with the hardware side, you'll need to understand assembly, chips, and instruction sets. Even within the same field, compilers, tools, and software/hardware knowledge can be overwhelming. A lot of the time, it’s just a matter of reading books or asking questions on forums like 21ic.
The embedded industry, in particular, is even more dynamic. Standards are often inconsistent, and technology changes so fast that what's popular today might be outdated in two years. Think of examples like Symbian, Nokia's decline, or Intel's Meego. Now, Android is hot, but who knows where it’ll be in five years? Staying up-to-date is a real challenge.
That’s why many say the IT field is “youth-oriented.†It’s not an exaggeration. As you age, it becomes harder to keep up with the pace.
So, what kind of talent does the embedded industry need?
Looking at job postings, the requirements often fall into two categories: general and technical. General skills include things like education, experience, creativity, stress resistance, hard work, communication, and a serious attitude. These are pretty standard across companies.
On the technical side, though, the list is long. You’re expected to be proficient in control theory, circuit design, hardware drivers, Linux kernel customization, C/C++/Java, DSP, ARM, various OSes (like Linux, Ecos, uCOS, WinCE, VxWorks), embedded databases, multi-threaded programming, network protocols, bus protocols, mobile platforms (Symbian, Android, iOS), assembly, compilers, binary tools, media formats, codecs, communication tech, hardware schematics, PCB design, computer architecture, bootloaders, and much more. It feels like you need to know everything in the field, which can be overwhelming.
After seeing such a long list, do you feel your head spinning? That’s normal. But when you break it down, most of these skills are just layers of embedded development. From a technical perspective, embedded systems can be divided into two types: simple ones without an OS and complex ones with an OS. The latter is the trend nowadays.
From the bottom up, there are four main roles in embedded development: hardware engineers, driver developers, system developers, and software developers. Each has its own set of skills and responsibilities.
Hardware engineers need to be familiar with circuits, components, and design tools like Protel, PADS, or Cadence. Driver developers should understand the target platform’s hardware and OS, and be able to port and debug drivers. System developers must know OS principles, memory management, and be capable of kernel configuration and porting. Software developers, on the other hand, work closely with APIs, use C/C++, and may deal with GUIs, networking, and multimedia.
There are also some common skills needed across all roles: familiarity with Linux environments, shell scripting, version control (like SVN or Git), data structures, algorithms, and programming languages like C or C++. Understanding operating systems and computer architecture is also crucial.
Beyond that, some additional skills can be useful, such as knowledge of communication protocols, audio/video processing, information security, and even basic database handling.
In my experience, many job postings seem overly demanding. Some require skills that would take years to master. It can be discouraging, but it also pushes me to keep learning. Sometimes, I wonder if the expectations are realistic or if companies are just looking for superstars.
For programmers, the journey is tough. There are plenty of complaints online, showing the emotional and physical toll of the profession. But if you're passionate and determined, keep pushing forward. One day, you might look at a job posting and think, “I can handle this!†That’s when you truly become a big shot.
Vertical advertising player,Floor-standing advertising all-in-one,Smart digital signage
HuiZhou GreenTouch Technology Co.,Ltd , https://www.bbstouch.com