因为我在大学的第一年,我总是羡慕我的同伴(主要是来自科技导向的专业学校),因为我知道C.我来自一个以自然科学为导向的学院,从来没有编程经验或课程,但是有些夏天使用PHP学习从7个小时的自学PHP教程(我的编程兴趣是最近的).我想知道......这是一种合法的嫉妒吗?有没有程序员必须知道C?C是否提供了对系统如何工作或如何进行编程的深入理解?我知道在编程C时你必须对缓冲区,内存等有很深的理解.所以我希望你的意见.
不,你不必知道C.但是C(或任何其他"接近机器但不是汇编程序"语言)的知识极大地增强了你作为程序员的潜力.因为你会了解更多的内部运作方式.
当然,汇编程序的知识也很有价值.但在上一段中,我想针对计算机语言的低端.仅仅因为在现代语言中,我们认为理所当然(OO,广泛的库,垃圾收集等等).是的,它可以帮助我们的程序员更有效地工作.但它隐藏了我们有时需要看到的一些机器方面,这就是为什么我们需要了解内部工作原因这么重要.
虽然我认为了解内存分配,指针,寄存器等是很重要的......我想说,过多的C经验也可能成为掌握更高级语言或OO语言的障碍.C倾向于让你在程序上思考,在某些情况下这可能是件坏事......
我绝对不会推荐C作为第一语言,但在某些时候做一些C会有很大的帮助...
作为旁注,我认为汇编对于帮助您理解基本原则更有用.与此同时,汇编远远超出您将使用的任何语言(除非您在非常专业的领域工作).这将有助于您在进行汇编时保持不同的心态,而不是使用更高级别的语言.
这是一个可以讨论的话题.我个人认为,知道Ç提高你当你明白这是怎么回事与其他语言的工作能力也引擎盖下.但你不有知道C到能够生产高质量的代码.
Eric Sink也曾经想过这个问题.