我是一名熟练的C++开发者。我理解并使用多态、模板、STL,对流的工作原理也有扎实的掌握。就所有实际目的而言,我几乎没有进行过Java开发。我相信你们中的一些人曾经处于类似的情况,当你们需要学习Java时,你们需要多长时间成为一名熟练的Java程序员呢?
我认为学习Java并不难。事实上,我曾经是一名全职C++开发人员,在某个时候开始编写Java代码。但问题是我不记得曾经学习过Java,所以我猜我是边学边做的。现在我已经全职从事Java开发很长时间了。
如果您对C++非常熟悉,您可能需要阅读一份主要区别列表(例如,所有内容都是动态绑定),然后在环境上开始练习(只需下载Eclipse)。小差异是您需要适应的主要内容。
现在Java支持泛型,其中一个主要的转换障碍已经不存在了。尽管Java不支持多重继承,但如果您习惯使用接口,这也不是什么大问题。实际上,使用接口而不是带有纯虚函数(PVFs)的抽象类可以提高可读性。
对我来说,Java是C ++的一个友好且放松的沙盒版本。我不必担心通用保护故障(GPFs),我不必担心内存泄漏,我不必担心指针的问题。然而,不要让这使您困惑,仍然有很多机会犯错误,并且有时难以检测。
只需要尝试一下。如果您有直觉,这应该不是什么问题。
我走了一条不同的路线。先学Java,然后再学C和C++。在我个人的经验中,学习Java比学习C/C++(特别是C++)容易得多。
许多方面来看,Java 的设计目标是将 C++ 中未定义和过于复杂的部分删除或简化。在我看来,它实现了这个目标,因此它是一种非常易于学习和使用的语言。尤其是对于熟悉 C++ 的人来说。
实际学习所需的时间非常依赖于学习者本身。但是,我认为可以肯定地说,在 Java 上达到熟练水平所需的时间要比在 C++ 上少。
不应该太难。 语法和类应该很容易掌握。 有一些区别,但没有太大挑战。
最困难的部分更多地是关于学习软件包,因为这些将是不同的。 内置的Java类和函数,然后以实际方式使用Java,您需要学习J2EE或您实际使用它的任何内容。 后者可能会比语言本身花费更多时间。
C++ 转 Java:1周。 Java 转 C++:1个月。
java.lang
、java.util
等)。剩余的类库则需要6个月到永远的时间,这取决于你需要学什么以及它们更新的频率 :-)我会C++,曾经不得不使用Java并在两周内掌握了它。当然有一些惊喜,但很容易。
我有 C++ 的背景。学习 Java 只花了我几天时间 - 这门语言看起来真的很简单 - 至少是基础部分。我仍然向我的 Java 大师请教 - 经常使用谷歌搜索,但通常只需要探索 API 和标准库。Java 有一些烦人之处,但大多数都可以轻松快速地解决。
我曾经被推荐过《Thinking in Java》(有免费电子书),但从未坚持阅读完整本书。我在 Java 中没有编写非常复杂的代码,并且我的技能足以胜任。
话虽如此,拥有更好的语言正式知识肯定是有好处的。目前我正在考虑学习SCJP,这似乎是一种明智的学习方式,而且一旦通过,您将获得广泛认可的编程证书(我听说它并不值钱,但还是可能是一种动力...)。
你也可以尝试Java黑带 - 里面的答案经常让我惊讶。在参加了几次测试之后,我开始怀疑我的程序是如何编译通过的,这表明我可能不是最有能力的Java程序员 :)
你如何定义“能干”?对我来说,大多数职业(指他们为了赚钱而从事此行业)Java程序员都无法达到“能干”的水平。