那么多人学习C++,学习它有什么好处?学完以后能从事哪些岗位?三啊三水

相信很多人接触编程都是源于大学期间的那堂C++语言程序编程,但是这门课却只告诉了你编程语言是什么,却没告诉你要怎么去熟练掌握编程。所以,不可避免的是许多人在毕业前夕才发现虽然学会了C++,但是好像却不知道能干什么,能找什么样的工作,能去什么样的公司。所以呢本文就从C++的角度出发,谈谈我对C++这门语言的理解。

咱这回不去谈什么复杂的应用场景,也不去聊语言底层的优化特性,就说说在大学里学了C++出来到底能干啥。当然了,由于C语言跟C++亲密的关系,咱就混淆一并讲了,道理是差不多的。

不敢说C++是世界上最好的语言,但C++基本是工科生中的大语言。暂且不说计算机专业,很多工科专业,比如电信、电气、通信等专业,基本上正常的学习中都会使用到C++。

都说C++兼具面向过程以及面向对象的特性,既拥有比较优秀的运行速度,又有良好的大型项目开发能力,那简直可以制霸高校实验室了。当然我们知道,另外一门同样在高校实验室里与C++不相上下的语言,就是Matlab了。

像我研究生期间就是左手Matlab试探,右手C++优化。论文专利什么的就靠这两种语言双管齐下。还记得在实验室里,基本所有的算法都是用C/C++写的。

最开始就学C++的基本都是老理工男了。就算指针再怎么难理解,虚函数表再怎么无情,也磨不灭我们这些工科生对编程的热情。

不过等到真正要找工作的时候,就不是那么回事了。听说现在由于算法岗已经是诸神黄昏了,导致一大批人冲向了后端开发。

而主流的后端开发语言就那么几种,以Java、C++领衔,Python和Go紧跟其后。作为写了这么多年的老C++coder了,哪能不去凑个热闹。

所以呀,学了C++之后,第一选择当然就是去面试后台开发的岗位啦。只不过我们都常说一句话,语言都不是最重要的。那对于学了C++想找后端开发的同学而言,什么最重要呢?

这个基础扎实首先意味着你比较熟悉C++这门语言了,知道不同版本的语言特性(比如C++11以及新出的C++20的区别),对常见的语言机制(比如多态、虚函数表、模板等)的底层有自己理解。

虽然说不看重你用什么语言,但是最起码你得比较熟练的使用一门语言吧。怎么才算熟练呢,大概C++底层机制、多线程编程、跨平台编程这些你都需要有所了解吧。

除此之外,编程能力的素养还体现在算法思想和数据结构的理解上。毕竟程序的基础就是算法和数据结构嘛。所以一些基本的数据结构,比如链表、数组、二叉树、队列之类的,还有一些基本的算法思想,比如贪心、分治、动态规划等都最好需要好好掌握一下。

这个就是科班与非科班比较明显的差距所在了。很多非科班的同学其实编程能力很强,但是由于没有接受过系统的理论学习,所以在理论学习上会比较吃亏。而后端开发涉及的东西比较多,从网络到性能再到架构,都需要系统的计算机理论来支撑的。

所以如果连计算机网络、操作系统、计算机组成原理、编译原理这些书都没见过的同学,需要赶紧买几本回来压压惊了。

想去做后端开发,起码得知道后端是什么吧。这就意味着你得知道一些基本的软件工程、软件架构、设计模式等知识。同时,搞个后端哪能不懂数据库呢,那你不得再学些诸如MySQL、Redis等数据库的基本操作吗?

当然对于校招生来说,由于的确是缺少大型的上线项目经验,所以对后端基础的要求不会太高,更多的是看编程能力和计算机理论基础。不过倘若是已经工作想转行的同学来说,后端基础还是会比较看重的。

毕竟C++已经是一个很成熟的语言了,所以除了后端开发其实它还有很多其它的开发岗位可以选择。自然而然的,就是客户端开发了。

相信大多数学C++的同学都用过C++写桌面软件吧。那时候估计还是用MFC,照着代码书上敲一遍就能写一个比较简单的界面了。所以如果不想做后端,完全可以靠C++找一份客户端开发的工作。

只不过,客户端也并不容易呀。做客户端同样也需要扎实的编程基础和计算机理论基础,同时可能还要熟悉Windows/C++编译链接机制、QT客户端开发技术体系、Windows消息机制等技术。

所以,假如你学的是C++,同时也不在乎业内莫名其名的岗位歧视链的话,找一个客户端开发的工作也是非常不错的。只不过相较于后端开发,你可能需要重新审视客户端这个角色。

在我看来,客户端与后端在职业发展上的区别主要有以下几点:

这就是岗位歧视链中最经常拿来讨论的一个点。普遍认为客户端的天花板较低,长期在市场上的竞争力不高。甚至还有人拿CTO基本全是后端开发出身的例子来验证这个歧视链。

怎么说呢,我觉得对于大多数人来说,客户端的天花板的确比后端要低。因为客户端是一个两级分化比较严重的技术,厉害的人天花板可以突破天际,而一般的人真的就很一般。而后端相较之下,的确职业高度的分布稍微均匀一些。

但是,当客户端开发达到一定深度后,难度绝对不比后端开发难度低。反而有时候为了获得更好的端上体验以及更快的用户响应,涉及到的技术会更加底层,更加硬核。记住一点,客户端开发绝不是改改UI,改改文案这么简单。

所以我特别不喜欢这种歧视链,从非常片面的角度去论证某个职业或者技术的好与坏,甚至还上升到歧视的层面。我比较认同的是兴趣爱好论,而不是这种天花板论。

客户端客户端,很显然是面向用户的。这就意味着客户端的开发是直接接触到用户,这也是与后端开发最主要的区别。

说简单一点,客户端开发就是为用户服务,优化用户体验,让产品变得更好用。所以客户端有一个天然的优势,就是离用户很近,知道用户想要的是什么。

问问自己,你觉得自己干技术能干几年,写代码还能写到多少岁。身体熬得住吗,头发还剩多少?干技术这行,还是需要天赋和意识的,特别是真正顶尖的技术大牛。不是所有人能够在技术这条道上一直走下去。

那走不下去怎么办?转型。

所以客户端的发展从来都不只是技术,而是业务技术两手抓,当然会有所侧重。业务能力意味着产品思维,放大点说就是互联网思维。这就是客户端的一大优势。

这的确是目前客户端发展的一个痛点。放开到二三四线城市,后端的需求的确要比客户端要大。因为在小公司里,往往不需要那么复杂的客户端支撑。

很多时候都是把后端开发程序员当作全栈来用。很多人都会考虑说,假如干了客户端,之后跳回老家就找不到合适的公司了。虽然这的确很有可能,但也没这么夸张。

只要你的基础扎实,并且善于学习,其实到哪儿都能找到差不多的工作的。不过在一线城市,后端和客户端并没有明显的差别,互联网大厂对这两种岗位的需求都是很大的。

我们知道现在基本各个大平台都在做短视频,同时也不断接入各种直播模式。在这个趋势中,对于音视频/多媒体方向的开发需求越来越广。

这说明音视频/多媒体开发是很重要的一份工作,而在对音视频或流媒体进行处理的时候,算法效率就是很重要的评价标准。这不就是C++所擅长的场景嘛。

所以呢,学了C++还可以选择去做音视频开发的方向。这个方向更偏向于具体的场景,比如播放器,比如直播平台,比如音视频特效等。当然了,C++更多的还是偏算法实现的方向,许多多媒体开发本身还是立足于平台,比如基于Android、iOS或者Windows,来进行满足平台特性的开发。

不过想要找这个方向的岗位,基本的音视频开发的理论知识得掌握吧。这里同样也包括了很多理论层面的知识,比如图像、音频、视频的采集、渲染、处理、传输等方面的问题,图像和音视频的加工、裁剪、编解码等处理。

一些基本的处理库,用于图像处理的像OpenGL、OpenCV等,用于视频编解码的x264、OpenH264、ffmpeg,用于音视频处理的speexdsp、libfaac、opus等库不也得熟悉熟悉吧。

还有音视频传输的协议、直播推/拉流的协议,如RTMP、RTSP等也可以掌握掌握。哈哈不要被吓到,毕竟会C++只是基本的编程能力,但是具体的岗位肯定有业务能力上的要求。

游戏开发也是C++的可以进军领域之一,像很多游戏引擎都是基于C++开发的。只不过游戏开发真的需要兴趣和热情。如果不是因为喜欢游戏,建议还是不要选择游戏开发的岗位。

不是说游戏开发前景不好,而是说这件事如果没有足够的热情很难走得很远,并且因为方向不是很大众,到时候想换方向了,可选择性就不是很多。

国内比较出名的游戏厂商就那么几家,但是投递的人却很多。这也导致这个行业的竞争很大,所以在招聘的时候会更看中你的游戏开发经历。

如果是校招生,很少会有比较多的游戏开发经验,但是可以通过许多途径去弥补这一缺陷,比如参加游戏开发比赛,比如自己开发demo。起码也得了解过或者用过一些游戏引擎,这样简历也会更加饱满一点。

对于游戏开发的业务能力要求刚刚也提到过一点,大概包括游戏引擎的使用和了解,比如常见的Cocosa2d、Unity3D等,游戏引擎的实现原理和机制,还有面试时候基本都会问到的计算机图形学理论。计算图形学是游戏开发领域及其重要的理论基础,毕竟游戏离不开各种图像模型的渲染和处理。

所以呢,如果你在大学期间有基础过一些图像学的工作,比如一些模型绘制、三维渲染的工作就可以去尝试一下游戏开发的岗位。我之前有个师兄在研究生阶段是做医学图像处理的,主要的工作就是对人体脏器和血管进行三维显示的,然后就去做了游戏开发。美滋滋。

上面几种岗位选择都是偏软件方向想的,而C/C++还有一类非常大的就业方向,就是去做嵌入式。嵌入式本身可能是偏硬件一点,但是现在做个什么事,都是软硬不分家的。

嵌入式的开发同样也会涉及到网络编程、并发编程等方面。通俗点解释可能就是,嵌入式代码是运行在别的小系统上,而不是传统意义的计算机上。

所以嵌入式开发更适合原来专业是电信、微电子之类的专业,毕竟这个方向除了需要编程能力,还需要基本的电路理论素养。

说了这么多,有没有发现好像只会C++是找不到工作的。不管是哪个岗位,在对C++基础的要求上,还会有额外的东西。这其实很好理解,毕竟C++只是一门语言,只是一个工具。

就好比你光有一把弓箭,是没办法射大雕的。你还需要许多额外的能力和知识储备,甚至还需要一点预判的意识,才能够在合适的时机以合适的力度射出那一箭。

而C++,只是那支射出的箭罢了。你越熟悉它,箭头便愈发锃亮,破坏力也就越强。并且同时,空中盘旋的也不只有一只大雕,你还需要选择机会最大的那一只。

涉及到了:编程入门、游戏编程、网络编程、Windows编程、Linux编程、Qt界面开发、黑客等等......

THE END
1.探索编程的魅力:为什么每个人都应该学习编程科学计算机编程语言p为什么学编程 (Why Learn Programming) 在当今这个数字化迅速发展的时代,编程已经成为一种基本技能。无论你是学生、职场人士还是退休老人,学习编程都能为你打开新的大门。本文将探讨学习编程的重要性、应用领域、学习编程的途径以及它对个人和社会的影响。 https://www.163.com/dy/article/JGPC4JPJ0556A727.html
2.学编程有什么好处(全面)什么是编程学编程有什么好处,,实践能力:编程是一门实践性很强的学科。通过编程实践,人们可以不断积累经验,提高自己的实践能力和解决问题的能力。 结语 综上所述,学编程的好处是多方面的。它不仅能够提升个人的逻辑思维和问题解决能力,增强创造力和创新能力,提高工作竞争力,促进跨学科学习,培养耐心和专注力,拓展全球视野与合作机会,还能够增强自信https://blog.csdn.net/fafdafaafdfafQWQ/article/details/142671156
3.孩子学习编程的好处有哪些?孩子学习编程的好处有哪些?今天上海核力科创中心老师为大家分享下文几点,供大家学习参考,希望对大家的学习之路有所帮助,一起来了解学习呀。 培养批判性思维 根据这项调查,批判性思维和解决问题的能力是活动和职场生活所需的两项最重要的技能。程序设计让孩子们发挥他们的推理能力和理性思维,并在这个过程http://www.eduwxy.com/10073/n_383566.html
4.孩子学编程的好处有哪些?孩子学编程的好处有哪些? 童程童美少儿编程认为,孩子学编程的好处众多,不仅有助于提升他们的逻辑思维能力,还能培养细心和专注的品质。 首先,编程锻炼孩子的逻辑思维能力。在编写程序的过程中,孩子需要将复杂的问题拆解成若干个简单的子问题,并逐一解决。这种分步骤、有条理的思考方式,能够培养孩子的逻辑思维能力,让http://it61.tantuw.com/hot/1391.html
5.孩子学编程的好处和坏处有哪些好处:通过学习少儿编程,可以提高孩子的综合能力,例如编程能力、综合学科能力、逻辑思维能力、未来职场竞争力和领导力等。坏处:孩子本身自控能力差,而且长时间使用电脑有辐射,对孩子生长发育不是很好。 1孩子学编程的好处 1、锻炼孩子的逻辑思维能力 编程程序就是把问题拆分,然后一个问题一个问题的去逐一解决。在编程的http://www.chusan.com/zhongkao/257845.html
6.孩子学编程有哪些好处宁波高端网站建设孩子学编程有哪些好处 有很多的父母已经主动安排自己的孩子去学编程,而且这种现象在一二三线城市已经更加普遍了,那为什么要让孩子在学完必修课程之后,还花时间花金钱花精力让孩子去学编程呢?其实在国外很多学校已经将编程纳入必修课中了,邓小平爷爷曾经说过“计算机要从娃娃抓起”,未来的科技会越来越先进,未来的互联网https://www.u-sound.cn/newsInfo/46.html
7.学习少儿编程的好处有哪些不知道大家有没有发现,身边很多家伙在那个都会把孩子送去学习少儿编程,但是家长们你们真的了解少儿编程,知道为什么要让孩子学习少儿编程吗,想必大家对其知之甚少,今天小编就来和大家为什么孩子要学少儿编程.南昌少儿编程培训 少儿编程是教育发展的进步,在未来,世界将人工智能化的时代。如果孩子将来不会编https://nc.xuemanfen.cn/xinwen/320553.html
8.小学生学习少儿编程的好处有哪些?小学生学习编程有哪些好处?作为家长对于孩子成绩和未来是很重视的,从小孩子上学开始,总是担心孩子学习上吃紧会输给别的同龄孩子,现实是自己的孩子与同龄孩子站在同一起跑线上还没有开始起跑就已经输了。家长看见别的孩子在学习少儿编程,自己对少儿编程不是很了解怎么办?今天上海小码王少儿编程培训机构小编就给家长们来http://www.eduklt.com/6573/n_368733.html
9.学编程的好处学编程的好处包括:提升逻辑思维与问题解决能力,增强创造力和创新能力,提高工作竞争力,促进跨学科学习,培养耐心和专注力,拓展全球视野与合作机会,增强自信心与成就感,培养自学能力和持续学习意识,推动科技进步和社会发展,提高自动化与效率,促进创新思维与实践能力。 学编程的多方面益处 提升逻https://localsite.baidu.com/site/wjzsorv8/8cd47d9a-7797-42f3-9306-b902ded71161?qaId=1267994&categoryLv1=%E6%95%99%E8%82%B2%E5%9F%B9%E8%AE%AD&efs=1&ch=54&srcid=10014&source=natural&category=IT%E5%9F%B9%E8%AE%AD&eduFrom=136&botSourceType=46
10.小学生学习电脑编程的好处都有哪些?计算机编程语言是人类和计算机对话的一种语言,它和我们用于沟通的汉语、英语等语言一样,有着相似的学习过程。随着大数据的不断发展,掌握一门编程语言能够明显提升自身的综合竞争力。那么小学生学习电脑编程的好处都有哪些呢?下面就由小编跟大家详细介绍下。 https://www.jikestar.com/zuixindongtai/2878.html
11.科普贴中学生编程的好处和升学优势双一流大学强势编程专业一、学习编程的五大好处 1、逻辑思维能力的提升 编程是一种以逻辑思维作为基础来进行操作的过程,在这个过程中,为了让计算机理解自己的目的,中学生在学习的过程中,将自己学习的过程、方法、思路、一步步地化作计算机代码体现着计算机上,逻辑思维能力得到了有效提升。同时,也能够培养孩子的一种体系化思维、逻辑思维和抽象http://www.qyyz.cn/menulist?article_id=58&id=159&index=-1&isShow=true
12.学编程有什么好处学习编程的好处介绍常见问题学编程有什么好处?这是不少网友都关注的问题,接下来由php小编为大家带来学习编程的好处介绍,感兴趣的网友一起随小编来瞧瞧吧! 学习编程的好处介绍 1、通过学习编程,用户可以掌握计算机编程的基础知识和技能,进而可以开发出各种实用的软件和应用程序。 2、学习编程不仅可以让用户了解计算机是如何运作的,还可以培养用户https://m.php.cn/faq/734520.html
13.什么是编程学编程有什么好处学编程有什么好处? 学习编程的好处 1. 未来职业发展:随着科技的飞速发展,编程技能已经成为很多行业的必备技能。无论是从事科技行业还是传统行业,学习编程都能为未来的职业发展提供更多机会和选择。 2. 增强逻辑思维能力:编程需要使用严谨的逻辑思维来解决问题,通过编程学习可以锻炼和增强自己的逻辑思维能力,从而更好地理https://www.hxsd.com/content/32155/
14.少儿学习编程有什么好处伴随着技术的发展,编程学习也走向全球化,国内编程学习的热潮正在兴起。那么下面和小编来看看这篇少儿学习编程有什么好处的文章,一定会有收获的。 1.编程提高了孩子的数学成绩 很多孩子在学习数学时都会觉得吃力和无聊,因为数学是一门概念学科。数学是抽象的,考验了孩子的逻辑推理能力和他们思维的缜密性。而编程常常能帮https://www.qinxue365.com/wenda/659880.html
15.学少儿编程的好处有哪些?学习编程不是一定要为了去成为程序员,而是学会一种思考方式,同时也培养另一种能力。今天小编主要给大家分享孩子为什么要学少儿编程,希望对你们有帮助! 孩子为什么要学少儿编程? 一、培养逻辑思维 对于程序运作,熟悉计算机运作的基础知识的家长应该明白,即使不熟悉,在数学课本上也学过。 https://www.luwen.cn/wenda/5953.html
16.学习编程对孩子有什么好处孩子的个性可以从他们的日常行为观察出来,也可以通过他们的作品呈现出来。机器人的搭建可以给孩子们无限的想象力,让他们自由发挥。 二、思考和解决问题的能力 编程能够引导孩子的大脑去整理出清晰的思路。这个思路就是:脑中有一个任务,通过逻辑思考和创造思考,来一步步寻找完成任务的路径,这个过程中会不断犯错与调试。https://www.houxue.com/news-3197501/
17.初中生学编程有什么好处?很多家长及学生都在问,现在初中生学编程有什么好处这个问题,众所周知,现在是信息技术时代,计算机是现在主要的通信工具,学习要学习计算机编程我认为好处是大大的,比如培养自己孩子的爱好,将来可以从事编程行业,另外也可以锻炼逻辑思维能力,对学习成绩提升也是有帮助的,下面给详细介绍一下初中生学编程有什么好处? https://www.pxwy.cn/news-id-39308.html
18.编程是什么?孩子学有什么好处?孩子学有什么好处? 编程是一种用计算机语言来控制计算机的行为的技能。编程可以让我们创建各种有用的软件,如游戏,应用,网站等。编程也可以帮助我们解决生活中的问题,如数据分析,自动化,人工智能等。 孩子学习编程有很多好处。首先,编程可以培养孩子的逻辑思维和创造力。编程需要孩子分析问题,设计算法,调试错误,优化代码https://m.w3cschool.cn/article/82184094.html
19.学少儿编程有什么好处?孩子学习编程有哪些好处呢?小编总结了几点,希望对大家有所帮助。http://www.eduaac.com/11365/n_389382.html
20.学习编程对孩子有什么好处编程能给孩子带来哪些好处? 2014年,英国将编程编入教育大纲,所有英国的孩子从5岁起就必须学习编程。而后的2016年,美国政府投入了40亿美元,在全美大力推广编程教育,现在全美有超过1200万孩子在学习编程。 当中国的孩子还在挤破头学英语的时候,以英语为母语的两个主要国家却已经把编程作为他们的"第二外语",开始为下一https://www.meipian.cn/3e8e7etq
21.学编程课对孩子有什么好处随着科技的发展,孩子们的兴趣班也变得越来越多,这两年非常火的一个类型就是编程;编程这两个字听起来是比较高深的,所以家长们对此都趋之若鹜,但是一定要提前思考自己的孩子适不适合学习编程。 学编程课对孩子有什么好处 1、提高逻辑思维、创造力 编程语言是最精密的语言,通过学习编程培养孩子高效的数学思维和编程思https://edu.iask.sina.com.cn/jy/kDc8DWUwF7.html
22.让孩子学习编程都有那些好处呢?英国本科留学申请服务 美本留学规划服务 SAT备考培训班 留学背景提升项目 美国研究生申请EP计划 热门资讯 C++少儿编程都教孩子学习那些内容呢? 北京趣乐码少儿编程对孩子都有哪些帮助? 少儿编程学习都有哪些好处? 北京趣乐码信息学奥赛都培训那些内容? 课程导航 文化课 少儿编程 校区导航 北京分校地址 热门http://www.eduaag.com/5825/wd_89883.html