What professional skills should C/C++ have after working for many years (advanced C++ career planning)

1. C++ server programmer (streaming media background, game background, high-performance server background)

1. Proficient in C++, STL, Linux, etc., familiar with design patterns;

2. Proficiency in a scripting language (Lua, Python, Perl, etc.);

3. Have a certain understanding of multi-threaded environment programming, and be able to independently complete the development, maintenance and optimization of server-side modules;

4. Familiar with the development, maintenance and performance optimization of MySQL database;

1. Proficient in C++ programming, more than 3 years of server development experience;

2. Have mobile game or PC online game development experience, with complete mobile game development experience preferred;

3. Proficient in Socket protocol, understand distributed load and cluster type server frame structure;

4. Proficient in database design;

5. Familiar with Python or Lua language.

1. More than one year of server development experience, familiar with C++ language;

2. Familiar with TCP/IP protocol and network programming;

3. Familiar with standard SQL language, familiar with Mysql is better;

4. Familiar with linux and master linux basic operation commands;

1. More than 2 years of work experience in C++ game server development;

2. Have a comprehensive understanding of TCP protocol related development;

3. Have a comprehensive understanding of issues related to multi-threaded development;

4. A complete C++ mobile game server development experience is preferred;

5. Have experience in Linux platform related development is preferred;

More than 3 years of experience in online game background development;

Proficient in Linux operating system, with solid programming ability in Linux environment;

Proficient in C++ programming language and have rich experience in object-oriented programming;

Proficient in network programming and have experience in the development of high-concurrency systems;

Familiar with MYSQL or other large databases, able to quickly complete high-performance database design according to requirements;

1. Bachelor degree or above, major in computer, communication, etc.;

2. More than 3 years of C/C++ development experience under Unix/Linux, familiar with commonly used data structures and algorithms, and proficient in using standard libraries such as STL;

3. Familiar with common architecture design methods under Unix/Linux, familiar with streaming media network protocols and formats, including rtmp, rtsp, sip protocols, and mp4, ts streaming media format packaging;

4. Familiar with the principles and common tools of Unix/Linux operating system, familiar with database management and development such as Mysql/Oracle, and SQL tuning;

5. Comprehensive software knowledge structure (operating system, software engineering, design mode, data structure, database system, network security);

6. Experience in developing large-capacity communication systems and large-scale Internet backgrounds is preferred.

1) Computer-related majors, proficient in C++ language; familiar with commonly used data structures and algorithms;

2) Familiar with Socket, proficient in TCP/IP protocol and programming;

3) Have the ability to write Shell and Makefile, and use Linux basic commands proficiently;

4) Familiar with Linux operating system and network communication programming under its environment (process, thread, memory management, message mechanism, etc.);

5) Familiar with audio and video packaging and encoding and decoding technologies, and understand mainstream multimedia standards, such as TS, MP4 packaging, H.264, H.265, FLV, MPEG2, MP3, ACC encoding, etc.;

6) Familiar with streaming media transmission protocols such as HTTP/RTP/RTSP/RTMP/HLS, and the docking processing of audio and video decoding modules and streaming media protocols;

7) Those with project management experience in the radio and television industry, CDN development experience is preferred;

1. Bachelor degree or above, familiar with C/C++ language, more than 3 years of experience in streaming media system development

2. Familiar with common multimedia data decoding formats, familiar with H264, RTMP, video slicing, audio synchronization and other technologies;

3. Familiar with TCP/IP protocol, familiar with multimedia related protocols (HTTP, RTSP, RTMP, RTP/RTCP, P2P, SIP, etc.);

4. Deeply understand the principles of Internet video playback, and have practical experience in using ffmpeg and other frameworks;

5. Experience in live video, on-demand, video conferencing, surveillance security, etc. is preferred

6. Familiar with Nginx/Squid module development is preferred, experience in building streaming media servers such as FMS, P2P system research and development experience, well-known excellent video product server design and research and development experience is preferred

The bottleneck of technology is the problem of cognition. Cognition is not about knowing its name. It is also necessary to know its cause, and even more so.

For friends who are engaged in C/C++Linux background server development, the technology stack is not perfect, the architecture is not structured, and the self-discipline is poor. It takes a long time to learn advanced, improve the technology stack system, improve yourself, and self-study. You can watch this recommended learning video for Linux C/C++ Advanced Advanced Architect.

Click the link to subscribe and listen to it for free: C/C++Linux server development/Linux background architect [Zero Sound Academy]-learning video

Zero Sound Academy improves the mid-to-high-end C/C++ Linux technology stack.

The main purpose of training is to improve the efficiency of learning and master more knowledge in a shorter time.

2. Application development engineer windows /linuxc++ (QT and MFC, partial front-end)

1. More than 3 years of Visual C++ development experience

2. Proficiency in C, C++, ATL, COM and other programming techniques.

3. Familiar with Windows system programming, familiar with window, network and multi-thread technology.

More than two years of QT application software development experience on embedded or windows platform.

Familiar with QT cross-platform framework, QT graphics library and corresponding development tools. Participated in at least one complete QT project.

Have the foundation and experience of data structure, object-oriented, multithreading and memory management

Master the window/wince development environment

Familiar with common code management tools, such as SVN, Git, etc.

1. More than 2 years of C++ development experience;

2. Have rich experience in client development under the Windows development platform, and be familiar with the principles of the windows operating system;

3. Familiar with windows api call, familiar with MFC class, STL standard library, boost library, etc.;

4. Familiar with windows message system, familiar with commonly used data structures and algorithms, independent research ability;

5. Proficiency in the use of MFC exception classes to capture the structure of windows, can quickly locate the exception of the released version of the program, help members of the group quickly locate crashes, memory leaks, GDI resource leaks, and use remote debugging to locate problems;

6. Especially good at using various debugging, logging, analysis tools to debug the code developed by the client under windows, BUG search, problem cause search, BUG repair;

7. Experience in using the following debugging tools: spx++, bugtrap, crashreport, log4plus, gflags, bondcheck, reverse engineering ollydbg, etc. debugging is preferred.

Bachelor degree or above, computer, communication related major is preferred;

More than 1 year of C++ / Qt development experience;

Have experience in cross-platform Qt development under Linux and Windows;

Have socket programming experience, and be able to write TCP, UDP or serial communication programs;

Work proactively, possess teamwork spirit and good communication skills;

Experience in using version control tools is preferred.

1. Bachelor degree or above, major in computer and communication is preferred;

2. More than 3 years of C++ actual project experience;

3. Familiar with C++ STL, and have a certain understanding of C++ 11/14 standards;

4. Familiar with socket programming, able to write complex TCP, UDP or serial communication programs;

5. Master the graphical interface program development under the Windows platform, familiar with MFC, GDI/GDI+;

6. Proficiency in writing multi-threaded programs;

7. Proficiency in using Git;

8. Proficiency in using MySQL Connector;

9. Work proactively, have teamwork spirit and good communication skills;

10. Those with Qt actual project experience are preferred; those with DirectX development experience are preferred; those with streaming media related development experience are preferred.

2. Solid computer expertise, a good grasp of basic data structures and algorithms, and a good document writing ability;

3. Familiar with C/C++ language development and debugging skills under Windows/Linux/Mac platform, cross-platform development experience is preferred;

4. Proficient in MFC or QT development, familiar with GDI/GDI+/OpenGL/DirectX and other technologies and relevant project experience is preferred;

3. C++ game development (game direction, familiar with game engine cocos2dx, etc.)

1. Familiar with Win32API, familiar with WIN32/VS development platform, familiar with C++ development library (STL/MFC/Qt, etc.), familiar with common data structures and algorithms;

2. Proficient in C++ programming, proficient in network programming, familiar with game server-side architecture and client code, familiar with database development;

3. Those who understand NetFox platform and have successful development experience are preferred;

4. Experience in COCOS2DX development is preferred;

1. More than 2 years of online game server development experience, and those who have fully experienced the development process of large-scale casual online games are preferred;

2. More than 3 years of C++ development experience in actual projects, and a deep understanding of object-oriented design and development ideas;

3. Proficient in C/C++ software development under Linux operating system; familiar with basic data structure and mainstream data algorithms, understanding chess and card algorithms is preferred.

4. Proficient in distributed system design principles, familiar with TCP/IP network model, familiar with network asynchronous communication;

5. Experience in design and development of C/S structure software system;

6. Familiar with database design and SQL language, proficient in MySql database is preferred;

7. Familiar with open source technologies such as Redis and MQ is preferred;

8. Familiar with protocols such as protocolbuffer and json;

9. Familiar with mainstream software development process, those with experience in Scrum and other agile development team management are preferred; strong communication and coordination skills.

4. C++ reverse development engineer (network security, hacker attack and defense, cracking, etc.)

1. Bachelor degree or above;

2. Familiar with C/C++, with more than two years of relevant development experience;

3. Proficient in assembly language, with strong program disassembly technology and reverse analysis capabilities;

4. Familiar with PE file format, proficient in debugging and reverse engineering tools such as SoftIce, IDAPro, OllyDebug, WinDBG.

1. More than two years of relevant project development experience, love software development;

2. Familiar with X86 assembly, C/C++ language; familiar with PE file format;

3. Proficiency in using debugging and reverse engineering tools such as OD, WinDbg, IDA Pro;

4. Familiar with the working principles of viruses, Trojan horses and malware;

5. Understand common encryption and decryption algorithms;

1. More than 3 years of embedded software development experience;

2. Proficiency in assembly and C language programming;

3. Familiar with the working principle of CPU such as ARM and PPC; familiar with at least one series of MCU programming.

4. Familiar with operating system principles such as Linux, VxWorks and Threadx;

5. Experience in reverse analysis algorithms or communication protocol data is preferred.

6. Experience in printer motherboard development is preferred

1. Bachelor degree or above, major in computer, electronics or communication, and more than one year of relevant work experience;

2. Familiar with disassembly under windows or Android platform, familiar with X86 and arm assembly instructions;

3. Proficiency in software reverse static analysis, dynamic debugging, code tracking and other technologies;

4. Proficiency in the use of OllyDBG, IDAPro, GDB and other reverse tools;

5. Familiar with anti-tracking debugging technology and shelling technology;

6. Understand various general encryption and decryption algorithms;

7. Experience in andriod and iOS disassembly is preferred.

5. Smart hardware and wearable devices (smart hardware VR/C++,)

1. Bachelor's degree and diploma in computer science, mathematics, electronic engineering or related majors;

2. More than 5 years of software development experience, more than 2 years of experience in virtual reality development projects, familiar with Unity3D engine architecture design is preferred;

3. Familiar with network programming and multi-thread programming;

4. Familiar with C/C++, with more than 3 years of C/C++ software development work experience;

5. Have relevant experience in 3D graphics engine development;

6. In-depth research on physics engines, and relevant practices in practical applications such as games;

7. Have an in-depth understanding of graphics knowledge, proficient in using DirectX, OpenGL or Metal, and have related works.

8. Have a certain level of English and be able to read foreign academic documents.

9. Oculus Rift, Samsung Gear VR, or HTC Vive development experience is preferred.

6. Embedded software engineer (C/C++, Linux platform, both software and hardware)

Familiar with the principle of cross-compilation, proficient in constructing/using cross-compilation tool chain

Familiar with Linux (x86, arm) kernel reduction, configuration, compilation and deployment

Familiar with the composition of the Linux root file system, and be able to configure, compile, and use tools such as buzybox to cut according to actual requirements to construct the root file system

Familiar with C/C++ language for application programming under Linux

Familiar with multi-process/multi-thread programming under Linux, understand the concepts and methods of synchronization/communication between processes/threads

Understand the principles and methods of programming of kernel modules under Linux, and be able to modify/add drivers in the kernel

Understand the configuration, compilation and deployment of bootloaders such as Uboot/GRUB/LILO

Understand Socket programming

4 Additional capabilities (non-essential requirements):

Linux kernel real-time performance evaluation and testing experience

Understand automotive electronics related communication protocols CAN/LIN/UDS/CCP/XCP, etc.

Understand the EtherCAT protocol and have relevant development/testing experience

2. More than three years of embedded Linux driver development experience, independent development experience and ability;

3. Familiar with Linux system, familiar with C/C++ language, familiar with related compilation and debugging technology is better;

4. Proficient in linux platform related driver development technology and have relevant experience;

5. Proficient in bootloader transplantation, kernel tailoring and other technologies.

7. Audio and video decoding (protocol optimization)

For friends who are engaged in audio and video development, you can take a look at this recommended audio and video advanced development learning video, click the link to watch and learn: FFmpeg/WebRTC/RTMP audio and video streaming advanced development-learning video

1. Familiar with audio and video codec processing algorithms, and have more than one year of work experience in related fields;

2. Familiar with ffmpeg architecture, able to transplant and optimize the system to mobile clients;

3. Familiar with RTMP, HLS and other streaming media live broadcast protocols (or related protocols); familiar with vlc or ffplay, mplayer architecture is preferred;

4. Familiar with TCP/IP and Socket network programming;

5. Familiar with C/C++ development language;

6. Familiar with WINDOWS PC client software development

1. A master's degree in mathematics, sound processing, computer, signal processing, communication engineering, or related fields. More than two years of work experience in related fields

2. Have a good mathematical foundation, strong audio signal processing or algorithm development capabilities

3. Proficient in C language programming or matlab language, able to program to realize audio processing algorithms.

4. Strong ability in paper retrieval and English professional literature reading

5. Strong interpersonal communication and collaboration skills.

One of the following development experience is preferred

1. Understand audio processing technology, have conducted research and implementation of algorithms such as audio compression, echo cancellation, and speech enhancement recognition

2. Familiar with common audio format files (mp3, wma, aac, ogg, ape, flacac3, dolby DTS, etc.)

3. Have carried out the development, transplantation and optimization of some of the above audio processing algorithms on hardware platforms such as DSP, x86, FPGA or ARM.

2. Have in-depth research on VOIP and relevant experience, familiar with VOIP server development (experience in asterisk source code development/optimization), Android, ios underlying development experience is better;

3. Possess good mathematical skills, proficient in C language, familiar with ARM architecture and related assembly;

4. Familiar with audio and video coding (such as WebRTC, speex, Opus, H264, MPEG, etc.), have audio/voice codec algorithm optimization and development experience, and have a deep understanding and unique insights on language enhancement algorithms.

a) Solid computer and network basic knowledge, with experience in network simulation and multimedia transmission development

b) Rich experience in video processing or image processing

c) Rich experience in deep learning and face recognition

1. Graduated from majors related to computer digital signal processing

2. More than 4 years of video frequency related algorithm development experience, familiar with video, image special effects and optimization technology;

3. Proficient in C/C++, familiar with basic digital image and video processing algorithm principles, familiar with OpenCV/OpenGL;

4. Familiar with GPU-based algorithm design and optimization and parallel optimization experience is preferred;

5. Familiar with video codec standards such as H.264 and FFMPEG is preferred;

6. Familiar with streaming media transmission protocols such as rtmp is preferred.

1. Communication, automation, image processing, pattern recognition, video processing, signal and information processing and related majors;

2. Strong mathematical background

3. Have a certain understanding of intelligent video processing, familiar with face recognition, target detection and tracking, behavior analysis and other related technologies. Practical experience in related projects is preferred;

4. Familiar with matlab, C/C++, have good programming habits; have knowledge of video processing, image processing, pattern recognition, DSP development, etc., and have fast programming ability.

5. Proficiency in reading relevant English papers and patents, and can quickly implement programming;

6. Strong communication skills, good teamwork spirit and proactive work.

7. One of the following experience is preferred: experience in image quality adjustment of mobile phones, cameras and other equipment; experience in the development of image processing modules in digital display devices such as mobile phones, cameras, flat-screen TVs, and projectors; and image signal processor ( ISP) R&D experience.

1. Bachelor/Master degree or above in signal processing/pattern recognition/image processing;

2. Have no less than 1 year of work experience in video intelligent analysis algorithm design and development;

3. Proficiency in the application of c/c++ program development;

4. Can use machine learning, statistical learning or other mainstream intelligent analysis techniques to solve specific target recognition or behavior analysis problems;

5. Proficiency in image/video algorithms in OpenCV;

6. Proficiency in reading English algorithms and other technical documents;

8. Image processing (machine vision, medical images, remote sensing images, portraits (beauty), etc.)

1. The design of image processing related algorithms (such as image tracking and positioning) development and debugging.

2. Major in information electronics or computer, bachelor degree or above.

3. Have a good theoretical basis for algorithms and data structures.

4. Have a good theoretical basis for pattern recognition/machine learning.

5. Familiar with related programming languages ​​such as c/c.

1. Bachelor or master degree or above, major in computer, electronic engineering, automation, etc.

2. Have a good theoretical foundation in image, vision and pattern recognition, and be proficient in some basic operations of image processing (histogram, integral image, intersection detection, feature point extraction, scaling, binarization, etc.);

3. Familiar with C/C++ and OpenCV, Matlab, and have certain development and testing experience;

1. Familiar with the basic methods of image processing (edge ​​detection, region extraction, low-pass filtering, feature extraction);

2. Familiar with machine learning algorithms (such as LR, SVM, ANN, etc.) and deep learning algorithms CNN, etc.;

3. Familiar with opencv, with relevant development experience in motion mark detection, feature extraction, and object recognition is preferred;

4. Have relevant research or project experience such as OCR or word detection;

5. Familiar with Linux development environment, familiar with any language such as C/C++/Python;

6. Have good communication skills, strong responsibilities, good at assisting and sharing;

7. Proficiency in reading online English technical stations and technical standards is preferred.

1. A master's degree or above in computer science, machine vision, machine learning and other related majors or directions;

2. More than two years of work experience in machine vision and image processing;

3. Proficient in CC++, familiar with programming under linux, familiar with OpenCV, good code habits;

4. Have a solid foundation in machine learning, Bayesian filtering, machine vision, and image processing;

5. Familiar with ROS, SLAM, TLD and other related systems and technologies is preferred.

Guess you like

Origin blog.csdn.net/Linuxhus/article/details/113181533