985学校内部疯传,学完C++能做什么?

时间:2022-10-09 18:05:16 | 浏览:2627

大家好,我是柠檬哥,专注编程知识分享。欢迎关注@程序员柠檬橙,编程路上不迷路,最近很多同学私信柠檬哥,问到C++的应用方向和工作方向,这就安排。C++和C语言相比于Java和Python,可以说是比较底层的语言。不像Java有GC,在C++

大家好,我是柠檬哥,专注编程知识分享。

欢迎关注@程序员柠檬橙,编程路上不迷路,

最近很多同学私信柠檬哥,问到C++的应用方向和工作方向,这就安排。

C++和C语言相比于Java和Python,可以说是比较底层的语言。不像Java有GC,在C++中内存需要程序员自己管理,也正是因为C++给程序员提供了足够大的自由度,C++能做的事情很多,精通C++不那么容易,但探索的路上有人一起,学习也不难。

一、C++应用领域

今天,我们就来聊聊C++的应用方向,学完C++能做什么?

1、嵌入式开发

嵌入式相关的岗位需求比较多,主要是硬件产品的驱动开发,很多大公司,比如华为、小米、vivo和一些芯片公司都在大量的招聘嵌入式开发工程师,而且薪资也不低。

要求熟练操作Linux系统,C/C++语言以及相关的编译和调试技术,精通Linux平台相关驱动开发技术,精通bootloader移植、内核剪裁等技术。


2、客户端开发

一般是开发Windows上的桌面软件,比如WPS之类的,技术栈的话一般是C++和QT,Qt 是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序,C++客户端开发岗位也比较多。


3、游戏开发

游戏开发是C++的一个就业方向,很多游戏引擎就都是使用C++开发的,做游戏的大公司比如腾讯、网易、哈游、莉莉丝、暴雪都招聘C++岗位,薪资也是非常可观,比如王者荣耀传闻年终奖几十个月。

游戏开发要掌握C++基础和数据结构,学习图形学知识,掌握游戏引擎和框架,了解引擎实现,引擎源代码可以学习Orge,UE4等开源引擎实现。


4、音视频图形处理

短视频和直播是如今大火的赛道,人人都能参与直播,直播短视频未来肯定还会大放异彩,而音视频处理也是C++的专长,这两年短视频特别火爆,抖音、快手、B站都发展的特别快,很多公司也有音视频方向人才招聘需求,感兴趣的同学可以尝试这个方向的C++学习。

常见的音视频开源库和方案有FFmpeg、WebRTC、Mediasoup、ijkplayer ,音视频开发最主要的技术栈就是C++。


5、服务端开发

C++服务端开发,也就是我们常说的后端开发,如今互联网后台开发主力语言是:C++、Java、Golang,C++的主要优势是性能十分优异,极致压榨CPU,Java和Golang更适合写业务代码,对性能有严格要求的后台会优先采用C++开发,百度、腾讯等大公司有很多用C++语言开发的后台服务,博主本人也曾在鹅厂担任C++后台开发。在高频交易领域比如量化私募企业、证券公司也在使用C++做服务端后台开发。

后台开发要求精通C++、STL、Linux网络编程等,熟悉设计模式、熟悉常用数据结构和算法,以及各种后端中间件。

6、人工智能

深度学习工程化开发,深度学习只是一项技术,它终归需要落地,想落地就需要工程化,人工智能目前可以落地的主要领域,个人认为主要还是安防和自动驾驶,这块都会使用C++开发,包括深度学习算法SDK,深度学习框架开发等。

上面这些就是C++大体的应用方向,大家可以根据自己的兴趣去学习相关的内容,一开始不要贪多,找准一个方向发力,学有余力再去学习其他方向。


二、如何学好C++

学好C++ = 看入门视频+经典图书+大量的代码练习+小项目+成熟大项目

可以先来看下,一般的C++初学者的学习顺序:

刚开始接触C++时,如果是学校开了C++课程的话那就更好了,可以跟着老师的进度学习,在课余时间可以多做一些习题或上机练习。如果你是完全自学,你可以找一本面向大学生的教材,掌握了一些基本的C++概念了。

那就开始学习面向对象的部分了,这部分内容比较多,初学者理解起来也会感觉比较吃力,建议多上机练习。在基本了解了C++的面向对象之后,可以开始学习模板库,比如STL,因为STL在我们的软件开发中非常重要,甚至有些招聘都要求会STL,(STL:标准模板库),这里面包含了大量的数据结构和算法的实现,有些可以直接拿来用,但是如果你对数据结构有特殊需求,那么你就要自己去实现这些数据结构。

如果你已经进入了C++的世界,那么你就可以进阶学习了,学习了这些你或许感觉有疑惑,为什么我不能开发出一个带界面的程序呢,呵呵,如果你又这样的需求,那么你可以学习一些界面库,比如QT,MFC等,这两个是比较常用的,QT入门稍微容易些,但是往后深入会比较困难,MFC入门起来会麻烦一点,有很多人也就是因此而放弃,但是甜头在后面,只要入门了后面的路将会是一马平川,障碍比较少。

你如果对某一领域感兴趣,你就需要去了解和学习相关的库,比如三维图形库OPENGL,网络通信库ACE等等,这些库基本是都是标准C++写成的,一般都是跨平台的。

也许有很多会有疑问,我学习了C++以后能做什么样的软件开发工作?

目前C++软件开发主要集中在以下领域:

1、服务器端开发:很多游戏或者互联网公司的后台服务器程序都是基于C++开发的,而且大部分是linux,unix等类似操作系统,所以说,你如果想做这样的工作,你需要熟悉linux操作系统及其在上面的开发,熟悉数据库开发,精通网络编程。

2、游戏:目前很多游戏客户端都是基于C++开发的,除了一些网页游戏可能不是,这个领域需要学习的东西就比较多,个人不太了解就不多说。

3 、虚拟现实仿真:这个也是发展很快的计算机领域,目前各种数字地球,数字城市,虚拟地理环境什么的,出现了这方面的大量应用,不过也不限于这些方面,比如科学计算可视化也是其中一个方向。这个方向重点需要学习的是图形学。

4 、数字图像处理:现在市面上有很多VC++图像处理的书籍,可见在这个领域的应用软件开发也是占了很大比重,需要深入学习数字图像处理和模式识别等课程。

以上节选自原文链接:C++学习路线-菜鸟笔记

三、再来看下C++学习到底要学哪些东西:

C++知识点

    基础:类型、遍历、const 限定符号、声明与定义

    标准库和算法:string、vector、bitset、map

    数组、指针和引用、动态数组、多维数组

    表达式、循环、条件判断语句

    堆和栈的区别,mallocl和 new 的区别

    面向对象的特性,封装、继承、多态

    虚函数、虚函数表、派生类虚表,对象内存布局

    重载 Overloading 和覆盖Overriding

    析构函数、构造函数,派生类中的构造函数与析构函数

    模板与泛型编程:模板定义、实例化、模板编译、模板特化

    继承:单继承、多继承、菱形继承、虚继承

    static关键字作用

    #define与 const 的区别

    C++中的强制类型转换:static_cast, dynamic_cast, const_cast, reinterpret_cast

    异常处理、命名空间

    现代C++:C++1X、C++20 新特性

怎么学C++?看书学!最高效的学习方式,看经典图书。

我当初在学习C++的时候,第一件事就是 Google 搜索前辈们推荐的 C++ 经典书单,前人的经验能让你少走弯路,这里我也分享下自己学习C++,从入门到进阶之路看过的图书:基础 3 本,进阶 3 本,现代C++ 1本。

自学C++相比Java和Python还是要难一些,因为C++更接近操作系统底层,需要自己管理内存等等。

关于C++优质视频学习资源这块,这块我整理了一系列优质的C++公开课和教程视频资源

有需要的童鞋可以后台私信发送 1024 打包下载10个G编程资源学习资料

一定要看的书,总共 7 本书(带封面,方便你找),一年应该看得完。

C++基础 3 本

    《C++ Primer 》豆瓣9.4

    《Effective C++》豆瓣9.5

    《More Effective C++》 豆瓣9.2


C++进阶 3 本

    《Inside the C++ Object Model》 这本书中文版《深度探索C++对象模型》翻译质量也很高, 豆瓣9.1


    《STL源码剖析》 豆瓣 8.7


    《C++编程思想》


现代C++ 2本

所谓的现代C++就是C++1X 甚至 C++20 引入的新特性,让C++这门「古老」的编程语言更加现代化。学完上面推荐的书籍,你已经是算的上是掌握了传统 C++ 用法,如何快速上手现代 C++ 特性,入门我推荐开源电子书:

    Effective Modern C++

看过Effective C++ 都知道那是多么经典的一本书,这本书的作者和Effect C++是同一位:

20多年来,Scott Meyers的“Effective C++从书”(包括《Effective C++》、《More Effecitve C++》和《Effective STL》)已经为C++程序设计指南的业界设立标杆。他清晰明了引人入胜的、对复杂技术材料进行条分缕析的阐释为他赢得了世界范围内的称誉,也使他成为一名广受欢迎的培训师、咨询顾问和会议讲师。他拥有布朗大学计科学专业的博士学位。

原书在豆瓣评分9.0,这本书有中文版,学习现代C++必备的高质量图书。


    《现代C++教程:高速上手C++11/14/17/20》


本书号称『高速上手』,从内容上对二十一世纪二十年代之前产生 C++ 的相关特性做了非常相对全面的介绍,读者可以自行根据下面的目录选取感兴趣的内容进行学习,快速熟悉需要了解的内容。这些特性并不需要全部掌握,只需针对自己的使用需求和特定的应用场景,学习、查阅最适合自己的新特性即可。

这本书已在Github开源
changkun/modern-cpp-tutorial

以上,多了也不推荐,看完这 7 本书差不多算是掌握C++,要达到熟练掌握,还需要项目练习和代码量积累,至于找哪些适合的练手项目,点赞超过100再来补充。

两个编程学习资源

认真看到这里的,都是真心想学习的同学,两个编程学习资源分享给你。

程序员写出好代码,参考世界一流互联网公司Google的代码规范:

有需要的童鞋可以后台私信发送 002 获取获取谷歌公司编程代码规范

编程学习书单推荐。学习编程最好的方法是看书+实践,尤其是经典编程图书!另外,即使是把书上的代码抄下来运行一遍,也比光看不练强百倍!

程序员柠檬:100本!计算机编程经典书单,打包带走!

希望对你有帮助

不像Java有GC,在C++中内存需要程序员自己管理,也正是因为C++给程序员提供了足够大的自由度。

C++能做的事情很多,在对底层的操控和运行速度上是Python和Java所不能比的。

在学习的路上,有兴趣的童鞋可以跟着我一起进阶!

我是柠檬哥,专注编程知识分享。

欢迎关注@程序员柠檬橙,编程路上不迷路,私信发送以下关键字获取编程资源:


发送 1024 打包下载10个G编程资源学习资料

发送 001 获取阿里大神LeetCode 刷题笔记

发送 002 获取获取谷歌公司编程代码规范

发送 003 获取10个精美简历模板PDF和Word版

发送 004 获取100道精选 C++ 面试题和答案word版

发送 005 获取获取谷歌LeetCode算法笔记

相关资讯

开展国防教育 提高国防意识——源汇区博爱学校开展“全民国防教育日”宣传教育活动

【来源:漯河教育网_源汇区】博爱学校国防教育主题班会博爱学校国防教育主题班会博爱学校组织观看国防教育宣传片博爱学校组织观看国防教育宣传片2022年9月17日是第22个“全民国防教育日”。学校国防教育是全民国防教育的基础,是实施素质教育的重要

山城区纪委监委:建设清廉学校守护育人净土

“每到新学期开学,我们都会将红色文化与清廉教育有机结合,通过参观革命旧址、聆听红色故事等方式,将清廉的种子植根于孩子们心中。”9月19日,山城区纪委监委专项监督检查组到区第七小学对清廉学校建设工作进行监督检查。自推进清廉学校建设工作以来,该

牧野区领导到学校进行教师节慰问

9月8日上午,在第38个教师节来临之际,区政府副区长于荣广,教体局党组书记、局长茹运甫一行先后到辖区河师大实验中学、第十二中学、明德小学、河师大附中及新组建的建设路小学进行教师节慰问,向全体教师和教育工作者致以节日的问候和祝福。同时,还慰问

中共芜湖镜湖区委组织部公示:汪文节拟任区属中学校长

新安晚报 安徽网 大皖新闻讯 据镜湖先锋网消息,2022年7月22日,中共镜湖区委组织部公示,为在干部选拔任用工作中进一步扩大民主,广泛听取群众意见,把干部选好、选准,根据《党政领导干部选拔任用工作条例》规定,现对以下拟任人选进行公示:汪文

吕梁一地:40所学校将进行整合

文水县人民政府办公室关于印发《文水县2022年义务教育学校布局优化实施方案》的通知各乡(镇)人民政府,县直有关单位:《文水县2022年义务教育学校布局优化实施方案》已经县政府同意,现印发给你们,请认真贯彻落实。文水县人民政府办公室2022月

为什么公立学校的老师很反对学生去晚托班学习?

随着教育部对教培行业的整改,一些公立学校的老师晚上放学后带孩子到家中做写作业的现象有些收敛,但对于小学生来讲,由于放学时间和家长上班存在时间差,导致一些孩子没办法去接孩子,后来教育部提倡公立学校进行延长放学时间,已解决家长接孩子难的问题。针

“同步课堂”:明年覆盖青岛乡村学校

【“同步课堂”:明年覆盖青岛乡村学校】同步课堂让不同学校共享优质教育资源,是推进教育均衡发展的重要途径。全市统一建设740间同步课堂教室,其中农村学校同步课堂教室数量占比80%左右,拥有同步课堂教室的学校总数量占全市学校的70%左右。202

聚力提升学生语文阅读能力长沙文韵爱阅读培训学校深耕“培优”

00:00红网时刻记者 向婉 视频 康希长沙报道“语文问题就是阅读问题。”近日,长沙市雨花区文韵爱阅读培训学校举办了2020中考表彰大会,9位孩子中考优异的孩子获得学校表彰鼓励。学校是学生步入社会前的重要“竞技场”,各阶段各学科的学习成绩都

友情链接

SEO域名抢注宝宝起名网妈妈知道币圈虚拟现实技术网观赏鱼养殖网南红玛瑙冯氏宝宝取名网单依纯歌迷网国酒茅台收藏网面包机品牌网七匹狼股票行情爱彼手表收藏高姓兔宝宝取名网TCL电视评测网千里达自行车巴中今日新闻网潜水运动周黑鸭资讯网
c语言中文官网-零基础c++从入门到精通pdf、c语言编译器、C/C++开发工具、c语言入门自学零基础、c++入门自学、c/c++软件下载、c语言编程软件、c语言自学免费网站、c语言零基础自学视频教程、c++手机编程软件、c语言入门程序设计、初级编程视频教程、c语言在线编程平台、C语言线上作业网站。
c语言中文官网 chuxinxin.cn ©2022-2028版权所有