为什么有人说C++是最难学的编程语言? (4个回答)

从事嵌入式开发多年,有三种语言玩的比较多C/C++ java,从编程语言的难度来讲C++是最难得,而且也是最难入门的编程语言,很多编程老手都是这个结论,为什么C++是最难学的编程语言,虽然难学但还是很多编程老手喜欢研究它,更是很多架构师的最爱。

现在以个人的观点讲述为什么C++是最难的编程语言,其实在C++基础语法部门看不出这门编程语言有多难,难在泛型编程和面向对象的特性展示,几乎每个知识点都附带着很多细节点,而且更加要命的是C++语法规则还在不停的延伸,几乎长期玩C++都有一种通病总是觉得这门语言学不完,就连C++的创始人都说自己有时候都看不懂这门编程语言了,linux的创始人对于这门编程语言成见也非常大,有点故弄玄虚的感觉。

如果单纯从学校的理论角度去学习这门编程语言其实看不出有多难,因为基础语法的学习掺杂的东西就比较少,很多在学校学过这种语言的大学生觉得自己的基础应该还可以结果真正开始做项目的时候傻眼了,原来还有这么多自己不懂的语法知识,只靠那点皮毛根本解决不了问题,所以要想学好这门编程语言首先要做好充分的心理准备,起码几个月的时间在迷糊期度过。至于具备什么条件才能学好C++,这种没有定论很多大学生在学校自学了C++,还没毕业就通过网络途径找到工作了,所以编程语言的学习从来都不是固定的。

在网络上认识一个大学生,本身对编程很感兴趣,特别是对C++感兴趣,完全靠着一腔热血把这门语言给学好了,并且不断拓展知识面,有关C++的书籍研究了不下五本,并且借着这种势头还不断通过看书拓展自己编程基本功,还没毕业去找工作就成了抢手货,所以不要给自己设置界限,不一定非要参加培训通过自身的努力也一定可以。由于经常在网上写点东西,遇到一些大学生经常写技术文章,开始的时候不会写,后来坚持的时间长了越写越有感觉,再加上网络信息非常发达,有一些猎头或者技术高手在网络上发现有可塑的人才也会主动联系,所以很多大学生还没出校门就把自己的工作给搞定了,不要轻易否定自己。

在这里插入图片描述
其实做为一个学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C语言C++交流群1075673198,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。

游戏开发,大数据和服务器方面开发,网络开发,嵌入式开发等,现在很多主流的客户端都是用C++完成的,安卓内核框架和谷歌浏览器绝大部分代码都是C++完成,不用担心这门编程语言不行了之类的鬼话,由于这门语言相对比较难入门起来相对费劲。

难也只是相对的,只要觉得感兴趣就去全力去学,学的时候不要考虑是不是能找到合适的工作,编程要能学好必须能下功夫,软件开发讲究的水到渠成,功夫到位了自然就能做项目了。

希望能帮到你。

从这个趣事就可以看出C++是非常难学的编程语言,在主流的高级生产级编程语言中可以说是最难学的编程语言了,从入门到精通最难的编程语言,从入门到放弃最简单的编程语言,可以说是名符其实。

C++语言是C的超集,1982年,美国尔实验室(AT&T公司)Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,从此C++编程语言诞生,面向对象的到来、STL标准库的诞生,以及微软等大公司的支持,让C++逐渐流行起来。但是C++从一开始就是一门复杂的编程语言。

从通用性上来讲,C++不局限于一个领域或者少数领域,而且没有明显的倾向性,比如PHP最擅长的就是web开发,Java最擅长的就是复杂业务逻辑处理,C#做桌面开发非常方便,而C语言最擅长的就是系统级别的开发,而Python则是最主要的人工智能研究语言。但是C++不一样,没有明确的倾向性,并且功能还非常强大。
在这里插入图片描述
其实做为一个学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C语言C++交流群1075673198,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。

C++可以完成系统级的开发,垂直领域的特定应用开发,甚至在教学科研以及嵌入式等等领域都能够很好的完成,这就是最大的问题,那么注定每一个方面都要做得很好。

从多范式来讲,C++不是彻底的面向对象编程语言,也不是纯面向过程的编程语言,也不是标准的泛型编程语言,这玩意儿是多范式的。也就是反过来说,她即是面向过程编程语言,也是面向对象编程语言,还对泛型程序也有很好的支持。知道什么问题了吗?对的,就是她什么功能都很全!

所以其实C++之难学,难于上青天的关键在于C++太强大了,功能太多了。 这样一个通用型、多范式的编程语言,当然是非常难学。但是在很多领域,比如系统级开发,大型游戏开发等领域C++还有着巨大的优势,因为C++毕竟是仅次于C语言的运行效率的编程语言,何况它还支持面向对象。

题主的问题描述中四个“?” 我能回答两个半。由于本人是非专业人士,所以一下回答仅供参考。

这个问题我不确定。

在我看来既然C/C++能够“长盛不衰”这么多年,足以说明它们的价值。单凭这一点就足够说明问题的了。

不过虽然我不是很专业,但是我也知道不用的领域会更多的应用不同的语言,尤其是题主还是自学,那么除非你的目的性很明确——比如从事某个岗位的职业,否则还是应该从比较容易上手的、应用比较普遍的语言入手比较好。 所谓先上路,路上在慢慢想! 比如你完全可以先选择比较容易上手的Python。

能!

这个问题我能回答的原因是因为我家孩子9岁的时候开始学习的C/C++,我们学的比较慢一周也就是两次课(前大半年一周一次),纵然是如此,目前为止孩子基本上也已经把语法部分(即编程语言的本身)都学完了。 只要不是算法太复杂的问题,孩子大都是可以做出来的。 目前孩子正在开始学习各种算法。

我之所以说“能”是基于这近一年来孩子的表现以及二十年前我学C语言时候的一些经验总结出来的。

但是,我必须要说名两个问题:

1、能否学的好,完全取决于你的努力程度而不是“理论上的可能性”。

很简单的道理,当你看书学或者看视频学(网上资源跳多了)的时候,你仅仅是照着课程内容敲打一边代码就行了还是会做笔记、会找相关题目练习这两种学习的方式直接决定你后面的学习效果。 就我孩子的学习情况来看,孩子的掌握程度基本上取决于投入练习的时间长短(当然,还有动脑程度)。

2、语言仅仅是一个工具。

编程语言仅仅是一个工具而已,当你工作时候更多的是要用这个工具去解决具体的问题。举个最最容易理解的例子:学习数学、物理的时候各种公式的本身并不难理解,但是当你应用的时候就会发现“ 我去!这题怎么做? ”。同样的道理,语言你可以短时间内(两三个月足以达到入门级)学个七七八八, 但是当你真的想用这个东西来解决问题的时候,往往会发现无从下手,甚至连点思路都木有!

因为我和孩子学习C/C++是因为我们想试试参加一下NOIP,所以我们的经验有限,但是这些道理也是很多老师、朋友跟我分享过的,我觉得是有道理的。 比如我家孩子每节课听的都自认为没问题,但是一旦开始做题了,尤其是稍微复杂一些的问题时候,基本上就跪了!

老师、朋友们跟我说解决这个问题没有什么捷径可以走,就是多练、多读(读程序)、多想、多交流!

这个问题不难回答,但是我说不全,所以只能借助网络尽可能的把它主要能做的事情给你罗列一些:

C/C++主要用于操作系统软件底层开发比如开发操作系统,各种协议软件,硬件驱动,嵌入式,服务器,或者算法研究,游戏开发,还有各种图形处理,总之那里的性能需求和运行速度比较高的,那就用C/C++。可能这么说觉得太笼统了,我再直白点比如手机,飞机、动车、机器人、大数据、人工智能、仿真等等都能用的上!

无论你的规划、计划是如何,你都要先“出发”,只有在前进的路上你才会发现各种各样的问题,也才能更有针对性的解决。认真学、多练、多交流你一定行的。

最后给你讲一个我觉得还不错的案例: 我的一位超级远房的亲戚孩子,高中毕业啥也没考上,最后去了我们这里的一个还算老牌的计算机培训机构,学了2年多的编程,后来推荐工作之后认真努力的学、做,几年下来这孩子现在一年收入也是很不错的。 当然,这种事儿不具有“普遍性”,是否“成才”很大程度上还是要取决于个人的努力情况。如果你有这个毅力,那么就去做吧!

加油!

对于正在学习C/C++的同学来说,C语言可能不难,但是当自学C++的时候,总会出现各种问题,就像是一个恶性循环不懂所以不想看,关键是没有·一个由浅到深的过程,刚开始就让人无力,那怎么样从浅到深学习C++呢?

首先,C++面向对象式的编程对开发者隐藏了很多细节,而面向过程的思维方式是一下子不能适应这粗象的思维方式。先把C语言打扎实了,着手练习用C语言实现各种常见算法和各个课后习题,等到算法研究了些时候,慢慢的不再代码注意细节(细节已达到编码时随手可写出的程度)之后,再来看C++语言,顶多几天就能适应,完全可以像学C语言一样的容易,那时可深入学习C++。

学习C++可以从《C++编程思想》开始,学习基本语法和面向对象程序设计思想。然后如果有项目可以跟着项目学习,借鉴前辈的经验。如果没有项目则可以借鉴书籍,例如《深入浅出MFC》等,通过一段时间的演练,相信对抽象,封装,多态,继承等就会有较深的认识了。

接着可以接触下《C++ primer》,《Effective C++》,《More Effective C++》等书,借鉴大家的经验,修正自身的一些毛病和问题。再往后就可以了解下设计模式相关的一些书籍,然后在实践中靠自己多积累。

不必为C++的某个语法问题而慌乱,不必为不懂C++某项技术而迷茫,选择一个领域,选择一个范式,专注于C++的一个子集。在此过程中,努力去领悟C++编程的思想,一旦顿悟定将妙用无穷。

C++是广博的,它涵盖面如此之大,让它如何能简单。希望各位都能善待自己所学的C++

C++很多人学到后面都放弃了,但只要学过这门语言的人,编程意识都会比同一阶层的人来得更好一些。比如我就有看过java编程的人在内存这块完全没有任何意识的,但学过C++的人,或多或少会去留意一下有没有释放内存,是不是内存可以共用等等。

我从指针跟内存这两块来说说为什么C++很多人认为是最难的编程语言吧。C++用的人多,骂得人也多。学起来不容易,用起来出起问题来,也是不带含糊的,排查的时候那是更崩溃的。所以现在很多企业都不大愿意去碰C++,真的是对员工的技能要求比较高。

指针跟内存,基本上是分不开的两块,指针指向一块不被分配的内存地址时,天知道会怎么样,崩也不一定就崩在那一行,自己创建内存,释放内存,这个必要从一开始要耶刻到脑海里的习惯,不然只创建不释放,哪天程序挂得不知所措。

总之能用好C++的人,都是一个挺好习惯的人,细节的注意会比较好一些。

  • 2
    点赞
  • 17
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

明天会比今天更好

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值