Planning a Learning Path for Transitioning from C++ Desktop Development to Audio-Video or Embedded Systems

Today, I would like to share a question from a follower: I am currently in my third year of a master’s program at a 211 university and have received an offer for C++ desktop application development. I plan to work in this position for a maximum of 3 to 4 years, after which I want to transition to audio-video development or embedded systems. I feel that my C++ skills and algorithms are quite solid, and I have been maintaining a habit of practicing algorithm problems in my spare time, often reviewing previously solved problems. I plan to study C++ audio-video development or embedded development in my spare time while also reinforcing my knowledge of Qt. Therefore, I would like to ask for guidance on the learning paths for Qt, audio-video, and embedded systems, if you are available. Additionally, I would like to know your thoughts on C++ audio-video development and embedded development in terms of salary, prospects, and the “35-year crisis”; which one do you recommend or have more confidence in?

Question from the student:

Hello, senior. I am currently in my third year of a master’s program at a 211 university and have received an offer for C++ desktop application development. Many friends are curious about which positions are easier to secure during the autumn recruitment process. Desktop positions are relatively easier to land, and for someone like him, it seems that there is not much technical pursuit; he just wants to secure a position, which is why he chose C++ client development. However, he plans to work in this position for a maximum of 3 to 4 years and later wants to move towards audio-video development. Your company does desktop development, which is typically used on PCs, and you may have the opportunity to get involved with audio-video, as tasks like audio-video capture, camera activation, and video stream display are likely to be part of the job. After joining the company, you can learn more about the technical direction of your company, and you will naturally see a path forward. Although you may be working on audio-video peripheral functions now, such as streaming and video display, you will find that the core audio-video tasks are handled by a separate team. Therefore, you can gradually move towards the core audio-video direction if you are interested; for example, you can study audio-video topics in the evenings after work.

I personally feel that my C++ skills and algorithms are quite solid, and I have a habit of practicing algorithm problems in my spare time, often reviewing previously solved problems. I also plan to study C++ audio-video development and embedded systems while reinforcing my knowledge of Qt. Regarding Qt, it is a typical framework for desktop or upper-level machine interface development. Qt can do many things, but it is often chosen for interface development. You can ask me about a complete knowledge system regarding Qt. Similarly, we have a separate knowledge system for audio-video. Audio-video involves understanding encoding and decoding, RGB and YUV principles, H.264 and H.265 principles, as well as how to implement solutions like WebRTC, SRS, and FFmpeg. The embedded systems path is somewhat different; each system and direction varies. Now that you have chosen desktop development, the probability of working on microcontroller-based embedded systems is low. Even if you are working on embedded systems, you will be doing embedded application development, which is application development on top of Linux. You can later ask me for the learning paths for Qt, Linux C/C++, and audio-video, and compare them. (The learning paths will be provided at the end of the article for you to retrieve.)

Additionally, I would like to ask how you view the two directions of audio-video and embedded development. C++ audio-video is a vast industry; starting from cameras, many manufacturers that produce cameras are involved in embedded systems. If you choose audio-video later, you may find yourself dealing with driver-related tasks, including camera-related tasks, streaming, and media-related tasks, which are also embedded. However, pure embedded development, while it may seem simple, has significant differences; different chip solutions vary greatly. Regarding this, it depends on your luck; for example, if you can get into a robotics company, they also have corresponding cameras that collect data, and they need to process images and make decisions, which will also run on a non-standard motherboard. Now, you can choose to delve deeper into audio-video.

As for which direction is more promising regarding the “35-year crisis,” it is not so much about the technical direction but rather about the company you work for. Some companies, if they are doing well, will not lay you off even at 45. If a company is declining, you will find that the “35-year crisis” becomes a reality, and you may face daily challenges. Therefore, you do not need to worry about the 35-year crisis right now; just focus on doing well in your current job. It is unlikely that when you turn 35, they will say, “You are 35 now, and we are going to lay you off.” The key is to pay attention to your career planning and aim to have no more than three job experiences, allowing you to find a company you are willing to stay with long-term and that you recognize, rather than constantly switching jobs, which could lead to a more serious 35-year crisis. If you reach 35 with only two or three job experiences, and each experience is in a similar vertical field, you will not face a 35-year crisis.

Summary:

  1. Desktop development is a stepping stone; don’t rush to change careers.

    The C++ desktop application position you have actually hides opportunities in audio-video—working on PC development will inevitably involve tasks like camera capture and video stream display. It is better to familiarize yourself with the business in the company and understand what the audio-video team is doing than to blindly self-study.

  2. Audio-video and embedded systems are essentially the same.

    Those working in audio-video also need to deal with embedded hardware (like camera drivers and image processing chips). The “desktop application” your company is working on is essentially embedded development with a user interface! Some people have transitioned from QT medical imaging development to DJI’s autonomous driving team, leveraging their expertise in video stream processing technology.

  3. Learning path priority order.

  • First, focus on QT: This is your bread and butter; thoroughly understand the technology stack involved in your company’s projects.
  • Next, supplement with audio-video: Focus on learning FFmpeg encoding/decoding and WebRTC real-time communication (search for practical projects on GitHub).
  • Embedded systems as needed: Learn specifically when encountering particular chip solutions; don’t waste time on microcontrollers.
  • The truth about the 35-year crisis. Whether or not someone gets laid off depends on the company’s health, not the technical direction!

    • Hikvision’s audio-video team has a 52% representation of employees over 35.
    • Huawei’s embedded development group has an average age of 38; the key is to accumulate enough vertical field experience (for example, specializing in medical imaging QT development), which will naturally attract headhunters when you switch jobs.

    Appendix: Latest learning paths for Linux C/C++ advanced full-stack development, QT, audio-video, etc. (please retrieve the clear version below):Planning a Learning Path for Transitioning from C++ Desktop Development to Audio-Video or Embedded Systems

    Computer-related majors: Employment/job-seeking/learning paths/offer selection/career planning advice/learning materials acquisition

    Add WeChat: yt558998 NotePublic Account

    Planning a Learning Path for Transitioning from C++ Desktop Development to Audio-Video or Embedded Systems

    Leave a Comment