成为Java专家需要什么?

时间:2009-06-28 03:31:42

标签: java c++

我刚刚阅读this thread并想知道成为Java专家是否比C ++专家更容易?是因为在C ++中编写错误的代码非常容易,而在Java中你的灵活性较低(例如内存管理)会阻止你编写代码恐怖吗?或者是因为C ++本身就难以学习和掌握?您是否发现了一项区分和描述C ++与Java和C#等编码器的研究?

12 个答案:

答案 0 :(得分:16)

除了少数例外情况,每当我听到有人说他们是某种语言的“专家”时,我通常都会把它们当作一粒盐。无论用哪种语言,最优秀的程序员都知道他们总是需要学习一些东西 - 无论是经验丰富的退伍军人还是刚出大学的孩子。

答案 1 :(得分:10)

需要什么?像任何事情一样,多年的实践和无数的错误。

即便如此,您的专业知识将在少数几个一次又一次解决特定问题领域的领域中出现;即专业领域。中间件和/或框架?线程与并发?也许是Swing / GUI Java应用程序?或者是网络应用程序......

Java已经发展到如此程度,以至于没有人可以成为所有Java的专家 - 看看在1.4到1.6之间添加了多少包,这应该是显而易见的。虽然你的家伙非常接近(想想Johsua Bloch ......)。

编辑:如果这是关于招聘人员和人力资源...甩掉所有的流行语,最少年份和“专家”,只需要与想要雇用的团队进行电话采访。您需要从技术人员那里了解到他究竟在寻找什么,因为几乎所有的招聘人员和招聘机构都完全无懈可击。

答案 2 :(得分:2)

需要考虑的一件事是可以学习和学习的开源代码量。

还有相当多的开源C ++代码,但通常Java更简洁,更专注,无需处理平台差异和各种不同的库。

我觉得Java更容易学习,因为这是我推荐改进和学习的方式。阅读代码。阅读JDK,阅读众所周知和受尊重的库和框架的来源。深入了解它的运作方式。

答案 3 :(得分:2)

最好的方法是用Java编写很多东西。如果它不是您在工作中使用最多的语言,那么它应该是您在个人项目中使用最多的语言,如果您想成为它的专家(这适用于任何语言)。

一些可以帮助您的阅读材料:

至于学习的方便性,我个人学习Java比学习C ++更容易。 Java绝对受益于其开发人员的后见之明。他们能够主要保留那些对C ++有益的东西,并摆脱一些使C ++更难学的东西。他们设法让你更难,但绝不是不可能的,用Java而不是用C ++来射击自己,并且当你这样做时,潜在的伤害通常也会减少。

  

您是否遇到过一项区分和描述C ++与Java和C#等编码器的研究?

我不知道有任何这样的研究,我甚至不会开始推测。 :)

答案 4 :(得分:2)

  

您是否遇到过一项区分和描述C ++与Java和C#等编码器的研究?

this one。遗憾。

答案 5 :(得分:1)

我认为在业界,Java和C ++专家的含义略有不同。通常,Java专业知识意味着具有一些API(例如J2EE),一组框架或特定应用程序服务器的专业知识。似乎使用它的一小部分公司只使用核心Java,因此他们经常根据您可以声称知道多少API来衡量专业知识。使用C ++的公司通常出于速度原因使用它,并且从头开始编写更多代码,因此他们可能对核心语言专业知识更感兴趣。

话虽这么说,我认为Java作为一种语言要简单得多,但其庞大的库和框架集非常复杂。 C ++很难,因为你基本上学习了三种语言:程序,面向对象和模板元编程。

答案 6 :(得分:1)

在我看来,C和C ++的问题是它们是在60年代的 1 中发明的。 Java后来出现了很多,并且从C / C ++中经常出现的错误,错误实践和可疑解决方案中学到了很多东西。在2001年C#出现之后,我会说我们观察到了这两种语言的共同演化。他们互相学习,并从C / C ++中学到了历史上的第一次,也来自用户自己! 2

就我而言,为了回答你的问题,我不得不决定在12年前学习C ++或Delphi。我发现当时使用C ++既复杂又繁琐。从那以后,我几年前转向Java,同时追踪C#的优点。总的来说,只需要时间就可以成为一种或另一种语言的专家。我会评价自己是一位经验丰富的程序员,至于'expert'这个词的含义在tdwtf上有很好的定义,我希望永远不会适用于我。 IMHO。

我认为比较各种语言编码器的最佳方法是自己动手,因为我认为关于这个主题的每一个论点都是主观的。

1 如果我对日期错了,请纠正我 2 可能不是第一次,但阅读这些语言的出现和新兴特征的文章让我感觉如此。

为了比较我前一段时间找到了这些参考文献:

ComparacióndecaracterísticasdeloslenguajesdeprogramaciónJavay C#,Mayo,2003

虽然它是西班牙语,但我只看了代码示例。

Comparing Object-Oriented Features of Delphi, C++, C# and Java

关于这个主题的另一个更多样化的比较。

还有来自MS的'广告'试图说服你切换到C#(或者在VS中可用的C ++):

C#for Java Developers(Allen Jones& Adam Freeman,Microsoft Press,2002)

或者如果你想要一个'独立'的研究:

从Java到C#:开发人员指南(Heng Ngee Mok,Addison Wesley,2003)

答案 7 :(得分:1)

大多数情况适用于许多其他语言:

一如既往,您需要很多经验才能成为一名java专家。如果您认为自己获得了足够的经验,请了解更多信息。

Java拥有丰富而强大的API,如果您想成为专家,了解它是有道理的。

你应该学会编写清洁和可维护的代码,成为一名优秀的程序员。

学习java不具备的不同语言的概念(例如闭包)。如果你了解技术/编程语言,你可以学到很多东西。

了解VM的概念,热点编译器和Java使用的分代垃圾收集器。

如果你达到知识水平,你认为你无法学到更多 - 你不是专家。总有更多要知道,而真正的专家知道这一点。

答案 8 :(得分:0)

考虑一下你想做什么。

如果您想使用Mac程序,请学习Objective-C。如果你想使用Windows程序学习C#或C ++。如果您想使用Web服务器后端学习Java。

如果你想成为一名专家,你需要多练习并学习更多东西。我可以推荐阅读“如何成为黑客”http://catb.org/esr/faqs/hacker-howto.html#why_this(整篇文档),因为它会给你很多想法和提示,你应该做什么。

只学习一种语言就像只用丙烯酸涂料一样。

答案 9 :(得分:0)

  

或者是因为C ++才是   本质上更难学习和掌握?

我说这是主要原因。 C ++是一种复杂得多的语言,具有许多难以理解的特性,尤其是它们如何交互。

当然,语言本身并不是一切 - Java有一个更大的标准API和事实上的标准框架,“专家”应该知道。

答案 10 :(得分:0)

作为一种语言的“专家”并不意味着那么多,例如说你是C ++的专家,但已经在Linux中编写了你的​​所有职业,你会聘请这样的人去做Win32程序,还是你呢?拿一些不一定是专家但有Win32经验及其怪癖的人?

答案 11 :(得分:0)

可以说,成为语言专家需要10年时间。因此,我说成为Java或C ++专家同样容易。

成为专家需要不同的技能。 Java可以使用数百个常用的开源项目。成为Java专家意味着要对这些额外内容有很好的理解。例如Java EE,Spring,Hibernate等等。