Answers:
这会有所不同,但这就是我在一个足够大的地方能够区分程序员类型的地方所看到的方式。
我会说入门级和初级是同一回事。他们刚刚离开学校,只有不到两年的工作经验。他们被分配了最简单的任务,应该受到相当严格的监督。通常,他们知道自己所知道的内容的10%。通常他们没有经历整个开发周期,因此如果有选择的机会,往往会做出一些非常幼稚的选择。可悲的是,其中许多人实际上并不在乎需求是什么,他们想以自己的方式建造事物。他们通常具有较差的调试技能。
中级水平是许多程序员的职业。他们有两年以上的经验,通常少于十年,尽管有些人可以在整个职业生涯中保持这一水平。只要将它们分配给相对常规的任务,他们就可以在较少的监督下生成工作代码。通常,他们不需要承担高级设计或高度复杂的任务,这些任务需要深入的知识。但是,他们可能要负责设计应用程序的一部分,尤其是当他们要成为高级开发人员时。他们擅长于维护任务或仅专注于难题的任务,但是通常不期望他们将整个应用程序考虑在内,除非与高级开发人员一起工作或准备晋升为高级人员。他们通常可以在故障排除和调试方面做得不错,但是他们必须真正克服困难。他们还没有足够的经验来查看问题中的模式,这些模式将其指向可能发生的位置。但是他们正在获得这些技能,并且很少需要寻求调试帮助。他们可能至少已经经历了整个开发周期一次,并且看到了设计问题的结果,并且正在学习如何在将来避免这些问题。通常,他们往往更倾向于从票面价值上获得要求,而在存在明显问题或差距时却不会将其推后。他们已经学到了足够的知识来知道自己不知道的东西,并开始获取这些知识。他们是编程界的主力军,
没有一个高级职位的人甚至不需要问这个问题。他们是所选技术堆栈中的专家。他们被赋予了艰巨的任务(没人知道如何解决),并且经常承担设计责任。他们通常独立工作,因为他们在交付货物方面拥有可靠的往绩记录。他们有望指导初级和中级开发人员。通常,他们是出色的疑难解答者。他们之前也遇到过同样的问题,并且对先看哪里有一个很好的了解。老年人也经常在工作场所以外进行指导。他们通常具有至少十年的经验,并且几乎总是至少参加过一次死亡游行,并且确切地知道为什么要避免某些事情。他们知道如何交付有效的产品并满足最后期限。他们知道哪些角落可以切掉,哪些角落绝对不能切掉。他们在专家级别上至少了解一种语言,并且经常会几种语言。他们已经看到了许多“热门新技术”进入工作场所并消失了,因此他们倾向于在赶上潮流中寻求下一个令人兴奋的新开发工具(但并不能完全抵制变化,因为它们可能会成为主流)。从未晋升为“高级”的资深中级开发人员)。他们了解自己的工作是提供可以满足用户需求的工作软件,而不是玩有趣的工具。他们通常会对自己将在哪里工作感到挑剔,因为他们可以做到,而且因为他们亲眼目睹了一些地方的糟糕程度。他们找出最有趣的任务要做的地方。通常,即使他们只在这里呆了几个月,他们对公司产品的了解也比其他任何人都多。他们知道,他们不仅需要编程知识,而且还擅长获取有关他们所支持的业务领域的知识。他们经常意识到初级人员从未考虑过的问题,而中间人也常常不考虑他们支持的业务领域中的法规和法律问题。他们可以并且会推迟需求,因为他们知道需求的问题,并且可以向外行解释。
入门级-必须给他们明确的说明,检查他们所做的一切,几乎没有设计责任,没有分析责任
初级-不太明确的指示,较少的检查,一些次要的设计和分析职责;帮助入门级人员找到编译器并使用存储库
高级-主要设计和分析职责,应由他/她自己纠正监督,很少/不检查,很少/不指示;帮助初级人员学习/提高分析和设计技能
我认为老派工匠的学徒,行家和主人的位置适合入门级,初中(或没有前缀)和高级的这些位置。
给某人入门级别的任务相对简单,不会产生深远的影响,并且其工作将由大三或大三检查。随着时间的流逝,他们将承担更多责任,并承担更复杂的任务,并一路学习。
在初级(或者只是从标题/描述中删除“入门级” /“初级”)时,您已经完成了学徒期,并涵盖了公司的主要发展领域,并已深入每个主要领域,以便您成为熟悉他们每个人。您现在可以为同等学徒提供指导和意见,但是您自己的工作仍将由上级/下级审核,尽管可能不像初中时那么多。
随着时间的推移和成功项目的交付,您最终将成为高级职位。在较高的级别上,您已经掌握了您所在区域的所有内容,涵盖了整个开发过程以及所涉及的所有工具和技术。您有权做出重大的技术决策,并有望向管理层提供有关软件开发过程的见解。
因此,根据这些指南,您应该能够查看一个人或一个职位,并确定他们将其放入三个垃圾箱中的哪个。
这严格取决于公司。但是这些词很明显:入门级是刚进入该领域的人,初级级是超出入门级并且对几种语言技术了解得很深的人。最后一位是负责该项目并处于较高级别的人。他们通常可以委托尽可能多的代码。