Java程序员的C语言?
可能重复:Java程序员的C语言?,java,c++,c,Java,C++,C,可能重复: 作为一名专业(Java)程序员和Linux用户,我觉得学习一些C语言是我的责任(尽管我可能永远不会专业地使用它),只是为了让我成为一名更好的程序员 两个问题: 我应该先尝试C或C++吗?我意识到它们是不同语言,有一些共同点。两者都学一点有用吗,还是只试一种?听说C++是一种语言的噩梦, 对于像我这样的Java开发人员来说,最好的资源(书籍、教程、实践程序、参考代码)是什么 谢谢,C语言简单易学,难掌握。作为Java程序员,内存和结构将是障碍。。以及消除Java可能对生成部分大脑的算
作为一名专业(Java)程序员和Linux用户,我觉得学习一些C语言是我的责任(尽管我可能永远不会专业地使用它),只是为了让我成为一名更好的程序员 两个问题: <>我应该先尝试C或C++吗?我意识到它们是不同语言,有一些共同点。两者都学一点有用吗,还是只试一种?听说C++是一种语言的噩梦,
谢谢,C语言简单易学,难掌握。作为Java程序员,内存和结构将是障碍。。以及消除Java可能对生成部分大脑的算法造成的损害;) 我建议您通过Internet上的教程熟悉Linux机器上的GCC工具链。然后读一读,这本书的副本不会有什么坏处。而且,在Linux上,您将不必重新发明轮子。。。但至少要尝试创建自己的链表、hashmap、graph和其他API来学习。指针算法、数组以及学习诸如结构之类的元素只是二进制块中的命名偏移量都很重要。花时间与malloc和
免费
和memcheck在一起。有了C,你的工具和工具链是非常重要的,IDE在学习时不一定是你的朋友
< >我选择C++,因为C是一个很好的基础,可以用于C.</P>的内存管理和指针使用。
你能做的最好的事情就是把你学到的应用到一个真正的项目中。但你要准备好把头撞在墙上,然后进去。我已经编写C语言多年了,但我仍然不是一个C僧侣
我确实同意C语言是一门伟大的语言,它显示了一个糟糕的程序员。但请记住:
任何足够复杂的C程序都包含一个特殊的、非正式指定的、充满bug的、慢半拍的CommonLisp实现
其寓意是学习其他语言,而不仅仅是C派生语言!考虑一些LISP方言,Erlang(目前很酷),Haskell等。他们将从java的2x2单元格中扩展你的视野。考虑一下。 关于(1),我可能会说C。它更为外来。因为你的目标是多语言,所以,你要学习一种与java大不相同的语言,这可能比C++学习更有用,这可能会让你生气。C++从人们那里得到了很多垃圾,这并不一定是可怕的,但主要原因是它试图迫使一个新的范例进入C的结构中,它不象一个从一开始就以这种范式开始的语言那么好。 对于(2),我会非常非常推荐。它假定您对编程有一定的了解,内容简短,切中要害,但也足够深入,可以解释概念。但是,它不包括你必须在别处找到的练习。恐怕我是在工作中学C的(而且还在为此付钱!),所以我不能在那里给你受过教育的帮助
直接从Java到C就像是带着一个人,当他驾驶林肯镇上的汽车而不是坐在豪华轿车里,而当他认为赛车很酷时,你直接把他扔到一辆非法的sprint汽车的座位上。首先给他一个机会(不仅更安全,实际上更快)驾驶街头合法跑车……如果目标是让你成为一名更好的编码员,那么就瞄准那些真正尝试与众不同的语言。java、C++和C都是密切相关的。 诚然,一种主要是过程语言,一种非常努力地伪装成OOP,一种是至少4种不同范例的混合,但它们都是命令式语言,它们都有很多语法,基本上,它们都是同一语系的一部分 学习C不会教给你任何全新的东西。它可能会教你一些关于内存布局之类的知识,但是你可以通过很多其他的方式来学习,这对Java程序员来说不是很重要 另一方面,该语言相对容易掌握,并且广泛用于许多Linux软件,因此如果您想为任何