除了头衔和薪水以外,有什么区别?


他们有什么不同的责任。
他们的知识/经验如何?
确定开发人员适合该基本结构的基本方法是什么?


#1 楼

这会有所不同,但这是我在一个足够大的地方能够看到不同类型的程序员的地方所看到的样子。他们刚刚离开学校,只有不到两年的工作经验。他们被分配了最简单的任务,应该受到密切的监督。通常,他们知道他们认为的知识的10%。通常他们没有经历整个开发周期,因此如果有选择的机会,往往会做出一些非常幼稚的选择。可悲的是,他们中的许多人实际上并不关心需求是什么,他们想按照自己的方式建造东西。他们通常调试技能很差。

没有一个高级职位的人甚至不需要问这个问题。他们是所选技术堆栈中的专家。他们承担着艰巨的任务(没人知道如何解决),并且经常承担设计责任。他们通常独立工作,因为他们在交付货物方面拥有良好的往绩记录。他们有望指导初级和中级开发人员。通常,他们是出色的疑难解答者。他们以前也遇到过同样的问题,并且对先看哪里有一个很好的了解。老年人也经常在工作场所之外进行指导。他们通常有至少十年的经验,几乎总是至少参加过一次死亡游行,并且确切地知道为什么要避免某些事情。他们知道如何交付有效的产品并满足最后期限。他们知道可以切掉哪些拐角,切勿切掉什么拐角。他们在专家级别上至少了解一种语言,并且经常会几种语言。他们已经看到了许多“热门新技术”进入工作场所并消失了,所以他们倾向于在赶上潮流寻求下一个令人兴奋的新开发工具时保守一点(但并不能完全抗拒变革,而这将是从未晋升为“高级”的资深中级开发人员)。他们了解自己的工作是提供可以满足用户需求的工作软件,而不是玩有趣的工具。他们常常对自己将在哪里工作感到挑剔,因为他们可以做到,而且因为他们亲眼目睹了一些地方的糟糕程度。他们找出最有趣的任务要做的地方。通常,即使他们只在这里呆了几个月,他们对公司产品的了解还是比其他人要多。他们知道,他们不仅需要编程知识,而且还擅长获取有关他们所支持的业务领域的知识。没有一个高级职位的人甚至不需要问这个问题。他们是所选技术堆栈中的专家。他们承担着艰巨的任务(没人知道如何解决),并且经常承担设计责任。他们通常独立工作,因为他们在交付货物方面拥有良好的往绩记录。他们有望指导初级和中级开发人员。通常,他们是出色的疑难解答者。他们以前也遇到过同样的问题,并且对先看哪里有一个很好的了解。老年人也经常在工作场所之外进行指导。他们通常有至少十年的经验,几乎总是至少参加过一次死亡游行,并且确切地知道为什么要避免某些事情。他们知道如何交付有效的产品并满足最后期限。他们知道可以切掉哪些拐角,切勿切掉什么拐角。他们在专家级别上至少了解一种语言,并且经常会几种语言。他们已经看到了许多“热门新技术”进入工作场所并消失了,所以他们倾向于在赶上潮流寻求下一个令人兴奋的新开发工具时保守一点(但并不能完全抗拒变革,而这将是从未晋升为“高级”的资深中级开发人员)。他们了解自己的工作是提供可以满足用户需求的工作软件,而不是玩有趣的工具。他们常常对自己将在哪里工作感到挑剔,因为他们可以做到,而且因为他们亲眼目睹了一些地方的糟糕程度。他们找出最有趣的任务要做的地方。通常,即使他们只在这里呆了几个月,他们对公司产品的了解还是比其他人要多。他们知道,他们不仅需要编程知识,而且还擅长获取有关他们所支持的业务领域的知识。他们经常意识到初级人员从未考虑过的问题,而中间人通常也不考虑他们支持的业务领域中的法规和法律问题。他们可以并且会推迟需求,因为他们知道需求的问题,并且可以向外行解释。
没有一个高级职位的人甚至不需要问这个问题。他们是所选技术堆栈中的专家。他们承担着艰巨的任务(没人知道如何解决),并且经常承担设计责任。他们通常独立工作,因为他们在交付货物方面拥有良好的往绩记录。他们有望指导初级和中级开发人员。通常,他们是出色的疑难解答者。他们以前也遇到过同样的问题,并且对先看哪里有一个很好的了解。老年人也经常在工作场所之外进行指导。他们通常有至少十年的经验,几乎总是至少参加过一次死亡游行,并且确切地知道为什么要避免某些事情。他们知道如何交付有效的产品并满足最后期限。他们知道可以切掉哪些拐角,切勿切掉什么拐角。他们在专家级别上至少了解一种语言,并且经常会几种语言。他们已经看到了许多“热门新技术”进入工作场所并消失了,所以他们倾向于在赶上潮流寻求下一个令人兴奋的新开发工具时保守一点(但并不能完全抗拒变革,而这将是从未晋升为“高级”的资深中级开发人员)。他们了解自己的工作是提供可以满足用户需求的工作软件,而不是玩有趣的工具。他们常常对自己将在哪里工作感到挑剔,因为他们可以做到,而且因为他们亲眼目睹了一些地方的糟糕程度。他们找出最有趣的任务要做的地方。通常,即使他们只在这里呆了几个月,他们对公司产品的了解还是比其他人要多。他们知道,他们不仅需要编程知识,而且还擅长获取有关他们所支持的业务领域的知识。他们经常意识到初级人员从未考虑过的问题,而中间人通常也不考虑他们支持的业务领域中的法规和法律问题。他们可以并且会推迟需求,因为他们知道需求的问题,并且可以向外行解释。
中级水平是许多程序员的职业。他们有两年以上的经验,通常少于十年,尽管有些人可以在整个职业生涯中保持这一水平。只要将它们分配给相对常规的任务,他们就可以在较少的监督下生成工作代码。通常,他们不需要承担高级设计或高度复杂的任务,这些任务需要深入的知识。但是,他们可能要负责设计应用程序的一部分,尤其是当他们要成为高级开发人员时。他们擅长于维护任务或仅专注于难题的任务,但是通常不期望他们将整个应用程序考虑在内,除非与高级开发人员一起工作或准备晋升为高级人员。他们通常可以在故障排除和调试方面做得不错,但是他们必须真正克服困难。他们还没有足够的经验来查看问题中的模式,这些模式将其指向可能发生的位置。但是他们正在获得这些技能,并且很少需要寻求调试帮助。他们可能至少已经经历了整个开发周期一次,并且看到了设计问题的结果,并且正在学习如何在将来避免这些问题。通常,他们往往更倾向于以票面价值来要求,而在有明显问题或差距时却不会将其推后。他们已经学到了足够的知识来知道自己不知道的东西,并开始获得这些知识。它们是编程世界的主力军,它们提供了大约80-90%的例行代码以及10%的非常困难的东西。


评论


Google翻译人员使用“全面开发人员”时是否有“中级”标题(英文)。但这不是有价值的资源=)

–米歇尔·艾尔斯(Michel Ayres)
2012年11月27日13:31

出色的,类似故事的解释。我喜欢阅读。

– Saeed Neamati
2014年4月6日在8:11

感谢您的解释。我是iOS开发的自学者(没有comp-sci教育),并且发布了我的第一个应用程序,该应用程序具有一些不重要的功能(例如CRUD的JSON,一些社交组件,良好的设计)。我认为我不是一个优秀的程序员,但是我确实将应用程序写在了前面,并了解了交付所需要的东西。假设您会把像我这样的人放在哪里?

–SamYoungNY
16-2-10在18:24



@NYCTechEngineer,很容易想到堆栈溢出。还有本地用户组,​​博客,撰写文章和书籍。

–HLGEM
16年2月10日在18:53

@BrianHaak Thx-你说的很有趣。自去年以来,我从事的项目比以前大得多。我已经感觉到看了几个月前我写的代码并说“ wtf?谁认为这是个好主意?” :)-从一个小的内核开始这个项目到一个可以轻松扩展的项目,并且还能够容纳想要添加内容的非开发人员,这迫使我考虑使用更高层次的结构。与经验丰富的程序员结对,这表明我缺少很多机会。使用抽象。我也遇到麻烦w名称空间。

–SamYoungNY
17年5月4日在3:43



#2 楼

入门级-必须给他们明确的指示,检查他们所做的一切,很少或没有设计责任,没有分析责任。帮助入门级人员找到编译器并使用存储库。

高级-主要的设计和分析职责,应由他/她自己纠正监督,很少/不检查,很少/没有指令;帮助初级人员学习/提高分析和设计技能

评论


很好,除非我不完全同意我对高级的“不检查/指示”。除非您不与团队合作或与团队合作,否则没有人应该完全是孤岛。

–旺角桑科
10-10-26在20:51

@WonkotheSane我们有一个可以合并有错误的代码,而无需任何codeReview或pull请求。除了仅在各处使用观察模式外,没有太多关于应用程序体系结构的讨论。全部由他自己决定,因此他不会适应任何新事物。都是因为他本人就是一个小岛。他不在里面。他是岛上的人:(

–蜂蜜
16年12月24日在16:35

#3 楼

真的,我认为这取决于您工作了多长时间。如果您有10年的经验,则是高级开发人员;如果您是毕业生,则可能是入门级人员。我见过许多“高级”开发人员,他们几乎不会编写代码,也不真正知道他们在做什么,还有许多初级开发人员,他们很棒。

评论


这呼应了我的经验。 “高级”是指与公司在一起的时间,通常没有别的;技能不算一个IOTA。我曾与许多“高级”开发人员(以及有关此事的经理)一起工作,他们对除试错开发之外的软件一无所知,但在公司工作了5年以上,或者是在地方开始了,因此由于任期而得到提升。

–韦恩·莫利纳(Wayne Molina)
2011年7月27日15:10



#4 楼

我认为老派工匠的学徒,熟练工和大师职位适合入门级,初中(或没有前缀)和高级的这些职位。

某人入门级别的工作相对简单,不会产生深远的影响,其工作由大三或大三检查。随着时间的流逝,他们将承担更多责任,并承担更复杂的任务,并不断学习。

初级(或者只是从标题/描述中删除“入门级” /“初级”),您已经完成了学徒期,并涵盖了公司的主要发展领域,进入每个主要领域,以便您熟悉每个领域。您现在可以为同等学徒提供指导和意见,但是您自己的工作仍将由上级/下级审核,尽管可能不像初中时那么多。

随着时间的流逝以及成功项目的交付,您最终将成为高级职位。在较高的级别上,您已经掌握了您所在区域的所有内容,涵盖了整个开发过程以及所涉及的所有工具和技术。您有能力做出重大的技术决策,并有望为管理层提供有关软件开发过程的见解。他们降落的三个垃圾箱中的一个。

#5 楼

这将归结为公司对程序员的期望。

如果我是招聘公司,并且聘请了入门级程序员,我知道那个人几乎一无所知,我们将假设他/她需要学习一切。从技术的角度来看,如果我聘用一个高级职位,从理论上讲,他们将是足够的。

#6 楼

这严格取决于公司。但是这句话很明显:入门级是刚进入该领域的人,初级级是超出入门级并且对几种语言技术了解得很深的人。最后是高层,他们是项目的主要负责人,而且职位更高。他们通常可以委托尽可能多的代码。

评论


我明白了,但是到什么时候您才“超出入门级”或“超越初中”?如果您一直在学习,那么每天您都会超越前一天。

– JD Isaacks
2010-10-26 19:43

入门级别很容易,但是我正在寻找更多的经验/知识示例,这些建议会建议您初级或高级。

– JD Isaacks
2010-10-26 19:48

就像我说的那样,这取决于公司,所讨论的技术/语言的背景,更具体地来说,它仅是见解,除非您谈论的是正式职位。除非我自己写这些令人毛骨悚然的东西,否则我认为我永远不会把自己当作任何语言的专家。

–克里斯
2010-10-26 19:53

此外,如果您在一家公司,请研究jr,sr开发人员,并与他们进行比较/对比。在特定于上述公司的情况下,这是一个很好的衡量标准。

–克里斯
2010-10-26 19:54

#7 楼

就像大多数人所说的,它因公司而异,因工作而异。

例如,我曾经在一家公司工作,该公司认为在该公司工作5年以上的任何人都是“高级软件工程师”。在另一个极端,我工作过的另一个地方有非常严格的定义(以及相关的薪级表)。
它可能会根据多年的经验,常识,特定知识(即了解某种语言的特征),管理和/或领导经验,所有这些的结合而变化,当然还有更多。

#8 楼

在这里,我将给出一个非常简单的答案:高级开发人员(通常)是可以看到森林的人。他们不仅思考摆在眼前的眼前问题,而且了解解决他们所面临的问题后可能会或应该发生的体系结构更改。看到入门级人员每天进行编码,而高级开发人员正在监督新人员在做什么,并解决真正棘手的棘手问题。一成不变的规则。 YMMV。

#9 楼

简单地从求职网站上发现的个人意见和经验来看,只涉及经验水平。是最好的,您通常也只有不到5年且超过2年的经验。

高级=您应该是最好的,并且有5年以上的经验。

评论


您错过了中级课程。

–Neolisk
17年5月3日19:50