Recently, while chatting with fans on Bilibili, I found out that one of them had worked at a small company for three years after graduation, doing QT development, earning only 7000 RMB per month. Now, the new graduates the company hires have starting salaries of 8000 RMB. He asked HR why the company has such arrangements now. The HR’s response was:“It is very difficult to hire good fresh graduates now. If the salary offered is low, they will choose other offers. The salary inversion phenomenon is very common in the market.”
Especially in the past two years, embedded systems have become increasingly popular, and more students are choosing the embedded direction. Companies also have higher requirements for job seekers.A qualified embedded development engineer needs to possess the following skills:
-
Proficient in C/C++, with a personal understanding of the memory management mechanism of the C language;
-
Master essential data structures and common algorithms, and be able to apply them proficiently in project development;
-
Have experience with operating systems, such as Linux or RTOS, and be able to debug code proficiently in development environments like Linux;
-
Familiar with network communication and serial communication, and have experience in TCP programming;
-
Have been exposed to one or more hardware platforms, such as STM32 or ARM Cortex A.
So the question arises, how can one quickly master the above skills and break through to an annual salary of 300,000 RMB?Combining years of experience in the education and training industry, I have summarized a learning roadmap suitable for beginners, progressing from basic to advanced, from software to hardware.No matter if you are a student majoring in automation, communication, computer science, electronic information, mechanical engineering, or a working professional looking to switch to embedded or software development, you can take a look.C LanguageThe C language is the key to learning. With a solid foundation in C, all subsequent modules will go smoothly.When learning C, remember not to stay on the surface. For example, if you ask many students about the role of the const keyword, they will immediately reply, “It modifies constants.” This is a common misunderstanding about the const keyword; accurately speaking, it is called “read-only variables.”When learning C, not only should you understand common keywords, but you should also master pointer usage fluidly, especially various advanced pointers:pointer arrays, array pointers, function pointers, pointers to pointers, etc., as these are key topics often tested in written exams.Our requirement for students is to accumulate at least 5000 lines of code after learning C.AlgorithmsDo embedded developers need algorithms?Many students may have this doubt!Learning embedded development requires a foundation in data structures and algorithms.Embedded development can no longer remain stuck in the old mindset of designing circuit boards. Today’s embedded devices are becoming increasingly intelligent, and embedded development has also been subdivided into many directions, such as embedded hardware and embedded software.Embedded software is programming based on hardware, and as software becomes more complex, the requirements for data structures and algorithms are also increasing.As an embedded engineer,basic data structures such as linked lists, stacks, and queues must be mastered,even just to handle written exams, and one must digest common algorithms.For example, a certain company has the following requirements for embedded software engineers:
Image source: InternetLinux/RTOSOperating systems play an increasingly important role in embedded devices.With the continuous development of smart hardware, AI, etc., bare metal can no longer meet the development needs at the edge. If the resources on the embedded side are limited, RTOS will be considered;common ones include FreeRTOS, RT-Thread, etc.; if the embedded side has sufficient resources and the functionality is relatively complex, Linux systems are more likely to be considered.Learning Linux generally includes the following aspects: file programming, process control, inter-process communication, multi-threaded programming, and network programming (TCP, UDP).A certain company has the following requirements for Linux developers:

Image source: InternetC++Is it necessary to learn C++ for embedded learning?First, from the perspective of C++ applications in embedded systems, as an embedded engineer, one can learn C++.The most typical application is QT, an open-source embedded graphical interface library.Many embedded devices now use QT for their interfaces.Secondly, from the employment perspective, C language written exam questions are unavoidable for all embedded engineers.Many C language questions will be tested in conjunction with C++, so learning C++ gives an advantage in written exams.Finally,learning C++ can help better understand C,for example, memory management and forced type conversion in C have all been optimized in C++.51 MicrocontrollerThis is definitely a strong point for automation students; they start to get in touch with the 51 microcontroller in their sophomore year. It is considered an entry-level chip for competitions.However, mastering only the 51 microcontroller is far from enough; it has limited practical applications and average performance, and cannot solve complex problems.STM32High-end microcontrollers, such as those commonly found in smart hardware, have the shadow of STM32.STM32 is widely used, has stronger performance, and mastering STM32 can definitely land you a good embedded development job.When learning hardware, in addition to basic GPIO, interrupts, timers, and serial ports, there are various protocols, such as IIC, SPI, etc.ARMHere, ARM refers to processors that can run Linux.At this stage, you will come into contact with cross-compilation, UBOOT, kernels, and file systems; this is true embedded development.To help everyone quickly solidify their foundations and accumulate project experience, after years of accumulation, Xueyide has launched the“Full-Stack Development Course for Embedded Engineers”, where frontline engineers share their knowledge to help you improve your practical skills.The course content covers both software and hardware,from embedded low-level to embedded applications, project-oriented, helping you comprehensively enhance practical skills.Course Outline



How is the course quality?
To let more students understand the course quality, the C language part and the QT part of the course have been specially made available on Bilibili as trial classes,and currently, the total view count of various accounts has exceeded 10 million, receiving a lot of positive feedback. The eyes of the public are sharp!



What services does the course include?
1. Teaching videos and supporting materials:Source code, courseware, blackboard notes, teaching notes, resume templates, e-books;2. Accompanying learning services:Instructors online to answer questions all day, arrange learning tasks, supervise learning progress; project practice + written exam training conducted simultaneously;
3.Providing development kits:51, STM32, and ARM, all worth thousands, given for free;4. Employment guidance:Providing employment guidance before employment, customizing resumes for each student; after each interview, the instructor helps summarize and review until an offer is obtained.
Online learning, unlimited viewing
Small investment, high return
Long press the QR code to sign up ▼



We invite you to learn embedded development
1. University students majoring in related fields
As long as you are majoring in a computer-related field, such as communication, automation, mechanical engineering, or electronic information, you can learn this course. Only by mastering a skill can you secure an offer in the harsh employment environment.
Currently, over 50% of our students hold master’s degrees, and the course quality is evident!
2. Graduates looking for jobs
Give yourself four to five months to build a solid foundation and accumulate project experience before job hunting.
3. Switching to embedded development
If you find that your current job has reached a bottleneck, consider trying a different direction. Mastering a technology will never go out of style.
Online learning, unlimited viewing
Small investment, high return
Long press the QR code to sign up ▼
