C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因!

C语言是面向过程的,而C++是面向对象的

C和C++的区别:

C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因!_第1张图片

很多学编程的人认为,特别是初学者会认为:“我又不找C/C++的工作,为什么要学C/C++?”,就像“我又不找C语言的工作,为什么要学C语言”一样;其实答案不在于你做不做C/C++的工作,而在于你做不做编程行业的工作。道理很简单,打个比方如果你听到这样的话,估计你也晓得为什么了。“我是数学老师,不是语文老师,所以我不要学语文”这话看似正确,其实当你语文不好,你的数学表达能力也就欠佳,你的数学也难以成就多大,至少你表达不清,沟通不行,很多灵感的产生来源也就被抹杀了。《少年包青天》有一句话:一些漫不经心的说话,将我疑惑解开。包拯破案,并不是所有技巧都是自己从头思考的,而是很多得以于别人的提醒,这是正常的思维逻辑。这是一个综合的范畴。你需要的是提升综合编程能力,而不是局限于某门编程语言,否则该门编程语言带出来的瓶颈,你无法超越。

很多时候,并不是我们做什么就只学什么,特别是在编程这种科技行业。因为科技行业是客观的,涉及到一个现实功能的开发,它不会给你区分你必须要用PHP,还是必须要JAVA的......

C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因!_第2张图片 

所以:社会上,复合型人才才是珍贵的,物以稀为贵。

为什么是C++?

C语言接近底层,它细节繁琐,难度大,阐述的是面向过程编程思想,难以用在现实中用户体验度良好的项目开发。它的角色就像在背后默默为你付出的其貌不扬的人,有她不觉得多,但是少了又不行。

而C++的特点:是处在中层语言,下接C语言,上接PHP,JAVA等高级语言。它是最好探索编程世界的入口。

【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因!_第3张图片

C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因!_第4张图片  

那么,学C++的意义具体表现在哪里?

当然好的C++编程开发者,找个高薪工作是做的到的。这算意义之一。这也是很多人为什么选择编程的理由。其实我很想问,如果编程不是高薪行业,还会有多少人去学?所以利益熏心太重,不是一件好事,它会阻碍你长得高看得远。所以,不要再找那些借口“我没时间啊”,“大家都那样”,“我得结婚”,“我得养小孩”,因为这些大多数人都经历过,选择平庸是大多数人的做法,你借口太多,接下来的结果就是“大家都在挣扎,我也应该挣扎”...但是你喜欢这样的结局吗?

回报是需要付出的,在“想要”和“得到”之间,还需要“做到”。

“把薄书读厚,把厚书读薄”,相信大家都听过这种学习方法,后者是很难做到,因为是需要博览群书之后的融会贯通的总结,是涉及到境界的提升,但也只有做到了后者,你才能得到解脱。所以编程人生的最好发展模式就是:进入编程,走出编程,超越编程。

其实很难做到的是境界!

所以我认为学C++的更大意义在于:有助于让你探索到编程的本质、智能的本质,让你从现实中去理解为什么需要面向过程编程思想,为什么需要面向对象编程思想。数据结构是什么,算法是什么,编译原理是什么,操作系统是什么等等更深层的东西......

当一切都来的顺其自然的时候,你就会发现计算机前辈们的智慧了,你也就学通了编程,而不是只学通C++这门编程语言!

那么,对于C++范畴,怎么样才算学好C++?其实这个问题应该问你。

你可以这样的来扪心自问:不看任何C++的书,对一个不懂计算机的人讲述C++是什么?你能回忆起多少C++的东西?你能顺理成章的给他解释为什么要有面向对象这种编程思想?其实这也是督促你要学的灵活、学的融会贯通的一种学习方法.

C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因!_第5张图片 

学好C++可以从这几个方面去检测:

1:兼容C语言的部分;

所以学好C++,必须以学好C语言为前提。同理:学好上层语言如PHP,JS,java,又必须要以C/C++为前提。违背这个原则,你会遇到无法超越的技术瓶颈。你的编程职业生涯就会打折。比如学PHP的时候,难度不在于PHP的if...else...这些语法,而在于比如PHP的面向对象,PHP的接口,数据库的优化,服务器的负载均衡,集群技术,网络编程等等。

2:面向对象编程思想:类,继承,多态这些的产生渊源。

3:泛型机制。

4:模板机制:函数模板,类模板

5:它的标准库STL里面的数据结构和算法,这些内容你主要是要知道它们有什么实现方案,虽然不要你去写,但是你要懂得来源,这样用起来才放心。如:怎么实现容器vector,list,map的?

6:非标准库,如:Boost。

当然也是它里面的数据结构和算法。这些内容它帮你写好了,你很多时候其实只是在使用接口而已。所以,熟悉它,是一件简单的事。关键是要探索它的实现方案。

7:做几个项目,包括控制台的,图形化的,以及进一步延伸的QT编程。

8:游戏编程,如:Cocos2d

9:Linux操作系统

虽然不需要你在Linux上开发,但是你要懂Linux,而它里面涉及到的东西就多了。比如进程、线程、管道、队列、消息、通信等等。

学好C++,不是你开发了几个控制台程序,也不是开发了几个项目就可以宣告结束的,它是一个长期的战争,需要有打硬仗的心理准备。你要把它总结成一棵活着的知识树。这棵树的意义在于:当你几年过后,语法基本上忘记光了的时候,来看这颗知识树能瞬间找到感觉。

这是一种境界,这种境界不是靠看过几本书、背了几个语法就能达到的,而是要思考,要领悟,要联想学习、时刻要想到怎么去融会贯通...

所以学习C++,很多的时候都是在自我修炼,修身养性,就像练成葵花宝典都需要闭关修炼一样。学通编程,很多时候也都需要闭关修炼...需要灵感,需要智慧,所以我把现在的对编程的感悟,以及做的编程的作品,都给了个新的名字:灵感编程。

记住:你学习东西不是为了别人学,也不是为了显摆而学,而是让你自己的生存竞争力提高,让你成为强者。否则在“弱肉强食、适者生存”的环境下,你会觉得很苦,苦到家,苦到无底洞......

反过来,学通编程的世界,会让你越活越轻松、越老越吃香。谁都不想在30岁左右转型去做和编程无关的事情,只是被逼无奈,主要是学习速度跟不上知识更新速度,因为没学通......学通编程,你就可以像国外那些高手那样,专业而自由,不会因为年纪大而被迫改行,国外的高手都是头发花白了的,而国内就像吃青春饭一样,存下来的技术实力可想而知,是难以和国外的高手媲美的。但随着改革开放越来越深入,这种趋势只是暂时的,以后会是像国外那种情景:头发花白的一个老头,去某公司解决问题,什么也不带,两手空空,坐在电脑前,以迅雷不及掩耳之势玩转着黑不溜秋的屏幕(linux,unix),几下子,问题解决,报酬上W...

C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因!_第6张图片

人生都是几十年,别人工作一下抵得上你工作一年,他过的才是上等生活...

所以:要活出质量!

所以:现在无论你多大年纪,只要还不死,都可以有梦想去学编程。

当你学通的时候,你可以在未来任何时候爆发,比如:因为你学通了编程,所以未来什么语言火了,你可以立马转过去,总是走在前列,而且走的是那么的轻松自在......

这些是C/C++能做的

服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

你可能感兴趣的:(程序员,音视频开发,编程,c++,学习,ffmpeg,音视频,webrtc)