The iteration speed of both: Software iterates quickly, while embedded systems have remained largely unchanged for decades. The STM32F103 from decades ago is still usable, and even the more advanced STM32H7 series frameworks are quite similar. The transistor technology has nearly reached its bottleneck, and the analog electronics learned decades ago are still relevant. Embedded software development continues to revolve around compiling C language in Keil, with the most significant change being the adaptation to domestic chips. The principles of microcontrollers have not changed much, making significant iterations in embedded systems rare.Embedded software generally refers to microcontrollers and Linux. Android development is typically categorized under operating systems, while FPGA and PLC are more hardware-oriented.A student from a training institution mentioned that out of 35 people in their class, only 10 ended up working in embedded development, making it difficult to enter the field. For embedded systems, it is essential to work on multiple projects. Even if one cannot get into embedded software engineering, hardware can be considered, as at the very least, one can work in hardware testing.Regarding education, if one is pursuing a computer science degree, only the embedded direction offers opportunities. Even if embedded software does not work out, there is still hardware. If hardware also fails, one can engage in hardware testing and operations. The software field is significantly more challenging. If Java developers cannot find jobs, they may end up in gig jobs (delivery, courier, driver), while embedded systems at least allow for designing hardware schematics, and if all else fails, one can work as a technician in a factory to make a living. Java developers who cannot find work may not know what to do next.For second-tier universities, embedded systems require a lot of foundational knowledge in the first year, competition in the second year, internships in the third year, and job hunting in the fourth year. The success rate is slightly higher than for Java, and some companies have a relatively high proportion of female employees. However, on average, one-third of third-year students cannot find internships and rely on their computer science degree to switch to civil service exams.If one simply wants to find a job, Java is a viable option because there are significantly fewer embedded positions compared to Java, and the learning curve for embedded systems is quite complex.Regarding the mid-life crisis, embedded systems are more age-friendly compared to the internet sector.In terms of salary, both fields are comparable. A few years ago, embedded systems did not pay as well as Java, but now they have caught up and are even showing a trend of surpassing Java. The embedded field is broader, with a higher potential for development, requiring more time to master industry and professional skills, while Java seems to have reached its peak.Working in embedded development offers a considerable salary level, often not inferior to that of Java engineers, and in many cases, it can be higher. Currently, Java still occupies a mainstream position, with a relatively higher demand for Java engineers. However, the entry barrier for embedded development is indeed not low, and the initial phase can be challenging. This is an objective reality. But once you get in, it is not as difficult as many think. Many functional modules already have existing code, so there is no need to start from scratch; you just need to follow the technical development manual to complete the configuration step by step. However, this is only within the scope of basic microcontroller development. To delve deeper, one must advance towards embedded systems and driver development, which requires higher technical capabilities. Java, on the other hand, is relatively easy to get started with in practical applications, primarily involving calling some encapsulated libraries, and usually, after one or two months of learning, one can participate in actual development. However, the salary at this stage is often lower than that of embedded development.The “Java 35-year theorem” is indeed enough to deter many, while in embedded systems, older professionals tend to be more valuable. Although entering embedded systems is harder than software, the development prospects are undoubtedly better than those in software. For instance, the current fields of new energy vehicles, smart homes, and the Internet of Things are all areas where embedded systems play a significant role.The internet industry has a relatively low entry barrier, and most majors can transition into it, leading to increasingly fierce competition. In the long run, embedded systems may be a better choice. One should consider their own situation; if they have worked on C51 or STM32 projects, it indicates a certain foundation. If one does not know much about Java, there is no need to hesitate; choosing embedded systems is also a good option.Embedded systems are more aligned with the manufacturing industry, while Java is purely in the internet sector. The salaries in embedded systems may be lower, but fields like Linux, RF, and FPGA can also offer considerable compensation.Embedded systems are unlikely to become the next Java in terms of saturation, at least not in the coming years. Those familiar with embedded systems know that they are closely linked to the Internet of Things. With the rapid development of IoT technology, the application fields of embedded systems are becoming increasingly broad, with embedded systems appearing in smart homes, automotive manufacturing, and chip design.