了解C ++,学习Java需要多长时间?

时间:2009-04-05 15:35:35

标签: java c++

我是一位称职的C ++开发人员。我理解并使用多态,模板,STL,我对流的工作方式有了扎实的把握。出于所有实际目的,我没有完成Java开发。我肯定你们有些人在必须学习Java的时候处于类似的情况。你成为一名称职的Java程序员需要多长时间?

17 个答案:

答案 0 :(得分:19)

我认为学习语言并不困难。事实上,我曾经是一名全职C ++开发人员,在某些时候我开始编写Java代码。但事情是,我不记得曾经学过Java,所以我想我就像去了一样。我已经做了很长时间的Java全职工作了。

如果您熟悉C ++,您可能需要阅读主要差异列表(例如,所有内容都是动态绑定的),然后开始在环境中练习(只需下载Eclipse)。小差异是你需要调整的主要因素。

现在Java支持泛型,其中一个主要的切换难点已经消失。如果你习惯了接口,那么多重继承虽然不受支持,但并不是什么大事,实际上,接口而不是带有纯虚函数(PVF)的抽象类可以提高可读性。

对我而言Java是一个友好而友好且轻松的沙盒版C ++。我不必担心一般保护错误(GPF),我不必担心内存泄漏,我不必担心乱搞指针。但是,不要让这让你感到困惑,仍然有很多机会搞砸王室,而且有时甚至更难以察觉。

快步走吧。如果你有直觉,那应该不是问题。

答案 1 :(得分:8)

不应该太糟糕。语法和类应该很容易掌握。存在一些差异,但没有一个太具挑战性。

最难的部分更多是关于学习包,因为那些将是不同的。内置的Java类和函数,然后以实用的方式使用Java,您将需要学习J2EE或实际使用它的任何东西。后一部分可能比语言本身花费更多的时间。

答案 2 :(得分:8)

我走了相反的道路。从Java开始,然后转到C和C ++。根据我自己的个人经验,学习Java要比C / C ++(尤其是C ++)容易得多。

Java在许多方面都是C ++,其中许多未定义和不必要的复杂部分被删除或简化。恕我直言,它在这个目标上取得了巨大成功。因此,它是一种非常容易学习和使用的语言。特别是对熟悉C ++的人。

实际花费的时间非常依赖于学习语言的人。但是,我认为可以肯定地说,在Java中胜任的能力比在C ++中要少。

答案 3 :(得分:4)

如果你已经是一名称职的程序员(特别是在C ++中),那么Java根本不需要很长时间才能学习。对于想要学习Java的人,我建议(按顺序)的书是:

根据您的经验,您可能会发现您很快就会通过Head First Java进行压缩。出于这个原因,我建议你从图书馆中查看并浏览它,然后再继续阅读Thinking in Java。

另请查看Sun的Java Tutorials

答案 4 :(得分:4)

正如Tom Hawtin所写,关键问题在于你如何定义能力。

你可以很容易地掌握这门语言,但这是你必须学习的习语和图书馆。你工作的利基(例如嵌入式或企业级)之间以及据称解决相同问题的库之间存在很多差异。以下是一些例子:

  1. 在商业/企业应用中,您通常使用数据库。你可以在那里:

    • 普通JDBC
    • SQL mapper(iBatis),包含详细和重复的JDBC
    • ORM解决方案(Hibernate),具有自己的哲学
  2. 使用桌面用户界面,您有两个竞争平台:

    • Swing,JRE的一部分
    • SWT / JFace,来自Eclispe基金会,由IBM发起,具有本机UI支持
  3. Web框架太多了,无法用于表示UI,配置,文件夹/包结构等。

  4. DI(依赖注入)在商业应用程序中很常见,可以是Spring之类的第三方框架,也可以是EJB3标准的一部分。但是,我不认为它曾用于嵌入式设置。

  5. 可以说这只是冰山一角。

答案 5 :(得分:3)

C ++ to Java:1周。 Java到C ++:1个月。

答案 6 :(得分:2)

早在1995年,当我这样做时,花了大约半天的时间来熟悉工具和基本想法,一两天才能获得语言,一周时间来获得语言中更加模糊的部分(那里当时的人数较少)和一个月的时间来获得图书馆(那时候他们当时没有那么多)。

现在我猜这些工具和基本语言需要花费很多时间,几个星期到一个月用于语言的模糊部分(取决于你击中的部分以及何时)。基本库将是一个月到两个月(java.langjava.util和其他几个月)。其余的类库将永久地存在6个月,具体取决于您需要学习的内容以及不断更新它们的频率: - )

答案 7 :(得分:1)

我了解C ++,并且必须使用Java一次并在2周内完成。当然有很多惊喜,但这很容易。

答案 8 :(得分:1)

我会在六到八周内离开。

答案 9 :(得分:0)

我认为术语“称职的Java程序员”的含义有两种方法。 如果它是关于词汇,OOP的语法和术语,我开始在学习两(2)天之前完全理解Java。 但首先你会因为不可能拍摄自己的腿而感到迷惑;) 但是如果它是嵌入式类系统(即包),API引用,提示和技巧等的情况,那么用Java感觉自己很友好大约需要半年时间。我想。

答案 10 :(得分:0)

我先学习C ++然后再学习Java。由于我已经熟悉OOPS概念,所以花了很少的时间。在学习的初始阶段,我非常满意Jave中的新概念,如垃圾收集器。我提到了Herbert Schildt的The Complete Reference,它帮助我快速掌握了语法。

答案 11 :(得分:0)

我有C ++背景。拿起Java花了我几天 - 语言似乎很简单 - 至少它的基础。我仍然咨询我的Java大师 - 谷歌相当多,但通常是探索API和标准库的问题。 Java有一些烦恼,但你应该轻松​​快速地发现它们中的大多数。

我被推荐Thinking in Java(免费提供电子书),但从来没有坚持不懈地阅读它。我不用Java编写火箭科学代码并且这样做,我的技能就足够了。

话虽如此,最好有正确的语言知识。目前我正在考虑学习SCJP,这似乎是一种明智的学习方式,而且一旦你通过它,你将获得良好认可的编程证书(我听说它不值得,但它仍然是可能是一种动机......)。

你也可以尝试Java Black Belt - 答案常常令我惊讶。在进行了一些测试后,我想知道我的程序是如何编译的,这表明我可能不是最有能力的Java程序员:)

答案 12 :(得分:0)

你如何定义胜任?对于我的钱,大多数专业人士(就像他们为钱而做的事)Java程序员从未设法达到胜任。

答案 13 :(得分:0)

我从C ++开始学习C#/ .NET。这没多久。 由于C#/ .NET开发非常接近Java(他们使用了许多Java的基本技术,如GC,引用类,JIT,......)我认为学习Java并不难。

答案 14 :(得分:0)

如今,编程语言的大部分功能来自其库和被接受的习语。

虽然学习Java语言的时间相对较短,但学习有效使用可用库(集合,io等)可能会花费更多时间。

答案 15 :(得分:0)

学习这门语言不应该超过一两天,但你可能要花几周时间在课程库上:如何使用集合,concurreny包,反射,日志记录,swing / awt,动态代理,MBeans等。

答案 16 :(得分:0)

我在15岁时学会了c ++,并成为一名专业的软件程序员。但是当我搜索工作时,只有java开发人员可以使用的工作。我认为很难改变我的语言。所以只是为了试用我下载java编译器,只是为了好玩键入一些代码,我发现它与c ++没什么不同。经过6个小时的研究和学习后,我成了一名java开发人员。所以在c ++和java之间切换非常容易。