Entry Level / Jr / Sr开发人员之间有什么区别?[关闭]


198

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

  • 他们有什么不同的责任。

  • 他们的知识/经验如何?

  • 确定开发商适合该基本结构的基本措施是什么?

Answers:


341

这会有所不同,但这就是我在一个足够大的地方能够区分程序员类型的地方所看到的方式。

我会说入门级和初级是同一回事。他们刚刚离开学校,只有不到两年的工作经验。他们被分配了最简单的任务,应该受到相当严格的监督。通常,他们知道自己所知道的内容的10%。通常他们没有经历整个开发周期,因此如果有选择的机会,往往会做出一些非常幼稚的选择。可悲的是,其中许多人实际上并不在乎需求是什么,他们想以自己的方式建造事物。他们通常具有较差的调试技能。

中级水平是许多程序员的职业。他们有两年以上的经验,通常少于十年,尽管有些人可以在整个职业生涯中保持这一水平。只要将它们分配给相对常规的任务,他们就可以在较少的监督下生成工作代码。通常,他们不需要承担高级设计或高度复杂的任务,这些任务需要深入的知识。但是,他们可能要负责设计应用程序的一部分,尤其是当他们要成为高级开发人员时。他们擅长于维护任务或仅专注于难题的任务,但是通常不期望他们将整个应用程序考虑在内,除非与高级开发人员一起工作或准备晋升为高级人员。他们通常可以在故障排除和调试方面做得不错,但是他们必须真正克服困难。他们还没有足够的经验来查看问题中的模式,这些模式将其指向可能发生的位置。但是他们正在获得这些技能,并且很少需要寻求调试帮助。他们可能至少已经经历了整个开发周期一次,并且看到了设计问题的结果,并且正在学习如何在将来避免这些问题。通常,他们往往更倾向于从票面价值上获得要求,而在存在明显问题或差距时却不会将其推后。他们已经学到了足够的知识来知道自己不知道的东西,并开始获取这些知识。他们是编程界的主力军,

没有一个高级职位的人甚至不需要问这个问题。他们是所选技术堆栈中的专家。他们被赋予了艰巨的任务(没人知道如何解决),并且经常承担设计责任。他们通常独立工作,因为他们在交付货物方面拥有可靠的往绩记录。他们有望指导初级和中级开发人员。通常,他们是出色的疑难解答者。他们之前也遇到过同样的问题,并且对先看哪里有一个很好的了解。老年人也经常在工作场所以外进行指导。他们通常具有至少十年的经验,并且几乎总是至少参加过一次死亡游行,并且确切地知道为什么要避免某些事情。他们知道如何交付有效的产品并满足最后期限。他们知道哪些角落可以切掉,哪些角落绝对不能切掉。他们在专家级别上至少了解一种语言,并且经常会几种语言。他们已经看到了许多“热门新技术”进入工作场所并消失了,因此他们倾向于在赶上潮流中寻求下一个令人兴奋的新开发工具(但并不能完全抵制变化,因为它们可能会成为主流)。从未晋升为“高级”的资深中级开发人员)。他们了解自己的工作是提供可以满足用户需求的工作软件,而不是玩有趣的工具。他们通常会对自己将在哪里工作感到挑剔,因为他们可以做到,而且因为他们亲眼目睹了一些地方的糟糕程度。他们找出最有趣的任务要做的地方。通常,即使他们只在这里呆了几个月,他们对公司产品的了解也比其他任何人都多。他们知道,他们不仅需要编程知识,而且还擅长获取有关他们所支持的业务领域的知识。他们经常意识到初级人员从未考虑过的问题,而中间人也常常不考虑他们支持的业务领域中的法规和法律问题。他们可以并且会推迟需求,因为他们知道需求的问题,并且可以向外行解释。


2
Google译员使用“全面开发人员”时是否有“中级”标题(英文)。但这不是有价值的消息来源=)
Michel Ayres 2012年

23
出色的,类似故事的解释。我喜欢阅读。
Saeed Neamati 2014年

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

1
@NYCTechEngineer,好让我想到堆栈溢出。还有本地用户群,博客,撰写文章和书籍。
HLGEM

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

43

入门级-必须给他们明确的说明,检查他们所做的一切,几乎没有设计责任,没有分析责任

初级-不太明确的指示,较少的检查,一些次要的设计和分析职责;帮助入门级人员找到编译器并使用存储库

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


20
很好,只是我不知道我完全同意高级的“不检查/指示”。除非您不与团队合作或与团队合作,否则没有人应该完全是孤岛。
桑科旺科(Wonko the Sane),2010年

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

16

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


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

8

我认为老派工匠的学徒,行家和主人的位置适合入门级,初中(或没有前缀)和高级的这些位置。

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

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

随着时间的推移和成功项目的交付,您最终将成为高级职位。在较高的级别上,您已经掌握了您所在区域的所有内容,涵盖了整个开发过程以及所涉及的所有工具和技术。您有权做出重大的技术决策,并有望向管理层提供有关软件开发过程的见解。

因此,根据这些指南,您应该能够查看一个人或一个职位,并确定他们将其放入三个垃圾箱中的哪个。


6

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

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


4

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


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

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

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

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

4

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

例如,我曾经在一家公司工作,该公司认为在该公司工作超过5年的任何人都是“高级软件工程师”。在另一个极端,我工作的另一个地方有非常严格的定义(以及相关的薪级表)。

有些地方可能将“入门级”和“初级”视为同一意思。

它可以根据多年的经验,常识,特定知识(即了解某种语言的特征),管理和/或领导经验,其所有组合以及更多而有所不同。


3

在这里,我将给出一个非常简单的答案:高级开发人员(通常)是可以看到森林的人。他们不仅思考摆在面前的眼前问题,而且了解解决所面临问题后可能会发生或应该发生哪些体系结构更改。

我见过的大多数软件公司都有入门级人员进行日常编码,而高级开发人员则负责监督新人员的工作并解决非常棘手的棘手问题。

显然,这只是我的观点,而不是一成不变的规则。YMMV。


2

只需简单地从招聘网站上发现的个人观察中得出,并且仅与经验水平有关即可。

入职=您的新人可能是您的第一份工作。

初级=您的好人,但不应被认为是最好的,您通常也只有不到5年且超过2年的经验。

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


您错过了中级课程。
Neolisk'5
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.