Today, I would like to share a question from a follower: As a first-year communication student in a private university, I only have a basic understanding of C language and am interested in pursuing embedded development. Should I start with STM32, 51, or Linux?
Next, I will share the specific question from the follower and my response, hoping to provide some inspiration and help to others in similar situations.
Student’s Question:
Hello, I am a first-year communication major at a private university, currently in the second semester. I am following the school’s curriculum and only have a little knowledge of C language. I have thoughts of pursuing embedded development in the future, but I am not very familiar with the work in embedded systems or the future job prospects. Should I focus on STM32 or learn Linux? Right now, I am unsure of what I can do and feel a bit lost.
Yt’s Response:
As a communication major in a private university, I believe this educational background may not provide an advantage in your future development path. At this point in your second semester, it is indeed important to establish a goal for graduate studies early on. If you truly want to pursue this path, it is essential to improve your educational qualifications to ensure a stable and long-lasting career in development. I must emphasize that you should aim for a higher degree. You might think, “Can I not find a good job with just a bachelor’s degree?” I understand your mindset, and it is not that a bachelor’s degree cannot lead to employment, but rather what can you do with it? For instance, if you are interested in microcontrollers and want to work with the 51 architecture, I must tell you that your ceiling may be limited to manufacturing industries like Gree, Midea, or Haier, which might already be the upper limit. However, if you have a better educational background and learn Linux, you will have much more room for imagination, and your entire career starting point will be different. Of course, this does not mean that companies like Gree and Midea are small; they are indeed very large. However, regarding their products, do they require Linux? Some may not. For example, does a dishwasher or an air conditioner need Linux? Certainly not. Many friends might wonder, “Can I not work in such companies?” You certainly can, but you will find that if you choose to work in software, for instance, developing software for air conditioners, the focus may not be on research and development but rather on production and manufacturing. Therefore, I advise you to prioritize improving your educational qualifications and aim for a good graduate program; this is the most urgent matter for you to ensure a longer and more successful journey in this field.
Currently, you are just following the school’s pace and have only learned a bit of C language, but you want to develop in the embedded direction. I believe that at this point in your second semester, you can refer to our previous answers to see what outstanding first-year students look like. It is not that following the school’s curriculum will guarantee a good outcome. Even if you excel in C language and your communication courses, you may still find it difficult to secure a job. What does this indicate? You need to understand that what you learn in school, such as what your C language teacher teaches, may not be practical. If your teacher has never worked in the industry or has no development experience, they might not provide you with the real-world application of C language. If you follow the school’s path, even if you meet your teachers’ standards and achieve high scores, you may still struggle to find a job.
You have thoughts of pursuing embedded development, but you are not very familiar with the work and future job prospects. I believe you do not need to understand too much at this stage; it is not necessary to delve into complex details right now. What you can do is set a goal for graduate studies and, during your undergraduate years, try to develop one or two products, whether using the 51 architecture or Linux. This will help you understand how to use technology to solve real-world problems, which will make a significant difference.
Next, let’s discuss the concepts of STM32 and 51, as well as learning Linux, since you are currently unsure of what to do. For now, focus on mastering Computer Science 408. I have previously organized study materials for Computer Science 408, which you can refer to for guidance on what to do after learning data structures, operating systems, computer networks, and computer organization. I believe you can use that as a reference. At this point, I suggest you set a goal for graduate studies. (If needed, you can obtain a clearer version at the end of this article.)

Most Direct Advice:
Your most important task now is to prepare for graduate studies to enhance your qualifications while also self-learning practical development skills. Do not just follow the school curriculum; that is not enough for job hunting. The Linux path is more promising than STM32, but building a solid foundation is crucial at this stage.
Appendix: Latest learning paths for advanced Linux C/C++ full-stack development (you can obtain a clearer version below):
Computer-related majors: Employment/Job Seeking/Learning Paths/Offer Selection/Career Planning Advice/Study Material Acquisition
Add WeChat: yt558998 Note【Public Account】
