打印

在 Linux 下学习 C 语言有什么好处?

[复制链接]
952|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lindoug|  楼主 | 2020-5-13 11:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
作者:pretty kernel
链接:https://www.zhihu.com/question/23893390/answer/26003570
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

很多时候,“学习C语言”指的不是K & R,而是系统编程,。从就业来看,linux的高收入岗位无疑更多。相关书籍《Linux/UNIX系统编程手册(上、下册)》或者Linux系统编程(第2版)
我个人认为windows系统编程其实后期学习难度更大,因为不开源,你不知道它里面的原理。
linux内核是开源的(当然你愿不愿意学习或者能不能看懂是另一回事)
系统编程的意义在于:如果你是个c#程序员,想进阶看看CLR via C#,你不懂windows系统编程立马歇菜,只能回头补。
如果你是个linux下的php程序员,那些模块很多都是c写的,你不懂linux系统编程,出了问题只能干瞪眼了。
学习c的意义在于,便于学习很多其它知识,比如csapp,编译原理,等等。
学习linux c的意义在于,你学了linux系统编程方便学java(我指服务器端,不是手机编程)。
java的优点在于,好找工作,将来好换工作,工作从几k到几十k的岗位都不少,这点其它语言拍马难及。
还有,比语言,c#甩java老远,但是找工作首先是开发软件,服务器端最重量级的软件很多都是java开发的,从楼主学命令行都嫌麻烦的态度看,你直接装个不要钱的Eclipse学java吧,网上安装教程大把,也不用怎么折腾命令行。
结论:学习linux c方便毕业找工作(需求最多)。当然你要立志将来像
@vczh

那样横推各种语言的话,那就另当别论了。
==补充========
从基础的角度讲:算法(第4版) 和 编程语言实现模式 以及深入理解计算机系统(原书第2版)是我觉得比较重要和实用的。
还有,工作中选择什么语言是因地制宜的,很多“应用技术”,比如XXX如何配置,如何调优,如何排错,XXX框架如何使用,等等,都是建立在对系统编程和语言的深入掌握上的,学习算法和体系结构就是为了深入理解语言和操作系统。
基础打不牢,遇到问题google不出来只能干瞪眼了。基础才是拉开不同程序员差距的本质原因,基础打牢了,学什么都快。
最后,我的回答是建立在假设以后你从事linux系统编程的前提下的。
用什么语言,选什么IDE,如果你不想折腾,直接Eclipse CDT吧,vim等你折腾到能像Eclipse那样工作,估计你已经疯了。
工具只是锦上添花,能不能提高效率是要靠使用者的,如果你对vim,emacs一窍不通,或者记不住各种IDE快捷键,不会有多大损失(我就不爱折腾),基本功打不牢以后要花很多时间补你就悔之晚矣了。


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

468

主题

472

帖子

20

粉丝