it-swarm.cn

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

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

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

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

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

198
JD Isaacks

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

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

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

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

341
HLGEM

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

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

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

43
Steven A. Lowe

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

16
Craig

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

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

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

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

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

8
Todd Williamson

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

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

6
Walter

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

4
Chris

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

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

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

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

4
Wonko the Sane

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

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

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

3
MattC

只需简单地从求职网站上发现个人观察,并仅从经验水平上考虑。

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

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

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

2
lord-fu