作为使用一种语言的高级开发人员,您是否有资格成为使用另一种语言的高级开发人员?[关闭]


27

如果我以一种语言(例如Java)作为开发人员工作,并晋升为高级开发人员,那是否有资格让我成为使用另一种语言(例如Ruby)的高级开发人员?


2
@Philip-这个问题实际上在两个方面都是一个临界问题。这是“过于本地化”的边界,因为它实际上仅对您有价值,并且是“没有建设性”的边界,因为它没有真正解决我们的常见问题解答中列出的提问准则。如果您可以编辑此问题并解决准则,那么可能值得保存该问题。
Walter

8
@Walter-我不同意您对本地化的第一条评论。这是关于一种语言的高级开发人员是否可以使您拥有另一种语言的高级开发人员职位的普遍适用问题/答案。
Craige

1
@Walter-删除了本地化问题,我认为现在可能是合理的。
乔恩·霍普金斯

1
@Walker-对不起,问题的意思是Craige所说的。我之所以这样写,是因为我假设大多数被视为初级的程序员都希望有一天成为高级开发人员。因此,选择正确的初级职位至关重要(或
Philip

11
这个问题似乎是假设“高级开发人员”具有某种普遍接受的含义。通常,这是职称之类的东西,而职称是您和您的雇主可以同意的。
David Thornley

Answers:


33

回答此问题的最佳方法是查看开发人员和高级开发人员之间的区别。假设这不仅是一项时间服务,通常我希望开发人员和高级开发人员都能够:

  • 用角色要求的语言熟练地编写代码
  • 诊断并修复错误
  • 编写单元测试
  • 遵循标准和合理的最佳做法(版本控制,文档)
  • 拥有广泛的基本技术能力
  • 专业行事

另外,我希望高级开发人员能够:

  • 指导其他员工最佳实践
  • 成为并确认团队使用的至少某些语言的参考点
  • 积极研究和倡导最佳实践的新领域
  • 获得更复杂的问题/代码领域的技术所有权,并提供可靠的解决方案

那么,问题就变成了您是否满足第二(或第三或第四)语言的扩展标准?我建议,只要您在语言上具有足够的技术能力,就可以迁移到是,因为大多数高级开发人员的内容都倾向于可移植。


1
这确实取决于环境,尤其是老板。一些“ Sr”认为他们需要在每个主题上展示自己的知识,尤其是在“ jr”可能对某个主题具有更多知识和经验的地方。当具有C ++背景的Sr.在C#项目上工作时,可能会形成一些严重的压力。对于这个特定的框架,“ jr”可能具有更大的知识库。这可能会引起激烈的战斗,尤其是在老板聆听时。
P.Brian.Mackey 2011年

@ P.Brian.Mackey-公平地说,具有相同头衔的不同工作之间存在一些相当大的差异。我接受了我认为是一个相当通用(明智)的定义,但定义范围可以从“ 30岁以上”到“了解一切”。
乔恩·霍普金斯

1
在任何比BF更复杂的语言中,祝后者好运...甚至C都比您预期的要黑得多!
SamB 2011年

“有些“高级职员”觉得他们需要在每个主题上展现自己的知识”。应该告诉这些人放松。如果您不承认某些未知的东西,您将学不到任何东西。自由承认某事物的无知的能力是力量的标志,而不是力量的标志。
PeterAllenWebb

1
+1用于指出某些技能但不是全部技能都是可以转让的。很好的表达方式。
妮可(Nicole)

5

无论您目前的状态如何,您都可以在任何一家公司申请任何职位。

您的简历/求职信/面试中的证明取决于您是该职位的人。


5

在采访高级开发人员时,我希望获得以下素质。

  • 曾用多种语言工作
  • 至少一名专家,至少另一名专家,最好是另一种范式
  • 了解所选区域中的最新技术,最新技术等
  • 良好的CS基础,例如(算法,算法成本核算,数据结构等)
  • 在特定问题的细节和全局之间切换的能力
  • 表达事物前进的方向错误以及原因;然后能够继续朝着错误的方向前进(又称专业)
  • 指导能力
  • 与团队合作并与团队合作的能力

我还有许多其他需要寻找的东西,但这是要点。

虽然我建议雇用不是使用的工作语言专家的高级开发人员,但他们是使用类似语言的专家。


3

您可以申请,但至少如果我正在招聘,我可能会也可能不会雇用您。

资历涉及(至少)两个领域。通用开发专业知识和语言/框架专业知识。(我有目的地忽略业务空间知识)。作为我书中的高级开发人员,还将包括一定水平的设计/架构专业知识。如何建立良好/可测试的系统等

达到Java的这一水平应该可以使您更好地使用其他(相似/过程)语言。

但是在这个期望立即提高生产力的时代,您不太可能像Java一样了解Ruby。如何将系统拆分为Ruby友好的结构而不是Java友好的结构。您可能知道一些Java框架,而不是Rails或其他特定于Ruby的东西。

如果在面试中我要你用Ruby进行白板编码,可以吗?

所有这些决定将由我决定是否以任何级别雇用您;但尤其是担任高级职务。

祝好运


感谢您的回答,是的,我可以在Ruby中进行白板编码(与C ++,Java相同)。实际上,目前我认为自己比Java更加精通Ruby,因为自一年以来我从事基于Ruby的私有项目。
菲利普

3

不。

这是我们的职业与其他更“正式”职业之间的最大差异之一。如果您曾从事遗嘱和遗产事务律师20年,那么您将获得很高的回报率,因为在该领域积累了20年的知识

如果您从事C ++ / Win32 / MFC已有15年了,即使您仍在同一领域中解决相同的问题,也并不能真正使您有资格成为Rails开发人员。例如帐单。

更糟糕的是,大多数公司甚至都不会考虑您的职位大致相同。例如,如果您从事C ++ / MFC已有5至7年,那么您应该能够掌握C#的最新知识。 /.NET 非常快,至少对于台式机而言。不幸的是,大多数公司并不这么认为。


4
我不知道“大多数”公司会这样看。当前的问题是,在经济不景气的情况下,有太多的人已经知道C#(在您的示例中),因此他们可能仅基于数字就使您无法进行搜索。
2011年

我认为大多数技能和经验都是可以转让的。学习新语法很容易。不幸的是,您是对的:这不是您的想法,而是雇用人员的想法。
没人

3

这取决于

从中删除“编程”。而是假装您是一名专业翻译。

假设英语是您的第一语言,并且您也精通法语。您可能会很容易地学习西班牙语。

但是,您不太可能很快掌握许多汉语方言。虽然您作为语言学家的经验可以帮助您学习语言,从而使您比从未学习过外语的人更具优势,但仍然需要更长的时间才能成为“专家”(即“高级”)。 )的翻译。


2

是和否

如果语言类似,例如C ++,Java或Ruby,请确保考虑使用。根据坐在这些办公室中的人员的灵活程度,您会有战斗的机会。

但是,如果语言有很大不同,并且我的意思是说您是一位热衷于Haskell的COBOL专家,那么尽管您拥有10年以上的COBOL机会仍然非常多,但您可能甚至无法像获得面试一样多。

在这种情况下最重要的事情:

  1. 如果您已经知道多种语言,并且已经证明了相同的经验。假设您擅长C ++,但也了解Perl,Tcl和一些Ruby,因此我愿意考虑使用Java。实际上,我认识的人在简历中都有使用C ++从事Java的工作。
  2. 如果您有相关领域的经验,那么您很有可能成功。例如,如果您是C ++游戏程序员,我认为没有理由为什么您不能被雇用来从事需要一定程度的多线程的C#工作。

1
好的,我不得不问-Ruby如何像C ++或Java?C ++和Java都是C风格的语言,而Ruby则来自Perl,Python和Smalltalk。
Craige

我指的是OOP作为指导主题。
Fanatic23 2011年

2

我很少看到基于语言的“高级”标题。我认识一些高级系统程序员,几个高级Web程序员和一个高级COBOL程序员。

编程是多方面的,并且提供了很多学科。我希望资深的Web开发人员(在标题上,程序员和开发人员似乎可以互换)精通Web开发中使用的几种主流语言。这会使Python和PHP专家立即成为C#的专家吗?不。另一方面,并​​非所有C#专家都掌握了项目管理和领导力的精湛技巧。

除了担任高级系统程序员之外,我还曾在一家公司担任CTO职务。但是,如果我们遇到一个需要二者之一的项目,我会很乐意服从计划或LISP专家。成为一名优秀的领导者之一是了解自己的限制和不足之处第一

我不确定我想在一家公司,甚至一家只专注于一种语言的部门工作。听起来这将像他们经常说的那样做:抽烟:当现实情况变得更糟时,阻碍您的成长。

不要追求标题,追求知识。但是,公平地讲,只要您具备手头的语言能力,那么您在先前的领导职位中所扮演的角色可能会给您带来更多的优势。


0

我认为这取决于您对高级开发人员的看法?如果更多的是建筑师的角色,那么您的开发经验将使您使用许多设计原则和设计模式,无论使用哪种语言。这是一个加号;-)

但是,当希望创建尽可能高效且可维护的应用程序或代码时(折腾一下),在切换语言,IDE和/或框架时,我认为您输入的体验水平不高。

但是正如runrun所说,这不会阻止您申请任何东西


0

这将高度取决于您面试的公司,因为通常是内部人力资源程序会驱动新员工的入职。较大的公司通常会很死板,如果他们说您必须具有特定语言n年的经验才能被视为高级,那么您可能会发现它们只会带您进入中级开发人员。

话虽如此,但这并不妨碍您申请该职位,如果他们邀请您参加面试,那是您应该讨论的事情。


0

我想说,语言越底层或对机器友好,您就越熟练。

与ASM / C / C ++专业知识相比,Java / C#专业知识的薪水更低。

后面的那些语言执行内存管理和其他在编程时实际上很重要的事情。

但是对于其他“轻松”语言,您需要对使它们“更轻松”的功能进行快速比较,但是我发现它没有用。使用CMS /您以前工作时使用的其他自制代码(例如代码点火器或django或Apache或RoR)可以更好地评估使用简单语言的体验。

对我来说,高级开发人员是对内核,系统,嵌入式硬件等进行编程的人。使用对机器不友好的语言的编程人员对我而言不是高级。他们只是做工作,仅此而已。


有趣的意见。我同意,C ++更加痛苦。另一方面,由于(当前)语言的某些部分已经过时,因此存在很多C ++的痛苦。较新的语言具有更多的库函数,Lambda,for-each-loop和较少的用于许多事物的隐式语法。这些问题可能使人们无法专注于实际的低级内容。
菲利普(Philip)

这是一个有趣的观点。以我的经验,高级人员会更多地与管理打交道,这不一定是因为他们不编写代码,而是因为他们有更多的经验将高级人员转换为非技术人员。您当然可以尊重这种能力。您的观点对一个由30名Web开发人员组成的团队提出了一个问题,他们中没有一个人因为不能编写内核而变得资深吗?如果他们在Mosaic上工作或刚读完高中,对您来说并没有什么不同?
史蒂夫·杰克逊

30位Web开发人员?开发者?好吧,“高级”对我来说意味着这个人已经编码了很长时间,或者年龄更大了。但是,如果我认为重要的经验和知识是“高级”,那么我认为如果您使用垃圾收集语言,就不能称其为编程经验。
11
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.