开发人员多年使用某种语言的经验有何不同?[关闭]


9

如标题所述,就开发人员而言,使用给定语言的多年经验有何不同?例如,如果一位开发人员使用A语言使用了五年,而另一位开发人员使用B语言使用了两年,而之后使用A语言使用了三年,那么两者之间是否有明显的区别?

Answers:


26

“这取决于”

体验<>知识或理解。

程序员1可能非常好,甚至是专家,或者他们可能是过去5年中一直在使用该语言的人。

程序员2可以是独立于所用语言理解概念的人。或认为语言B太难并且希望语言A容易一些的人。

编码恐怖的“经验神话年”值得一读


6
就像他们说的那样,您的开发人员可能有5年的语言A经验-或者他可能有1年的经验,重复了5次。
Carson63000

1
+1求真-我与拥有8年以上经验的新员工合作,结果证明他们充其量只是平均水平。相反,我们刚大学毕业一年就雇用了一个人,他超出了所有人的期望。
达莫维萨

4

这取决于。

我有一个倾向于只使用一种语言的朋友,所以如果您认为他是“程序员A”,那么他有1年的使用该语言的经验,有5次。

不同的语言可以让您做不同的事情。我特别喜欢的一篇文章被保罗·格雷厄姆(Paul Graham )称为“ 击败平均水平 ”。在其中,他试图说服人们学习Lisp,但是他也提出了一些非常有用的观点:

程序员非常喜欢他们喜欢的语言,我不想伤害任何人的感觉,因此为了解释这一点,我将使用一种称为Blub的假设语言。Blub恰好位于抽象连续性的中间。它不是最强大的语言,但是比Cobol或机器语言更强大。

实际上,我们假设的Blub程序员不会使用它们中的任何一个。当然,他不会用机器语言编程。这就是编译器的用途。至于Cobol,他不知道任何人能用它完成任何事情。它甚至没有x(您选择的Blub功能)。

只要我们假设的Blub程序员低头查看电源连续性,他就知道自己在低头。语言不如Blub强大,显然不那么强大,因为它们缺少了他惯用的某些功能。但是,当我们假想的Blub程序员朝着另一个方向看时,就可以看到整个能力,他并没有意识到自己在看。他看到的只是奇怪的语言。他可能认为它们的功能与Blub相当,但同时也引入了其他所有毛茸茸的东西。Blub对他来说足够好,因为他在Blub中思考。

但是,当我们从使用更高语言的任何一种语言切换到程序员的观点时,我们发现他反过来看不起Blub。如何在Blub中完成任何工作?它甚至没有y。

通常,我的建议是学习一种以上的语言,并了解什么是语言的优点和缺点。


我同意了解多种语言非常重要。语言是我们工具箱中的工具,了解语言的优缺点对完成工作很重要。您可以使用螺丝刀,锤子或钳子来钉钉子,但是一个钉子的效果比其他钉子好得多。当然,锤子太烂了,无法拧下螺钉或拧紧或拧松螺栓上的螺母。
锡人2010年

2

当然,在一种语言上拥有多年经验的开发人员将对该语言的核心库和特质有更好的了解。如果这些语言包含相同的范例(命令式与功能式),那么除了学习该语言之外,他们应该再没有其他麻烦。

选择一种新语言的最大困难来自尝试从C#切换到Erlang,因为它不仅代表了一种新的语法,而且还代表了一种新的编程思维方式。


5
假设开发商有能力。
gbn 2010年

2
@gbn:我绝对可以向您保证,就我而言,您不能做出这样的假设:)
Watson 2010年

2

这是我期望/希望的:

  1. 流利-他们应该能够从头顶写更多的代码,并减少查找语法的时间。
  2. 了解以前版本和当前版本之间的区别,以及如何将代码从一个版本迁移到另一个版本。
  3. 对编译,分发,测试以及创建升级和补丁有更全面的了解。
  4. 在IDE中创建/包括附加组件,并从中获得效率。

2

语言不是问题。您可以在几天之内学习整个语言。需要花费更多时间的是约定,API和各种第三方框架。当人们要求五年的X时,他们并不在乎语言,他们希望拥有在解决该语言和使用该语言方面有很多经验的人,这样他们就不必为学习上的任何费用付出代价。


您可以快速学习整个语言,但是如果您不了解任何概念,那将需要一些时间。并非所有语言都有相同的概念。
David Thornley,2010年

2

专长和刻意的实践。

如果您不刻意练习,则不会获得专业知识。(您必须检查并纠正错误,练习自己的弱项,并让专家告诉您您在做什么错也有帮助。)

如果您不尝试改进,那么您可以永远成为新手!

经过一万小时的精心练习,您将获得专业知识。(来自教育/培训的发现遍布整个网络。)

如果您的程序员A没有刻意练习,他们永远不会变得更好。

如果您的程序员B没刻意练习,他们永远不会变得更好。

同一项研究的另一个发现:如果我有15000个小时,而你有10000个,并且我一直在练习,那么你也一样,你永远不会比我更好。

知道两种语言可能会使B成为更好的程序员(受实践规则约束)。


1

我假设您正在将它们用于语言A。(显然,B语言会有所不同。)

这部分取决于A和B之间的差异(特别是如果我们缩短了第二个开发人员在A方面的经验)。如果它们相当相似,则经验基本上没有区别。如果A有很大不同的概念,那么三年仍然足够学习它们。给定非常大的库和复杂的工具,可能相隔三到五年。

当然,这里最重要的是个人。一个好的开发人员可以在三年内彻底学习一个新平台,因此这不是问题。


1

我同意语言是语言,概念是概念。

我的问题是,如今有大量的程序员,如果没有成熟的IDE,他们根本无法编程。他们实际上不是程序员,但实际上更像设计师。

我从个人经验中知道,很多人被笨拙的Microsoft开发环境所吸引。他们将文本框放到屏幕上,然后使用向导设置属性并从数据库图片中拖动数据,这不是错误的做法,但是如果他们所做的全部是设置基本的相等性测试,那么他们是否真的是任何语言的编码人员?

这些人永远都无法接受他们学到的概念并将其应用于另一种语言。

当我采访人们时,我对他们如何进行开发以及使用什么框架更加感兴趣。我喜欢问诸如“如何编写事件处理程序?”,“如何将数据准确地放入数据库中?”甚至“单击该按钮时如何将其变成紫色?”之类的问题。这将很快淘汰设计人员,并离开程序员。我发现用我选择的语言实际编程3年或4年就可以满足我的需求。

只是另一种意见,

塔尔


1

“ X语言/平台经验的年限”在很大程度上是一种招聘病理学。

它具有开放的解释能力,并且乍一看没有什么用处。如前所述,多年的经验神话是一本好书。

同样,至关重要的是,“经验年限”本身的度量可能非常不准确。这是我当前工作的一个示例:我的主要任务是开发和维护Java Web应用程序。但是,它运行在后端,即MFC / C ++ / SQL Server。因此,我几乎每天都在处理C ++代码。但是-这种C ++经验是相对肤浅且面向维护的,并且我不再真正在MFC / C ++中从头开始编写整个大型组件或程序(尽管我以前曾担任过角色)。

我是否仍可以将最近5年称为“ 5年C ++经验”?也许。也许不会。根据我想出售它以确保特定角色的方式,我可以毫不掩饰地轻易夸大它,或者我可以承认这并不是5年的“ C ++实际工作经验”。:)我敢肯定,有很多情况同样会出现这种“测量不准确”的问题。经验的深度会严重影响体验的质量。因此,“花费X花费在C ++上的时间”本身并没有多大意义。


-1

是的,程序员1没有语法具备语言B的知识。

编程概念是编程概念。语言只是语法。


5
哦,太对了……
哈维尔

哈维尔(Javier)的权利,语言不只是语法...您可以从经验中学到约定,第三方库和API。
Daniel S
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.