Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java程序员的C语言?_Java_C++_C - Fatal编程技术网

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++是一种语言的噩梦,

  • 对于像我这样的Java开发人员来说,最好的资源(书籍、教程、实践程序、参考代码)是什么


  • 谢谢,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++作为一个“噩梦巨兽”的名声主要是由不安全的java程序员来传播的,他们试图证明他们知道的是一种二流选择。 有两本书专门为java程序员学习C++和/或C++编写的。虽然它不是专门针对java程序员的,但是如果你决定C++而不是C,我会考虑./LI> 1当然,我至少有点开玩笑,但是有几乎惊人数量的Java程序员,他们似乎有自己的芯片在肩上。如果你告诉使用Python或Ruby的人(仅举几个例子)它很慢,典型的反应是他们看起来有点困惑,说:“如果你这么说的话,我觉得它足够快了。”对Java提出同样的建议,实际上肯定会产生这样的说法:你显然是无知的,只表达盲目的仇恨

    编辑:对于C和C++之间的选择,对于习惯java的人来说,C只是一个挫折中的练习。语言上的差异无论如何都需要相当大的调整,但从Java大小的库迁移到C大小的库只会在相当长的一段时间内破坏他的生产力,并且更可能再次对他造成偏见——所有名称中带有“C”的语言,而不是帮助他真正学习任何东西


    直接从Java到C就像是带着一个人,当他驾驶林肯镇上的汽车而不是坐在豪华轿车里,而当他认为赛车很酷时,你直接把他扔到一辆非法的sprint汽车的座位上。首先给他一个机会(不仅更安全,实际上更快)驾驶街头合法跑车……

    如果目标是让你成为一名更好的编码员,那么就瞄准那些真正尝试与众不同的语言。java、C++和C都是密切相关的。 诚然,一种主要是过程语言,一种非常努力地伪装成OOP,一种是至少4种不同范例的混合,但它们都是命令式语言,它们都有很多语法,基本上,它们都是同一语系的一部分

    学习C不会教给你任何全新的东西。它可能会教你一些关于内存布局之类的知识,但是你可以通过很多其他的方式来学习,这对Java程序员来说不是很重要

    另一方面,该语言相对容易掌握,并且广泛用于许多Linux软件,因此如果您想为任何