1. 功能型语⾔,不绑定⾏业,万事皆可C/C++
特点:稳定、⾼效、语法复杂(细节)
⽅向:操作系统、服务器、⽹络安全、桌⾯应⽤、视频编解码
应⽤层⾯
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++游戏开发经验者优先
Linux下的编辑器、编译器、调试器是分离的 IDE是⽐较⽅便,综合了所有的⼯具,推荐:
vim/emacs负责代码显示;
ctags负责代码解析;
gdb负责调试;
gcc负责编译;
配置vim,熟悉他们很快的。会了就可以装逼了!
其他可选主流IDE
QtCreator Eclipse Vscode:go, 前端
VisualStudio(10G) Clion
流⾏Linux系统分类: 第⼀类:ubuntu、Debian:第⼆类:read hat,centOS:
Linux的系统、⽹络、服务、集群 ,⽹站,Oracle数据库应⽤⽅向:
1、数据库服务器 如Oracle Sybase
2、Web应⽤服务器 如 sina baidu⼤型⽹站
3、Mail应⽤服务器 如 163 或外企mail系统等
4、中间件或J2EE服务器 如为JBOSS Weblogic Websphoto做平台
5、⽹络应⽤等
嵌⼊式开发、UNIX/Linux应⽤系统开发,Linux内核驱动开发⽅向,主要有以下⼏类:
1、Linux下的C/C++ 系统程序开发
2、Linux平台Java体系开发
3、Linux下的图形界⾯开发
4、Linux底层内核/驱动开发
5、嵌⼊式Linux开发等
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的开发⼈员,后台开发
UNIX环境⾼级编程(Advanced Programming in the UNIX ,简称:APUE),unix圣经
Unix⽹络编程,第1卷(Unix Network Programming, Volume 1)
a. 云计算架构
云计算说的更加直⽩⼀点就是在Linux的技术上的⼀个精进,⽽且现在云计算技术也被⼤规模的使⽤⽐ 如被⼤家所熟知的阿⾥云、亚⻢逊云、Google云都是建⽴在Linux系统之上的,再对硬件、软件资源的 分配应⽤,说⽩了就是“你想要多少,我就给多少;不想要了就还回去,省钱省事”,最为直接的输说, 就是如果你想做⼀个⽜掰的云计算架构师的话,Linux必须且⼀定是你要学习的技术”。
这⾥你⼀定要学会的技术:KVM、Docker、K8S、Openstack、Go语⾔、Python等
b. ⼤数据(java、python)
现今⽣活中⼤数据的应⽤越发的⼴泛了,举⼀个最具有⽣活的“栗⼦”,就好⽐我们如果在淘宝上或者在 ⽹⻚中搜索过的⼀些商品,你会发现你的淘宝商品⻚⾯会逐步增多对你搜索过的商品的展现率,甚⾄在 微信朋友圈的⼴告中也会展现出来,这就是⼤数据的⼀个最具⽣活的展现形式,这么神奇的技术也是基 于Linux系统进⾏搭建如,hadoop、Spark这些服务,对互联⽹上额“数据”进⾏整理、分析、挖掘等 等。 ⼤数据离线计算: Hadoop
⼤数据内存计算:Spark
数据分析:Python
开发LINUX上的图形界⾯:GTK+和QT(C++)
操作系统国产化政策之下
第⼀条:运维应⽤-->系统架构-->运维开发-->系统开发 第⼆条:运维应⽤-->应⽤dba-->架构dba-->开发DBA
现在企业服务器⾥⾯也就是Linux、windows、Unix三个,Linux虽然⽐windows和Unix都出现的 晚,但是Linux现在已经占据的这个领域的90%的市场,像BAT/TMD甚⾄微软官⽅⻔户⽹站⼏乎⽤ 的都是Linux的系统 他们利⽤Linux系统可以为企业架构web服务器、数据库服务器、负载均衡服务器、邮件服务器、
DNS服务器、代理服务器、路由器等。为企业⼤⼤降低了运营成本的同时还获得了Linux系统带来的⾼稳定性和⾼可靠性,且⽆须考虑商 业软件的版权问题。Linux现在也在陆陆续续的渗透在各⾏各业当中。
这个问题应该换⼀种思维⽅式来考虑。 ⼀个应⽤,如计算器软件,你可以在Windows⽤c#开发,也可以在linux下使⽤GTK开发,也可以 使⽤跨平台的wxpython开发,也可以使⽤java中的swing开发等。因为这样的功能对硬件和软件 的要求都很⼩。 ⼤型的软件对硬件和软件都有要求的时候,才体现出操作系统和硬件的差异,才能体现出java与
c++的区别来。也就是应⽤类型的类型决定了使⽤的⼯具。 在中国,windows盗版泛滥,在客户端占⽤绝对优势。⽽在服务器端则必是unix和类unix的。⽽ 在其他⽅⾯,如操作系统的开发、编译器的开发最底层的还是使⽤c在开发。linux和minix操作系 统的导引部分是使⽤汇编开发的。java语⾔的底层还是使⽤c来开发的。有前途⽆前途要看你的⽬ 标。
100%⽐windows有前途,因为你可以随时转去Windows,反之却不⾏
C++入门教程:黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_