我是一位称职的C ++开发人员。我理解并使用多态,模板,STL,我对流的工作方式有了扎实的把握。出于所有实际目的,我没有完成Java开发。我肯定你们有些人在必须学习Java的时候处于类似的情况。你成为一名称职的Java程序员需要多长时间?
答案 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所写,关键问题在于你如何定义能力。
你可以很容易地掌握这门语言,但这是你必须学习的习语和图书馆。你工作的利基(例如嵌入式或企业级)之间以及据称解决相同问题的库之间存在很多差异。以下是一些例子:
在商业/企业应用中,您通常使用数据库。你可以在那里:
使用桌面用户界面,您有两个竞争平台:
Web框架太多了,无法用于表示UI,配置,文件夹/包结构等。
DI(依赖注入)在商业应用程序中很常见,可以是Spring之类的第三方框架,也可以是EJB3标准的一部分。但是,我不认为它曾用于嵌入式设置。
可以说这只是冰山一角。
答案 5 :(得分:3)
C ++ to Java:1周。 Java到C ++:1个月。
答案 6 :(得分:2)
早在1995年,当我这样做时,花了大约半天的时间来熟悉工具和基本想法,一两天才能获得语言,一周时间来获得语言中更加模糊的部分(那里当时的人数较少)和一个月的时间来获得图书馆(那时候他们当时没有那么多)。
现在我猜这些工具和基本语言需要花费很多时间,几个星期到一个月用于语言的模糊部分(取决于你击中的部分以及何时)。基本库将是一个月到两个月(java.lang
,java.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之间切换非常容易。