C++开发人员职业发展规划

一、C++定位

1. 概述

1. 功能型语⾔,不绑定⾏业,万事皆可C/C++

特点:稳定、⾼效、语法复杂(细节)

⽅向:操作系统、服务器、⽹络安全、桌⾯应⽤、视频编解码

C++开发人员职业发展规划_第1张图片

 应⽤层⾯ 

C++开发人员职业发展规划_第2张图片

2. 招聘需求:

1. 精通C/C++,熟悉STL标准库中常⽤数据结构、算法及容器类

2. 掌握常⽤boost库

3. 熟悉⼀⻔脚本语⾔shell、lua、python、go 4. 熟悉linux下的软件开发,熟悉gcc gdb等编译调试⼯具,能够快速定位问题

5. 熟悉TCP/UDP、HTTP/HTTPS、SOAP等协议,并具备相关应⽤开发经验,具备

WebService、RESTfull等RPC接⼝设计及开发经验者优先

6. 精通socket⽹络编程、多线程编程、多进程编程及IPC编程技术

7. ⾄少熟悉PostgreSQL、MySQL、SQLServer、Oracle、redis等数据库中的⼀种, leveldb 8. 有Qt图形数据处理及界⾯开发经验(C++) ==> MFC(windows图形开发)

9. 有C++游戏开发经验者优先

2. IDE选择

Linux下的编辑器、编译器、调试器是分离的 IDE是⽐较⽅便,综合了所有的⼯具,推荐:

vim/emacs负责代码显示;

ctags负责代码解析;

gdb负责调试;

gcc负责编译;

配置vim,熟悉他们很快的。会了就可以装逼了!

其他可选主流IDE

QtCreator Eclipse Vscode:go, 前端

VisualStudio(10G) Clion

二、Linux分类⽅向两个

流⾏Linux系统分类: 第⼀类:ubuntu、Debian:第⼆类:read hat,centOS:

1. Linux的系统、⽹络、服务应⽤⽅向

Linux的系统、⽹络、服务、集群 ,⽹站,Oracle数据库应⽤⽅向:   

1、数据库服务器 如Oracle Sybase

2、Web应⽤服务器 如 sina baidu⼤型⽹站   

3、Mail应⽤服务器 如 163 或外企mail系统等   

4、中间件或J2EE服务器 如为JBOSS Weblogic Websphoto做平台   

5、⽹络应⽤等

2. Linux下软件开发⽅向

嵌⼊式开发、UNIX/Linux应⽤系统开发,Linux内核驱动开发⽅向,主要有以下⼏类:

1、Linux下的C/C++ 系统程序开发   

2、Linux平台Java体系开发   

3、Linux下的图形界⾯开发   

4、Linux底层内核/驱动开发   

5、嵌⼊式Linux开发等

三、Linux开发分类

C++开发人员职业发展规划_第3张图片

 1. 驱动开发|嵌⼊式

Linux嵌⼊式系统应⽤领域:Linux的系统是开放的源代码形式,它的功能⼗分强⼤,它是以Linux作为 基础的嵌⼊式作业系统的应⽤,因此在嵌⼊式应⽤的领域⾥,从因特⽹设备(路由器、交换机、防⽕墙、 负载均衡器等)到专⽤的控制系统(个⼈数字助理(PDA)、CD播放器各种家⽤电器等),Linux的系统有 着很⼴阔的前景,最“亲⺠”的⼀款产品当然是安卓⼿机⼿机,⾥⾯的Android就是基于Linux被开发出来 的。并且Linux在智能⼿机开发领域上⾯也是占有了半壁江⼭。

1. c语⾔、汇编语⾔

2. 硬件背景:数字电路、开发板、树莓派

3. 裁剪系统,内核研究

intel,IBM,redhat,Canonical,浪潮,华为,魅族,富⼠通南⼤,百度,阿⾥,腾讯,360,京东,滴滴,美团,

⻘云 阿⾥, 百度, 华为, 腾讯, ⾦⼭, 360 这些做云计算和安全的都有⾃⼰的 kernel 组

C语⾔书籍:

The C Programming Language 2nd Edition (C语⾔程序设计第⼆版) ,C语⾔圣经

Expert C Programming(C专家编程)

2. 系统开发

开发LINUX上应⽤程序,主要是⽹络开发,这个⼀般进⼤公司的机会多,因为⼤公司需要各种熟悉

LINUX的开发⼈员,后台开发

linux系统编程

UNIX环境⾼级编程(Advanced Programming in the UNIX ,简称:APUE),unix圣经

Unix⽹络编程,第1卷(Unix Network Programming, Volume 1)

C++开发人员职业发展规划_第4张图片

 a. 云计算架构

云计算说的更加直⽩⼀点就是在Linux的技术上的⼀个精进,⽽且现在云计算技术也被⼤规模的使⽤⽐ 如被⼤家所熟知的阿⾥云、亚⻢逊云、Google云都是建⽴在Linux系统之上的,再对硬件、软件资源的 分配应⽤,说⽩了就是“你想要多少,我就给多少;不想要了就还回去,省钱省事”,最为直接的输说, 就是如果你想做⼀个⽜掰的云计算架构师的话,Linux必须且⼀定是你要学习的技术”。

这⾥你⼀定要学会的技术:KVM、Docker、K8S、Openstack、Go语⾔、Python等

b. ⼤数据(java、python)

现今⽣活中⼤数据的应⽤越发的⼴泛了,举⼀个最具有⽣活的“栗⼦”,就好⽐我们如果在淘宝上或者在 ⽹⻚中搜索过的⼀些商品,你会发现你的淘宝商品⻚⾯会逐步增多对你搜索过的商品的展现率,甚⾄在 微信朋友圈的⼴告中也会展现出来,这就是⼤数据的⼀个最具⽣活的展现形式,这么神奇的技术也是基 于Linux系统进⾏搭建如,hadoop、Spark这些服务,对互联⽹上额“数据”进⾏整理、分析、挖掘等 等。 ⼤数据离线计算: Hadoop

⼤数据内存计算:Spark

数据分析:Python

3. 桌⾯开发(QT)

开发LINUX上的图形界⾯:GTK+和QT(C++)

操作系统国产化政策之下

C++开发人员职业发展规划_第5张图片

4. 运维⽅向

第⼀条:运维应⽤-->系统架构-->运维开发-->系统开发 第⼆条:运维应⽤-->应⽤dba-->架构dba-->开发DBA

现在企业服务器⾥⾯也就是Linux、windows、Unix三个,Linux虽然⽐windows和Unix都出现的 晚,但是Linux现在已经占据的这个领域的90%的市场,像BAT/TMD甚⾄微软官⽅⻔户⽹站⼏乎⽤ 的都是Linux的系统 他们利⽤Linux系统可以为企业架构web服务器、数据库服务器、负载均衡服务器、邮件服务器、

DNS服务器、代理服务器、路由器等。为企业⼤⼤降低了运营成本的同时还获得了Linux系统带来的⾼稳定性和⾼可靠性,且⽆须考虑商 业软件的版权问题。Linux现在也在陆陆续续的渗透在各⾏各业当中。

四、学习Linux C++有前途么?

这个问题应该换⼀种思维⽅式来考虑。 ⼀个应⽤,如计算器软件,你可以在Windows⽤c#开发,也可以在linux下使⽤GTK开发,也可以 使⽤跨平台的wxpython开发,也可以使⽤java中的swing开发等。因为这样的功能对硬件和软件 的要求都很⼩。 ⼤型的软件对硬件和软件都有要求的时候,才体现出操作系统和硬件的差异,才能体现出java与

c++的区别来。也就是应⽤类型的类型决定了使⽤的⼯具。 在中国,windows盗版泛滥,在客户端占⽤绝对优势。⽽在服务器端则必是unix和类unix的。⽽ 在其他⽅⾯,如操作系统的开发、编译器的开发最底层的还是使⽤c在开发。linux和minix操作系 统的导引部分是使⽤汇编开发的。java语⾔的底层还是使⽤c来开发的。有前途⽆前途要看你的⽬ 标。

100%⽐windows有前途,因为你可以随时转去Windows,反之却不⾏

C++入门教程:黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_

你可能感兴趣的:(技术交流,c++,互联网,c语言,c++,开发语言)