新手程序猿有必要深入学习 C 语言吗?

2015-11-19 14:36:22 +08:00
 yesiamloki

本人大一

8256 次点击
所在节点    程序员
92 条回复
ls2110609
2015-11-19 20:28:41 +08:00
当然有
pandachow
2015-11-19 20:37:27 +08:00
工作嘛还早,兴趣嘛你碰的太少也难说。

由于 C 是少数几门非常易于清晰表达数据结构的语言,而数据结构你是一定要学扎实的,所以我建议你学。
ayanamist9
2015-11-19 20:41:09 +08:00
现在程序员连 C 都懒得学了?
anjunecha
2015-11-19 20:52:03 +08:00
要学,毫无疑问。。

这问题就像要不要上大学一样。。。
haozhang
2015-11-19 20:54:51 +08:00
想学什么学什么,只要坚持都能学成。
chevalier
2015-11-19 21:03:24 +08:00
不会 C 的程序员基本上半残废
是,你可以三分钟用 Tornado 撸一个 Web 服务器出来
但是,不会 C ,意味着你无法理解 Python 的引用 /对象堆 /调用栈等概念,意味着你看不懂 Python 的源码,意味着你无法理解 Linux 的系统调用……
yxcxx
2015-11-19 21:07:33 +08:00
大一你都懒得学 C ,你是大三大四赶着找工逼着学( js , Python , Java , Php , C#)吗?
大一正是学基础的时候,不学 C 你 Linux 系统编程( apue , unp 等), CSAPP ,还有大把经典的教材用 C 语言描述的你都不学了吗?
再说了, C 又不多难,现在的人已经懒到这个程度了吗?
我:毕业半年的码畜,非相关专业,学编程到现在一年。学了 Python 和 Ruby , Javascript 。后来为了打基础,啃了 K&R 。
czkwg8
2015-11-19 21:12:47 +08:00
懂的东西多总是不亏本的
chinvo
2015-11-19 21:17:26 +08:00
个人认为学习一门典型且 simple 的语言,比如 C 语言,是十分必要的基础。不然之后遇到一些比较高深的应用场景会遇到各种坑爹的问题。
mornlight
2015-11-20 01:11:57 +08:00
可以尝试,但如果不是这个专业的学生而只是把编程作为兴趣的话,把 C 作为第一门语言的必要性不大。新手编程时有完成品和成就感的话会好很多, Python 更合适。

如果本身就是计算机或者软工的, C 或 C++入门完全可以。
cxbig
2015-11-20 06:51:16 +08:00
大部分语言的基础都是 C ,才大一当然要学。懂了 C 其他的都不是问题。
allan888
2015-11-20 07:03:05 +08:00
对正经的 cs 的人肯定是要学的,这个不容置疑。
比如你不懂 programming language ,那你对 js 的闭包,自由变量,对 python 对 scala 的 lambda 的匿名函数就停留在会用上,但是你并不懂原理。
如果你不懂 c ,你可以写 php 写 python 写 java 的 web 后端,那服务器怎么处理并发的, linux 进程间如何通信,
MayLava
2015-11-20 07:09:45 +08:00
不一定要深入学 c ,深入的学好 java 也行。理解好 java reference 就很足够了。
allan888
2015-11-20 07:12:02 +08:00
@allan888 没说完不小心发送了,补充一下。
不同的东西用了不同的机制,比如 aio 比如 netlink ,导致不同的最大并发数和不同的效率,你不懂 c 你就只知道啊这个轮子好,那个轮子弱,跟着别人的忽悠走。
你的志向是停留在用轮子写非常上层的东西那就不用管了,这也是一条路,谈不上高低。但是你如果要做到既会用又懂原理,必要的时候能改底层来适应需求,那不会 c 就是不可能的。哪个大公司能只用很上层的别人的轮子而不涉及底层呢。你要成为万人敬仰的大神这是必经之路。
至于说国外学校教 python 不教 c 都无力吐槽,胡扯之前最好看看别人 cs 的课表。
sandideas
2015-11-20 07:56:12 +08:00
楼主是大一当然必须必须得学,而且要好好学,不是学个语法。
最好去写 ACM 的题目。就算拿不到奖,在将来的学习中你会发现你的思路十分的清楚。
反正我是能很明显的看出来有学过和没学过的区别,在面对新知识上,差距还是特别大的。
vietor
2015-11-20 08:16:56 +08:00
Python2 已经很老旧了, Python3 的分裂很麻烦。 C99 学学是值得的,看到那些其他语言吹性能,可以一笑了之。从 C++ 14 已经反人类的像极了动态语言。
mianju
2015-11-20 08:23:38 +08:00
在看 CSAPP ,发现 C 还是挺重要的
onice
2015-11-20 08:42:32 +08:00
要达到能写控制台的 XX 管理系统的水平。其实最主要的是要把数据结构与算法学好,学校里开的课一般都是以 C 语言描述的。如果没 C 基础的话,那就完蛋了
xuhaoyangx
2015-11-20 08:58:17 +08:00
@wizardforcel 十分赞同
@allan888 国外不是不教 C 语言,而是很多都会用类 python 的语言作为第一语言课进行教学。
效果往往比一开始就学 C 语言的效果更好,比如更加简单易懂帮助学生提升兴趣,和一些思想
elgoog1970
2015-11-20 09:09:27 +08:00
C 作为程序员是必须要学习的,不信就算了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/237321

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX