• 面试官:我们只想要这样的C++工程师!现在你该知道要学什么了吧


    最近好多小伙伴来找就就说,我想找 xxx 方向的工作,我怎么学习?我也不知道这个岗位的招聘要求是啥?

    这个很正常哈,主要是咱们平时很少去关注企业的招聘要求,所以不知道怎么学,更不知道要学哪些内容。

    所以就就分析了大量公司的校园招聘,根据招聘要求给大家总结出了每个方向的学习路径。

    今天先奉上一篇关于C++方向,如果你有想了解其他语言,欢迎给我留言~~

     

    一、什么是C++研发工程师呢?

    C++是C语言的超集,底层、上流随意发挥。

    在性能方面上,有着无可替代的优势特别是对于很多游戏开发公司来说,C++尤其适合作为后端服务的开发语言。

    在一些对于并发性能要求较高的业务上,C++也有绝对的优势。

    因此大部分公司的核心业务都是用C++进行开发,C++工程师掌握着公司最核心最重要的业务体系,有着十分重要的地位。

    二、C++研发工程师可以从事哪些岗位呢?

        ✿ C++服务器程序员:流媒体后台,游戏后台,高性能服务器后台

        ✿ 应用开发工程师windows /linux c++:QT和MFC,偏前端

        ✿ C++游戏开发:游戏方向,熟悉游戏引擎cocos2dx等

        ✿ C++逆向开发工程师:网络安全,黑客攻防,破解等

        ✿ 智能硬件和可穿戴设备:C/C++,Linux平台,VR/AR,软硬兼施等

        ✿ 图像处理:机器视觉,医学图像,遥感图像,人像

    等等...

    三、我想成为一名C/C++工程师,需要掌握哪些内容?

    ▶ 1、玩转C语言

            ✿ 数据类型、流程控制、函数、指针

            ✿ 内存布局、结构体、共用体、文件操作

            ✿ 小项目:可以自己设计一个通讯录

            主要是二级指针,结构体,文件的操作

    ▶ 2、C++入门

        1)C++对C的扩展

            ✿ C++关键字、命名空间、引用

            ✿ C/C++混合编程、函数扩展

        2)C++基础

            ✿ 面向对象编程思想、类的封装

            ✿ 构造函数、析构函数、静态成员

            ✿ 对象管理、友元函数与友元类

            ✿ 操作符重载、继承与多继承、多态

            ✿ 虚函数与抽象类、函数模板与类模板

            ✿ 智能指针

            ✿ 输入输出流、异常处理

        3)数据结构

            ✿ 算法基础、顺序存储、链式存储

            ✿ 循环链表、双向链表、栈(顺序&链式)

            ✿ 队列(顺序&链式)、树的概念 & 遍历

            ✿ 二叉树、平衡树,搜索树、红黑树

            ✿ 各种排序算法

    ▶ 3、C++进阶

        1)STL

            ✿ 序列式容器:堆栈容器、双向链表容器

            ✿ 关联式容器:STL算法详解

        2)设计模式和UML

            ✿ 设计模式概念、面向对象设计原则

            ✿ 单例模式、工厂模式、UML应用

        3)小项目:贪吃蛇

            ✿ 对常用数据结构链表的使用,类额使用

            ✿ 项目开发流程的熟悉

    ▶ 4.1、初始Linux

            ✿ Linux操作系统的介绍、Linux目录和路径

            ✿ Linux文件权限、Linux常用命令

            ✿ VIM编辑器、websever的环境搭建

    ▶ 4.2、深入理解Linux

        1)基本操作:运维操作、文件I/O 操作

        2)系统编程

            ✿ 进程控制原理、进程间通信、Linux信号处理

            ✿ 进程间关系、守护进程、线程控制原理、线程间同步

        3)网络编程

            ✿ 网络编程协议(TCP/IP、UDP)、Socket套接字原理

            ✿ 高并发服务器、异步I/O、Libevent

        4)小项目:web服务器

            ✿ 多进程、多线程、进程间通信

            ✿ 多任务编程、网络数据通信过程

            ✿ B/S、C/S 网络概念

    ▶ 5、数据库知识

            ✿ oracle

            ✿ mysql

            ✿ MongoDB

    ▶ 6、桌面应用开发方向

            ✿ Qt常用的控件

            ✿ Qt绘图与文件操作

            ✿ Qt界面编程实战案例

            ✿ MFC对话框与常用空间

            ✿ MFC界面编程

    ▶ 7、分布式云平台开发

            ✿ 分布式文件存储服务器和缓存服务器

            ✿ 深入理解nginx

            ✿ 负载均衡反向代理

            ✿ git

    今天要说的就这么多啦;

    就就把每个模块掌握的知识点都列出来了;

    大家可以对照着这个查漏补缺;

    还有什么其他问题都可以在讨论区进行提问!


     

    如果你想成为一名优秀的程序员,那么——程序员编程俱乐部【值得点击进入】!

    涉及到:C语言、C++、windows编程、网络编程、QT界面开发、Linux编程、游戏编程、黑客等等......


     

    程序员编程入门资料:


     

    程序员​推荐学习书籍:


     

    带你一个活跃、高逼格、高层次的程序员编程学习殿堂;编程入门只是顺带,思维的提高才有价值!

  • 相关阅读:
    shell编程基础(六): 透彻解析查找命令find
    shell编程基础(五): 正则表达式及其使用
    shell编程基础(三): 位置参数与shell脚本的输入输出
    shell编程基础(二): shell脚本语法之分支语句和循环语句
    shell编程基础(一): 基本变量和基本符号
    SpringCloud学习(一):微服务简介
    ubuntu 安装bazel
    numpy reshape resize用法
    L0、L1及L2范数
    linux常用的搜索命令
  • 原文地址:https://www.cnblogs.com/huya-edu/p/13926346.html
Copyright © 2020-2023  润新知