# 一、今日内容

1. C/C++功能定位
2. Linux开发成长方向
3. 5G物联网发展
4. 职场赋能建议



# 二、C/C++定位

## 1. 概述

1. 功能型语言，不绑定行业，万事皆可C/C++

   - 特点：稳定、高效、语法复杂（细节）
   - 方向：操作系统、服务器、网络安全、桌面应用、视频编解码

   ![图片1](assets/图片1.png)

   

   应用层面

   ![image-20200511154650295](assets/image-20200511154650295.png)

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++游戏开发经验者优先

3. 待遇：

   ==3年以内==

   ![image-20200511154558473](assets/image-20200511154558473.png)

   

   ==3年以上==

   ![image-20200511154546225](assets/image-20200511154546225.png)



## 2. IDE选择

- Linux下的编辑器、编译器、调试器是分离的 IDE是比较方便，综合了所有的工具，推荐：
  - vim/emacs负责代码显示；
  - ctags负责代码解析；
  - gdb负责调试；
  - gcc负责编译；
  - [配置vim](https://blog.csdn.net/xiaohu50/article/details/51988154)，熟悉他们很快的。会了就可以装逼了！

- 其他可选主流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开发分类

![图片2](assets/图片2.png)





## 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）

![image-20200511161639662](assets/image-20200511161639662.png)



### 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++)

- 操作系统国产化政策之下

![image-20200511160007042](assets/image-20200511160007042.png)



## 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，反之却不行





# 六、5G+物联网

## 1. 新基建

新型基础设施建设（新基建，2018年首次提出概念），主要包括7个领域，设计诸多产业链：

1. 5G基站、
2. 大数据中心、
3. 人工智能、
4. 工业互联网、
5. 特高压、
6. 城际高速铁路和城市轨道交通
7. 新能源汽车充电桩

理念：

- 以新发展理念为引领
- 以技术创新为驱动
- 以信息网络为基础
- 面向高质量发展需求，提供数字转型、智能升级、融合创新等服务的基础设施体系



## 2. 5G

5G 是新一代蜂窝移动通信技术，也是 4G（LTE、WiMAX-A）、3G（UMTS）、2G（GSM）标准后的延伸。相比可打电话的 2G、能够上网的 3G、满足移动互联网用户需求的 4G 相比，逐步可以商用的 5G 在多重性能上更胜一筹，如：

- 低延迟；
  - 仅仅是快，还远远不够。5G还拥有极大的容量以及极低的时间延迟的两个特性。5G的传输时延为1毫秒，4G大约在50毫秒左右。比如自动无人驾驶，为什么会是自动无人驾驶呢？一方面，无人驾驶要求极低的时延要求，就像我们开车时发现情况要踩刹车，普通人的反应速度是0.4秒，也就是400毫秒之间，而5G情况下只要1毫秒就可以反应了。
    

- 具备更高的系统容量；
  - 真正的万物互联，5G的链接密度可以超过100万个/平方公里，这不仅意味着几万人参加的演唱会、展会现场不再会出现网络不畅。还意味着我们可以把路灯、垃圾桶、汽车、下水道、小区住户家里的冰箱、电饭煲全都连到同一个网络，真的开启万物互联的时代，智慧城市也才真的能智慧起来，而不仅仅是目前人人互联的时代。
    

- 平均下载速度 1GBps，最高 20GBps
  - 火箭速度的5G，用一个形象的比喻5G网速：用户在不到一秒时间内即可完成一部高清电影的下载。如果说4G是在跑，那么5G就是以坐火箭的形式在运行，但快只是5G的一部分而已。





## 2. 物联网（==C语言==、Go语言、Python）

- 5G 和物联网相辅相成，而这又与物联网之间有何联系？其实 5G 相较于物联网的关系，可以看成 4G 之于互联网的关系。

- 万物相连的互联网： 物联网（ IoT ，Internet of things ）即“万物相连的互联网”，是互联网基础上的延伸和扩展的网络，将各种信息传感设备与互联网结合起来而形成的一个巨大网络，实现在任何时间、任何地点，人、机、物的互联互通

- 阶段

  - 萌芽期（互联网时代）

  - 生长期（初级物联网时代） ==》 解放劳动力

  - 成熟期（终极物联网时代）



- 物联网的概念提出已经有20年了，实际应用方向：

  - 城市安防： 提前预防，实施预警，及时采取应对措施

  - 智能家居

  - 无人驾驶

  - 远程医疗：远程手术

  - 智慧城市：垃圾管理、交通监控、智能化医疗

  - 新零售：互动、虚拟现实体验



- 风险：

  - 隐私泄露==》身边所有的设备都掌控者你的大数据，容易裸奔

  - 系统宕机==》设备通过大数据运算，面临卡壳风险

  - 虚张声势==》容易有虚假宣传，没那么智能

  

5G  ==> 物联网 ==> C(2019年度语言)



# 七、几大语言方向

## 1.Java（排名第一）

Java功能强大，简单易用。具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。由于其语言特性好，框架丰富，常常被应用于企业中，你可能经常会听到一些关于J2EE，Hibernate等的讨论。而且，现如今的安卓手机的标准编程语言也是Java。

**总结**

Java主要用于企业级开发, 安卓手机, 网页，游戏后台。





## 2.C和C++（永不过时，越老越吃香）

理论上，只要硬件驱动和API合适，C和C++就可以用于任何开发，效率可以说是所有编程语言里最高的。排除你系统里没有C/C++编译器的情况。一般的系统里C一般都具备，但是可能有些是没有C++编译器的。

目前，C语言主要用来服务应用，开发底层模块和嵌入式。尽管C++也可以，但是由于其复杂性，程序员更多的是选择C语言来做。C++适合一些复杂但又要求高效率的，比如大型游戏等等。

**总结**

C主要用于服务应用，开发底层模块和嵌入式。

C++主要用于大型游戏开发和一些规模大、性能高的程序开发。





## 3.JavaScript（凡是能用js编写的程序，终将使用js编写）

java VS JS

雷锋VS雷峰塔



外行人可能觉得Javascript听起来跟Java有关，实则没有任何联系。

毫无疑问，Javascript最广泛的是在web前端。通俗的说，当网站传送一些用各种“标签”代表的格式文档时后，Javascript负责把这些文档“转化”成一些客户端动态效果。除此之外，Node.JS还用于开发服务器端。



> nodejs是js的升级版，基于google v8引擎开发的后端语言，可以写服务器



总结

JavaScript主要做web前端以及服务器端开发。





## 4.PHP(最好的语言，份额被go抢)

PHP是一种通用开源脚本语言，语法吸收了C语言、Java和Perl的特点，利于学习，使用广泛，，主要适用于Web开发领域，PHP是web后端的王者。

**总结**

PHP主要用于Web开发，后端较多，也可以用于整个web服务器，比如论坛引擎。



前端（网页waiter） ---请求-->  处理（服务器Server）  ---》 返回给页面



## 5.Python

Python语法简洁清晰，具有比较丰富和强大的库，而由于它可以把用其他语言制作的模块轻松地联结在一起，又称其为胶水语言。

IEEE发布2017年编程语言排行榜：Python位居首位。应用比较广泛，像信息安全、物联网开发、桌面应用、大数据处理都需要用python。

**总结**

Python主要用于服务器、物联网开发，大数据处理等。



## 6.go

值得一学：

开发速度，执行效率，从高到低： c> go > python

go语言所有执行需要的库都打包在一个exe中，编译好的exe程序，直接在第三方系统就可以运行

GUI：图形化

GUI

难度，从难道易：c > go > pthon

> docker, k8s，区块链



## 6.其他编程语言

24种语言编写Hello World程序：https://blog.csdn.net/yilovexing/article/details/53256713





# 八、不同年龄段

今年的行情，如何发展：

1. 大一、二：学习我们的课程，使得大学生活可以重新规划，轻松甩掉同龄人，毕业直接高位就业。
2. 大三、四：大学已经结束了，荒废的时间无法追回，但是可以强化一下，轻松就业。
3. 在职的：职场赋能，不被淘汰（IOS，安卓，PHP走向落寞）。
4. 待业的：弯道超车，快速转型。





# ==最近开班： 5月14日开班==

C、C++基础班，10天课程（60节）



# 九、职场赋能建议

1. 文档输出、博文输出
2. 英语
3. 不同年龄段的行为表现、职场形象
4. 人脉管理，打造个人品牌
5. 工作思考（能写在简历里的、每半年更新一次）
6. 番茄工作法🍅、吃青蛙
7. 培养管理能力（哪怕带一个人），10人以下管理手册等、汤君健（得到）
8. 知识付费（软件、知识等）
9. 你的注意力最重要：节约时间，尽量离公司近一些，工作和生活不要分开
   1. 注意力 > 时间 > 金钱





# 十、扫描粉丝见面会

![image-20200511182037712](assets/image-20200511182037712.png)