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

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

本人大一

8256 次点击
所在节点    程序员
92 条回复
harry890829
2015-11-20 09:17:12 +08:00
上次看到这个题目的时候,就想说些什么,但是又不知道说什么
我现在是一个 c/c++开发,现在负责开发呼叫中心,其中包含 Linux 服务器与 pc 客户端,全都是用 c/c++编写,只能说非常痛苦,公司最早开始使用 c/c++写客户端的时候,应该是领导不太懂把……
c/c++是一定要学的,不过就像上面各位大神说的一样,你入门开始学 c/c++你会经过一个非常非常枯燥的过程,完全在一个理论抽象的过程中思索,但是你要是学一个高层语言, java 等,这样你可以轻易的写一些自己能够看到的东西,一些小游戏等,这样可能会增加自己学下去的信息吧……
zackkson1991
2015-11-20 09:20:50 +08:00
@chevalier 这位仁兄正解。深入学习 C 是必须。还需要学习计算机系统等基本知识,还要学习一下 C++,理解 OOP 。没有学习好 C 语言,真的“半残废”。
allan888
2015-11-20 09:26:54 +08:00
@xuhaoyangx 对本科生来说第一门课怎么好使怎么来呗,后面学什么内容就自己去搞定相关的语言。
对 master 来说,从来就没有课是教语言的,需要用任何语言的话都是自己回去搞定。
但是如果楼主一定要问深入 C 有没有必要,我可以说无可奉告,但是我没见过有人能在本科或者 master 毕业还能躲开不学 C 。
gimp
2015-11-20 09:28:20 +08:00
C 是一个大门, Lisp 是另一个

直接学 python 虽然很实用,但是作为程序员, C 是一门必修课
jimrok
2015-11-20 09:32:30 +08:00
c 本身没什么可学的, c 主要是做系统编程的,例如写驱动,写 Linux 的网络服务。背后的知识在熟悉系统底层的接口和工作特性。如果这些不是你的菜,学了也就是玩玩数据结构。
Cloudee
2015-11-20 09:36:45 +08:00
光学 C 也不难啊,总共没几个关键字,计算符号也很标准,简单粗暴一句废话没有。难的地方要么和计算机的运作方式有关要么和数据结构和算法有关,都是学其他语言也绕不过去的
wizardforcel
2015-11-20 09:41:50 +08:00
@harry890829 c++玩好了照样能写各种看得见的项目 有轮子的话 web 那套也不成问题啊 现在的 c++标准库和三方库加起来再怎么着也够用了

@wdhwg001 不赞成 框架什么的 无论是 ui 还是 web 在学校如果不讲就没必要单独花时间研究 边用边学即可 如果老师讲了也没必要深究 会用即可 没必要为此花太多时间
g67261831
2015-11-20 09:45:06 +08:00
各种语言也只是工具,一切为工作服务,看以后做什么。
harry890829
2015-11-20 09:48:46 +08:00
@wizardforcel 你都说玩好了之后啊,初学的时候,就只能搞内存,搞指针,理解那些蛋疼的搞来搞去的东西,起初那些 shell 下,枯燥的蛋疼的东西,作为初学者,还是很辛苦的……
wizardforcel
2015-11-20 09:55:48 +08:00
@xuhaoyangx 其实国外的课程 基本上讲组成原理顺道也就把 c 讲了 说实话 c 的特性很少 并不适合单开一门课

我们学校的 c 语言课 6 个星期就把 c 语言核心部分讲完了 剩下十个星期讲 linux c 讲 opengl 。。。

指针什么的不理解 可以学组原的时候再返回来看 但如果就连这样简单的语言都不想学的话 也就不用继续学下去了
wikimore
2015-11-20 09:57:32 +08:00
个人觉得需要!
因为上层的语言基本都是用 C 来实现的,php/python/ruby/java/lua/erlang 等等等等....
当你想深入了解其中原理的时候,都会需要和 C 打交道...
wizardforcel
2015-11-20 10:03:12 +08:00
@harry890829 所以这就是大部分教材的弊病

初学的时候可以用 vector string shared_ptr 先用起来

等深入的时候再接触原生指针什么的 如果初学的时候就陷入这些东西 我估计没几个人愿意学的

有时候我在想 obj-c 也涉及到内存管理什么的 但是愿意学的人好像要多得多 到底是什么原因
mornlight
2015-11-20 10:14:08 +08:00
@wizardforcel OC 能容易地开出高工资,而且现在 OC 里有 ARC ,大多数时候不需要手动 release ,内存管理没有那么复杂。
harry890829
2015-11-20 10:25:13 +08:00
@wizardforcel 所以,要是有个好点的人带还好,否则光看书,或者大学老师那种读书式的教学,简直抹杀编程的乐趣……
wizardforcel
2015-11-20 10:27:16 +08:00
@mornlight 好羡慕

相比之下智能指针引入的太晚了
Wangxf
2015-11-20 10:55:28 +08:00
据说大牛级别的程序猿都会 corc ++
msg7086
2015-11-20 12:45:21 +08:00
@wizardforcel 为啥我记得智能指针也是个坑货?好像还要考虑引用计数什么的不知道有没有记错。
xuhaoyangx
2015-11-20 13:13:21 +08:00
@allan888 赞同。
@wizardforcel 了解。
从国外课程了解,也只是通过我高中或小学同学了解的。也只能大概了解大概的一些内容。

不讲讲了什么,最直接的一个感觉。
都是差不多时间入学的,只不过我在国内,我的同学是在加拿大,妹子完全不懂电脑的那种。
第一年,是妹子问我问题,第二年,是我问妹子问题。
妹子是那种不喜欢编程,也不讨厌代码,她跟我说过一些他们第一门程序语言是 python 的,老师做了很多有趣的功能,而且也很好理解,算法也是通过这些有趣实用的功能举例。然后我就很好奇问了一些留学的朋友,基本第一门语言都不会用 C 讲,毕竟用 C 做点东西对于初学者相当难,做不出东西对初学者很难受应该是很难受的一件事。

国内的课程很多本末倒置,课程时间也不够,国内体制是需要考核,在有限的时间内,让学生掌握需要考核的内容,导致一部分老师的确想讲的挺好的....然并卵
wizardforcel
2015-11-20 15:34:38 +08:00
@xuhaoyangx 我这边还好点吧 有用 py 的 也有用 c++的

讲算法和 plt 的老师亲自教 py

讲 web 和架构的老师亲自教 c++
loqixh
2015-11-20 15:42:41 +08:00
@xuhaoyangx 呵呵,事实是计算机相关专业国外入门基本也都是 c.............非计算机相关专业才是 python

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

https://tanronggui.xyz/t/237321

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

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

© 2021 V2EX