为什么全网都劝你学Python、Java,而不是C++,糟糕程序员的垃圾语言!

作者: 编程小贴士分类: 计算机技术 发布时间: 2022-11-29 20:21:43 浏览:198880 次

为什么全网都劝你学Python、Java,而不是C++,糟糕程序员的垃圾语言!

Ryaee:
小白一上来学c/c++会很劝退,因为好多东西都看不懂。先学了python,明白了大致编程语言怎么回事,怎么定义类和方程,之后就会很好理解java。java里加强对reference,数据型,container的理解之后就会很容易看懂c++。学习永远都是循序渐进的,比方说虽然指针是c的灵魂,但是没有一个教材会一上来就给你介绍指针,而都会让你尝试输出一个hello world。但是有个概念叫做“知识的诅咒”:一个熟练掌握某种技能的人会难以理解初学者遇上的困惑,这就是为什么很多程序员都会推荐你一上来就学高难度高复杂度的语言或者编程技巧,他们虽然也都曾是初学者,但早已不能理解初学者了。

【回复】然而人都是有惰性的,学了python,各种语法糖全给你封装好了,学完以后,你看非计算机专业的还愿不愿意学C。我觉得科班的先学C挺好的,先把底层原理全搞明白了,以后再学往下学汇编往上学python也差不多。但是非科班用python也就够了。
【回复】回复 @理茶的叶子 :C可不是面向对象的语言啊,而且c不是强类别语言。学完c之后最多就是知道指针,然后你会像别的语言一样,重新造很多轮子,知道一定数据型和算法的基础,只不过过程会相对痛苦些。而面向对象的精髓,比如封装,继承,多态等等c是都没有的,你之后得重新学。哪怕计算机专业的,一上来学c既不轻松,也不一步到位。目前看来以我的理解,学c最大的好处一个是主流系统自带c编译器,还有就是网络底层架构都是c写的。所以如果你如果是往多平台开发或者网络开发方向走,学c会有帮助。但也不代表你应该一上来就学c。真的想一步到位可以学c++,但是和c一样初学者学起来会非常痛苦。当然你提到了惰性,没错人都有惰性,都喜欢用掌握的技巧解决问题。但对于计算机专业的人,我不认为惰性会起太大影响。毕竟兴趣是最好的老师,你如果对计算机没兴趣为什么选这条路呢?
【回复】回复 @Ryaee : 因为C更加和人类思维相同,你写数学题是把题变成对象还是一步一步写。所以就像你说的循序渐进的过程,从人类的思维到c语言,这个转换不是特别大,等了解了计算机的各种相关概念以后再转到C++。上来就学C++,三个特性直接把人整懵逼了。你说的学完c要学别的,说的好像先学别的语言再转换就不用学了一样,而且你一会说要一步到位一会说要循序渐进不知道你要咋样
厉害吧24中:
学计算机核心,就学好四门基础课。语言什么反倒是其次,C语言就挺好的,语法简单,多跑几次“烫烫烫”,也有助于提升对程序的理解。 本人是硕士阶段开始接触Java的,硕士3年+工作4年。Java和C++相比,Java编码简单,三五年就能玩熟了,你想要的解决方案,Apache、Spring社区、阿里都帮你做完了,你随便用。 再往后发展就和Java没太大关系了,重点是高并发、高可用的业务架构,或者高复杂度的业务代码。Java的解决方案很多,重点在于你要根据自己的业务选择最好、最有扩展性的解决方案。Java的神书是《重构-改善既有代码的设计》,你的代码运行速度不是最重要的,最重要的是设计合理的技术架构,可以快速、稳定的支撑业务变更,也就是所谓的“磨刀不误砍柴工”。别人一项变更需要5天,你可以2天重构,3天实现需求,后续你还可以继续享受重构带来的开发效率的提升。 再往后就是DDD,你的方案是和业务强关联的。你是技术大牛,你写个算法把O(n)时间复杂度的算法减少到O(logN),但其实可以分析业务,把这部分逻辑删掉或者迁移走,O(n)时间复杂度直接降为0。 Java的上限不是Java用的有多好,是别的东西。当然并不是说别的语言做不了架构,而是Java的语法比较简单,可以把更多的精力放在架构上,你要用C++,是不是还得花精力在内存释放上?那考虑架构的时间不就少了。这是个时间分配的问题。

【回复】回复 @阿远的朋友 :计算机组成原理,数据结构,操作系统,计算机网络
【回复】回复 @女仆世界第一 :算法不是四门基础课,算核心课程。
【回复】回复 @普通太攀蛇 :我不一样,直接给劝退了哈哈哈,现在专心学python[笑哭]
养棵松:
我最开始学的是java,但是因为感觉java一大堆的什么什么名字,难死了,没继续学,后来学的C++,然后才学的C,真的,学了C++后学其他语言真的很简单,后来更喜欢用C#和Python,因为比较符合我的开发习惯。 不过应该是学了C++之后吧,每次写Python就担心太慢了,要不就是用c—py加快,要不就是查原理,想看看会不会影响速度。 然而,直到现在,每写了一点东西,我都会想,用从C++或者C怎么实现,让它既轻量又快速。 现在只是一个大三学生,学到目前的感受就是。 编程语言基本没什么优劣之分,看个人习惯和看项目适合用什么写吧,我现在基本上Python,java,C系列都会一些,每次写项目就看项目需求,想要快速出结果就用Python啊之类的,想要效能就用c系列,想要巩固基础,单纯的学习,就用c++

【回复】请问刚入大三0基础转嵌入式还来得及吗?都说Java不行了
【回复】yysy学了c++后 效率 这俩字莫名其妙地刻脑袋里了
somebody-康:
我OI出身,还没上大学,但个人觉得学C++应该先从算法和数据结构入手,看那么多语法书其实没有什么意义。可能某些语法在工程方面很好用,但是初学阶段最基础的应该是理解算法。知周所众C++又名C with STL,那STL内部的实现方式,比如说平衡树红黑树这些总要先会吧,我个人认为理解这些东西并不比学语法简单。初学的时候不要想着依靠太多语法上的高科技来占便宜,这会使你的码力和静态查错能力得不到很高的提升。(而且初学的时候不至于会干什么大工程吧,对这方面不太熟悉)我从初三到高二学了两年竞赛,至今不会写类,只会结构体嗯刚(虽然也没什么值得骄傲的[笑哭])但这事实上并没有对我的编程造成特别大的障碍,相反结构体在某些时候比类会简洁很多。刘汝佳的蓝书开篇就说,很多时候工程的编程习惯很严谨,但会对码量和阅读带来不必要的麻烦,竞赛过程中用到的简洁语法在这方面要好一些。C++的灵魂在于STL和它的拓展库pbds,只要把这两块内含的算法吃透,那么它与其他语言的差距就不大了。此外,还有一个建议是了解一下C++内部实现与硬件的关系,比如流输入输出与cache,inline,register的优化这些方面,对程序的常数优化有很大的作用。可能我作为一个暂时没有接触过软件工程的单纯OIer不太了解你们是如何去学习编程语言的,但是我在竞赛圈子的各个地方都听到过“不要先从语法学起”这类的建议。个人认为学习C++还是应该先把算法基础打牢固,再通过它内置的语法特点优化代码构架,避免屎山代码的出现同时在初学的时候锻炼查错能力。

【回复】发现你说的方面大都是竞赛常用的方面的知识,还有一些冷门技巧.然而大部分算法竞赛er的通病是把C++当成了C with STL. C++最核心的部分应该是面向对象
【回复】C++的核心是封装,继承,多态。你这只算是精通了C和STL。
【回复】回复 @帅绝世 : 是,面向对象确实是C++的核心,但是竞赛这东西,他考的根本就不是一个代码的编写问题。写代码在竞赛中相较于思维思路,真的是太容易了。真正的强手,能打到省选国赛的,300行+的代码必须要在25min内写出来才行,不然写不完的。更多的时候是把重心放在了算法的效率提升上,所以用C++主要是他效率高。
bili_438519238:
切身体验,实验室秋招,搞C++、嵌入式的找工作难度远低于搞java的,福利都比Java的同学高。。学计算机可以,但是别学Java!!!

【回复】回复 @爱奋斗的Aran : 语法上 Java 肯定没有 C++ 难,之所以大家都学习还不是因为国内硬件开发能拿出手的公司没几家么 互联网公司是以业务为主的行业 ,那么 岗位就多。如果中国未来10年 ,硬件行业能像美国那样 从上游到下游都发展的很不错 ,那么也会有很多人去学习 C 语言 和其他语言的 ,毕竟找工作都容易了
【回复】回复 @我呜噜呀 :之前我也是和你一样认为是别人的烟雾弹,我经历的教训已经说了,爱信不信
【回复】回复 @我呜噜呀 : 你以为Java是学习难吗? 不是,是高校和培训机构大量教学Java,造成人才过多
大焦点:
学机器语言,你会对计算机编程有充分的了解。 纠结学什么语言,那你永远都不明白学编程的目的。语言就好比是不同的工具。而目的是你要做什么项目。当你做什么项目的时候你需要用什么语言就学什么语言。比如你写操作系统,写一个高效的,那你必须要控制的是比较小的内存单元,那你可能需要使用c或者汇编。如果你想做的是web,你想控制的是dom等web浏览器里的一些组件,那你需要学js,如果你想做windows程序,你需要调用的是windows里的功能,你可以学vc,vb,c#等。如果你想做个小脚本,用来做一些跨平台的的自动化小功能,你可以用Python。如果你想做一个功能多且成熟的可扩展的web服务或者安卓app,你可以用java。如果你想做一个简单上手的网站,你可以用PHP,Ruby等。不同的语言可以直接调用的资源不同,所以在不同的领域开发效率不同,仅此而已。语言没有优劣,需要啥学啥。

【回复】先学c和c++最适合你的思路,因为它逼着你转换成机器的思考方式。起步阶段虽辛苦,但一旦融会贯通,学别的什么语言都是3天学会,21天精通,真的不是吹牛广告[doge]
【回复】有没有什么机器语言的书籍推荐一下
灬丨晓轩丨灬:
没必要那么深吧,计算机专业的表示语法差不多会了就行。 去试试qt界面,或者比较传统的mfc就可以交互了。 想要更多功能就要学算法,数据结构,计算机网络这老三样了

【回复】回复 @文黑客 :不确定,你应该比我从业久。我接触到的有些算法感觉就是像是固定套路,有的处理数据的像做数学题,可能是我见识少吧,别人叫算法我就这么认识的。感觉算法是要看具体做什么。
【回复】算法就多刷题,实际开发用不到很难得算法。
【回复】我计算机基础四样网课过了一遍,没急着看黑皮书加深,算有所了解。 感觉数据结算法很通用 c++偏硬件 计组的话感觉没必要学的很深 对cpu和内存这块记牢就可以 对比感觉操作系统学起来更有用 计算机网络感觉学起来没什么感觉 java不感兴趣 会有些基本语法 。。。。 qt mfc待我网上查查.... 现在还在苦学c++ ...
狗都不学躺尸先:
不管怎么说,语言是工具,思想才是核心

【回复】tm的,对于初学者来说,思想什么的鸟用没有。不同语言的整个体系和方向都不一样。还在这思想思想,思想个毛线。[吃瓜]
【回复】回复 @飞渔吹雪 :666[doge],反正我啥语言都不精,导师让我用啥语言,我就看文档,一点点干,基本上都能勉强干出来。解决问题的思路在,反正对我来说语言是工具[呲牙]
【回复】都重要,语言多样性,开发应用层肯定java这些, 硬件就用c这些了,开发人员是不依赖任何语言的,
宇某不想秃:
一年前, 我抛弃作业,老师和学校, 不顾他们质疑的眼光, 一个人来到B站, 辛苦打拼了这么久, 才到3级, 我好累... 我快要坚持不下去了, 有好心人帮帮点个赞让我... 早点水到3级吗![doge][doge][doge] 这个评论是我复制的,我看他水到了,我也想试试

【回复】应该可以帮到你https://www.bilibili.com/read/cv20284776?spm_id_from=333.999.0.0
【回复】5级了不知道评论点赞不给经验还到处复制是吧
【回复】[脱单doge]他水到五级了,希望嫖友,额不是,B友也能助力每一个梦想,比如我
喵先生MJ:
不要瞎扯 编程语言的诞生都有自己的原因: 硬件 / 驱动 : C 系统 / 驱动 : C++ 业务 / 服务器 : 推荐 Java 、 Go 辅助输出第一 : Python 程序员面向不同场景使用擅长其场景的编程语言即可。学习则根据环境和需求学 ,瞎带节奏的动机不纯

【回复】现在流量难搞,必须多搞些复杂的 紧张的 让人焦虑的东西,难蚌
【回复】这个说的还算比较中肯,每个语言都诞生都是为了适应当时的环境,或者更符合生产需求
【回复】回复 @花茶K :虚幻是要写C/C++的。 Unity是要写C#的。 当然,如果你选择可视化编程那就可以当我没说。[doge]
勇者水芸:
本医学生学Python只是为了期末大计不挂科[保卫萝卜_哭哭][保卫萝卜_哭哭]

【回复】你还是比较幸运的,学的还是python,我之前认识的一个姐姐,学的还是中医,在本科的时候学的还是c语言
【回复】回复 @DPDOUbleP : 医学生为啥要学c
不清收藏不改名:
我是比较推荐上来就先撸数据结构,用c最好,啥时候可以用c把常用数据结构造出自己的常用轮子快速刷中等难度算法题就可以补补计算机网络,这时候推荐看些c++demo,可以手动撸撸跨平台网络程序,这时候你对网络编程、多线程编程、内存优化都能有一些不错的理解了。再进阶看看计算机系统,有想法的去搞搞MIT6.8,一般人了解大概可以程序设计,把常见的设计模式搞一遍,这时候c++的大多数语法就了解的差不多了,也差不多具备就业资格了。后面就是看工作方向,看是往数据库发展或者驱动、嵌入式发展了

贝哥学习路:
我觉得是先学c,我是这样过来的,之后速度加快学c#,然后是c++,你会很迅速的理解c++是怎么搞得,然后学py,然后你会发现py其实是c的超级简写,而且学的特别快,只需要多学几个框架啥的,然后就是实战啥的,这些都可以去海贼oj里面刷那些题。

路灯缺少挂件:
为什么全网都在劝你学Java、Python?因为C++难学难教,没点计算机底层知识的根本就学不会,人家做培训班的可不傻,Java、Python直接写需求就行,都不用管硬件层的,是个人都能学会

妈妈我想学数学:
推荐学python/js/lua(三选一),软件工程,设计模式,做项目。别折腾c++语法,工科生需要实务一点。

【回复】回复 @Big大聪花 :big胆,居然不学java[歪嘴]
超凶的猛龙:
因为Python和Java是自行车,学完以后你的效率可以从走路变成骑自行车,但会骑自行车不好找工作。

【回复】回复 @martinpudu :你想走开发吗?我也不太懂,我只知道Python就只是能提高工作效率而已。因为我只学了Python
【回复】Python是电动车,只学python挂档都不会
【回复】那 哪种语言是汽车呢?
叶守一:
正在学汇编语言的我笑而不语,我的学习路径,C++,C,汇编语言,属于是越学越底层了,说不定过两天就去学指令集了

【回复】我相信到最后你会成为搞芯片的人才[脱单doge]
风住在天堂的第五街:
科班 名校在读生选c++,自学 半路转计算机的直接java c# js三选一[doge]c++这东西起码两年入门,至少花三年时间才能勉强掌握,关键c++岗位偏高端,只适合名校在校生

macajine:
Cpp照顾的编程习惯太多太多太多了,导致如果精通cpp就是精通所有的编程习惯。cpp的特性非常非常非常复杂,任何一个程序都可能成为脑经急转弯。

【回复】我第一门语言C++,在看JavaScript 感觉语法一毛一样
【回复】回复 @功夫到家a :我感觉还是更像java和c#

科技猎手 程序员 科技 编程 互联网 C/C++ 学生党 垃圾 计算机技术 Java

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!