技术解析

学 Linux 要学 C++吗
0
2021-07-12 00:11:08
idczone
大一狗,正在教C++,对它很不感兴趣,完全不想学,我自己想学习linux,学运维,问问需不需要学C++?
如果领域倾向是自动化运维的话Bash + Python是必须的
但是C++还是需要了解 因为Linux大部分程序是C++写的
极端情况下可能要能分析崩溃栈反馈给上游开发者

谢谢回答,了解是需要多了解?只要懂语法规则还是会使用c++开发一些小东西?

自动化运维不是Ruby么……Puppet Chef
不过Python也有Ansible……
C++是Unix的基石,而Linux是他亲戚,自然对C++依赖很大。
如果你基本不会C++,那在Linux下简直寸步难行。

基石是C啊

抱歉我脑残了。应该是C……

LINUX 社区很不待见 c++ 楼主珍重

大一在教C++,那应该是计算机专业的吧?
奉劝一句,不管你毕业以后准备做什么,编程这基本功不好好学,你会发现你这四年基本也干不了什么。
离毕业还有那么久,何必这么早就把自己限定在一个较窄的领域之内呢?

学好 C 吧('・ω・')都入 Linux 坑了,会点编程没什么不好的

运维先上 Shell/Python,C/C++ 第二吧

"
C++,金坷垃,如果后来用Java,一袋可顶3袋撒。。。。。
小日本,真狡猾,不要让他学C++....
"
---Dr. BiliBili From 上帝压狗

c/python/shell 就很好

c我会,学的还不错,c++让我很头痛

软件工程专业,编程蛮喜欢的,不然也不会报这专业,但是对c++毫无兴趣。。。

这么说c++可以不用学吗

不用

我觉得你可以把C++的一些标准库学一下,例如那些模板库容器之类的。
毕竟写C代码的时候,有容器帮忙会轻松很多。

因为可能用不上就不学?作为年轻人,这种想法是很不可取的呢(个人看法

同意你这个看法,虽然对大学拿C++入门这个简直……
对LZ这么说吧,这就是你的编程入门课,如果你确定自己已经入门,这门课你怎么过去都行——但是你最好确定自己此时的决定不会成为以后抱怨的借口。如果不能确定以上所有两部分,这门课还是好好学吧。
关于喜欢与否。如果不喜欢C++的原因是听了某些神仙言论(比如linus的,或者其他工业界大神的),我可以替你们老师担保你们课程里用到的代码只是用C++表述的一般程序逻辑,几乎不会涉及C++的任何奇技淫巧,也不大可能就此把你的思路绑定在C++战车上。

这是基本功,建议好好学!!

c++ ,引用《effective c++》书里Meyers大神的一句话来看,
c++大致可以分为四个子模块:
1.Template c++
2. STL
3. c
4. 面向对象的c++
而一般大学教材都是从第4点入门学习的,其他几点不论哪一方面我觉得要精通或是熟练都是需要十分漫长的练习和深入。
unix和Linux基于c语言,Linux基于Unix,部分与底层硬件交互的地方用汇编直接编写,没有用到c++,Linux之父Linus说过“c++是糟糕程序员的语言”,其实我觉得大多数人曲解了他的含义。
他大概是想说:时至今日,c++已经深深造福软件行业,但是它的发展方向逐渐细化,使得学习它的程序员容易太浅层次理解c++,写出了许多“糟糕的代码”,显然这是一门入门容易,但是写好很难的语言。
PS:做Linux底层开发的话,学好c要好一些(不知道是不是大多数做linux环境开发的都受Linus影响不太待见c++)。
做基于Linux的开发(例如服务器),学好c++和网络编程。
做运维,学脚本shell编程,python之类
建议楼主买一本读读,刚开始读时我简直不敢相信我居然学过c++.......我目前正在第1,3点的路上努力中

搞Linux不用学C。现代C++已经和C语言脱离的很远了,不过虽然国内还是那套从C教起的错误的方法。

写错了,搞Linux要学C,不用学C++……

我觉得楼主语文得好好学学。“正在教”的主语是“大一狗”弄得我以为楼主在教别人C++。
大一学的C++也就是C++的语法而已(估计是带类的C),就算学会了,也不等于会了C++。linux运维会脚本语言比会编译语言要重要得多吧。

"Linux大部分程序是C++写的" ?
Linus 是这么说的:
"
*YOU* are full of bullshit.
C++ is a horrible language.
"

Linux 作者Linus 说:
*YOU* are full of bullshit.
C++ is a horrible language
http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918

Linux高手喜欢C,C++是两头不讨好。

Linux只是kernel层用C写而已,应用层大把程序还是用C++写的。你确定你要做底层?

所以,还是多少学习点吗?

刚开学的时候,也是想要学习的,也找过经典的书来读,后面觉得没趣,就放弃了,现在看来,还是学一点好

是的,正在学习c++。。。语文确实不太好。。。教的就是类对象,多态等等这些。

偏向服务器,运维

Learn the hard way.
不要纠结于学什么,C++ 和 C 都该学。
大一正是疯狂学习的好时候。只要不耽误谈恋爱就好。

我觉得学习 C 是必要的,但是 C 艹 还是算了

既然正在教,为什么索性不花点功夫?

即使难道不是汇编或者机器码么。呵呵

基石难道不是……

不要受那些对某些语言有傲慢偏见的程序员的影响,能学好并契合某一门语言,更多是在于个人的性格与风格,能够多接触一些语言是极其好的,你可以对比自己更喜欢哪种编程风格。总比那些整天争论php和c++如何如何,自己连程序都没写过几行的人好。

已经有很多人给出了优秀的答案,我想发散一下.
你现在才大一,以后肯定会遇到更多你不喜欢\暂时也没啥用的课程.
我的建议是在本科阶段,老老实实做个书呆子挺好的.因为你懂的实在太少了.像C++这种被全世界的大学认可的课程,别跟它过不去.
如果你有其他兴趣,那就课下研究.犯不着放弃C++,有趣的课程和必修课不冲突.

谢谢,明白了,课会认真上,好好学习了

说的很有道理,受教了,谢谢你这么中肯的回答

C++很难,我用了几年很多问题还搞不清楚。。。。

是的,所以被弄得没兴趣了。。。可还是要学啊

应用层大把C++写的,我好奇除了桌面那一陀东西还有什么是C++写的?

chrome, Firefox, Thunderbird, OpenOffice, MySQL, MongoDB, VLC

感觉学c++和学linux没啥关系,用win也可以职

c++是个大坑,入坑需慎重,你才大一,试一试也没关系

Linux讨厌C++。
Linux下一半以上应用程序是纯C写的,Linux内核也是纯C写的。
不会C++也不会在Linux寸步难行的。

桌面比较大的有两坨,一坨是用C++写的,一坨是用纯C写的。

我不想入。。。。

看来多少还是学一点,总没错

不是必须的。学好shell倒是用处很大,需要的时候会帮大忙。

学吧,学了又不会怀孕!!

我就说嘛。。桌面用C++的多一点。db系的确C++用得也多,但是除了db引擎,游戏引擎,桌面程序,很多方面还是C为主。

有时间就学学吧。万一哪天你用到了呢。再说用不到,C++里面的一些东西在其他地方也可以借鉴嘛

shell是肯定要学的,听了大家意见,C++也多少学一点


嗯,学!!!

小跑个题
我倒是觉得不是要不要学cpp的问题 楼主才大一,大可不必把自己的未来就限定在运维方面
我认为趁着年轻,什么都要学都要去接触。虽说不一定要去深入 但是应该做到能知道这门知识
的大概轮廓。这样才能确保自己有足够的见识和机会去找到自己真正喜欢和合适的方面。

感谢回答,说的很对,会去接触更多的东西,希望能走的更好

C++(这里特指面向对象的 C++ 编程模式)要能正确使用相当难,新手在一年内能正确使用几乎是不可能的(但是要写个用到了 C++ 类的程序不难)。关于这个方向有本不错的书:Bob 大叔的《敏捷软件开发:原则、模式和实践》,在基本语法概念学习完成之后可以去看看。

C/C++当然要学啊,不会C能说自己是搞it的吗?C通了,其他语言就是玩具而已。

C++一定要好好学,C++代表的不是一个语言,实际上还是一种面向对象的思想。

没错linux是c写的,windows也是c写的,但你得想清楚:你将来是要写OS么?linus用得爽的东西到你手上可能就完全是另外一回事了。c的开发效率有多低写过的人都知道,这是个讲快速迭代的时代,嵌入式之外留给纯c的空间还剩多少?

语言只是工具,悟出的是思想
只要楼主注意别被个别坑货老师带沟里就行(例如用着C++讲MVC的那种)。

Linux/UNIX 不是C 的天下吗。。。当然也用到了不少C++

大一应该见啥学啥,因为你肯定学不深,即便学不深,请先学广,最后挑个自己喜欢的往深里研究,研究的时候你会发现,阿,原来以前那些狗屁玩意儿都有用,你也会感慨,阿,以前翘的那门课原来好有用...

GCC 现在准备用C++ 改写了,自己想吧。

难道只有我看出 lz 的需求是学 OOP 或 设计模式 ?

如果是为了了解偏底层的知识,精通C就够了。想想Linux内核吧,这个几乎没有可能用C++重写。
还有其他的C代码如Glibc、Python源代码、Redis 源码、Nginx 源码,都是纯C写的,这些阅读是不用精通C++,所以不必提这么高的门槛。

哦,如果是Ruby,Ruby (官方那套)解释器也是C写的。

这本书没听过啊,倒是听过很多c++中的圣经类的书,这学期结束,暑假下个电子版看看





会认真学习了,不翘课,即使在没兴趣,也会听,培养兴趣,大一疯狂学习的时候,没必要一条路走死,会去涉猎更多知识的!谢谢大家

我们老师人还是不错的,上的课也很有趣,蛮生动的,自己原因

高技术的如果你努力排斥某方面的技术,你是做不好了..

现在不排斥了

「高技术的如果你努力排斥某方面的技术,你是做不好了..」人的精力是很有限的资源,一定要有选择,优先选择自己最喜欢最有热情的方向。假若「不排斥」代表啥都要搞,那么就有浪费生命和时间的嫌疑了。

个人建议,如果现阶段对 C++ 无感,那就仅仅把它当成一门必修课学习(搞清楚基本概念,能读懂代码,知道些名词背后的含义),就可以了。没兴趣千万不要硬逼,最后把自己搞崩溃,反而影响精力。
现在对什么感兴趣,就赶紧折腾什么。多数人的激情是比较短暂的,趁着有激情,学想弄的东西(如你说的 Linux ,运维相关)。但注意,其他的基础课不能全扔,还是上面的话,基础要搞扎实,概念要搞清楚,这是底线。以后觉得兴趣来了,或是非得用到了,回头不至于是一张白纸。

嗯,现在我就是这么想的,多了解一些总没坏处,认真钻研我兴趣所在

我小时候念书的时候C++是必修课,数据结构也是讲C++版的,难道现在是选修课了吗?

你说得极端了
谁说不排斥,就是要搞了?
说你不排斥某某某,就是说你爱上她了?
不排斥的正确理解应该是: 如果我需要搞,那我就搞.

不是选修,还是必修,大一上学的c,下就学c++,同样都是专业必修课,只是我个人对这个不感兴趣

学linux,肯定要会c,然后学习linux的系统调用、进程间通信,网络编程,linux驱动编写,然后就没然后了。根本不用学c++,况且linux下c++执行效率也不大高。

会 C/C++ 和 Python + 其他计算机基础知识(计算机系统、算法、编译等),将来从事什么方向都无往不利。

c我学的还不错。大家都说c++多少学点,我也觉得,多了解一些知识也是不错的

真的吗?感觉好绝对。。。。

在应用项目中我帮不了你。但是如果你想用C++去写linux内核?林纳斯会喷死你(以他的性格)。

应该不会。。。

将来不管做什么,我说的都能为你打好基础

嗯!谢谢拉!

运维的话,感觉 C++并不是必须得,到是 Shell + Python 会师利器。当然,工具一定要用好,puppet, salt, ansible 等自动化及配置管理,zabbix,nagios 等监控工具

有这些足以

1. linux很多工具是c写的,但仅仅是使用它的话不必改源码,也就不必学。
2. 对于大一学c++,话说你不学的话以后的课还怎么上啊,数据结构,编译原理,算法。。。我感觉计算机的课都是默认为你会c++的

然后小日本发明了Ruby

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服