我的编码水平是多少?

初级,中级,高级

如果您说一门外语,则可以测试其说和理解水平的技能水平。 它被称为欧洲通用语言参考框架,简称CEFRL,范围从A1到C2。 相应地,编码技能如何合格?

对于编码级别,没有这样的官方分类。 但是,您的编码级别将决定您可以申请的工作以及您将获得的薪水。 然后,什么时候可以称自己为初级,中级或高级开发人员?

这些术语听起来很正式,但它们基本上是指初学者,高级专家。 他们指的是您作为程序员获得的大量实践经验。 大三时,您可能已经学习了许多编程语言和工具,但是您还没有任何工作经验。

初级

初级编码员在学校,大学或大学学习过编码,或者是经过自学的。 他或她可能已经尝试过进行辅助项目,但没有相关的工作经验。 相关方法:尽管可能具有其他工作的工作经验,但他们在软件开发领域仍然没有任何经验。

初级开发人员通常已经具有扎实的编程能力。 他们很可能已经为学校实践或他们自己的项目构想构建了应用程序(对于移动开发人员而言)或网站(作为Web开发人员)。 但是,他们缺乏软件开发人员的经验,他们已经从事过现实项目中的工作。

通常,初级开发人员会得到经验丰富的同事的指导。 这可以采取有组织的指导或非正式指导或结对编程会议的形式。 由于大三学生仍然缺乏使用某些工具和技术的经验,因此他们经常需要有关调试,测试和故障排除的帮助。 这些任务听起来可能很无聊,但它们却构成了日常工作的最大部分,最好是向有经验的可以向您展示第一手的人学习的。

在工作的前两三年中,您仍然在大量学习新事物。 这就是所谓的交纳会费,这是任何专业人士必须经历的事情。 理想情况下,在此期间,中级或高级同事将作为您指定的专门导师。

几年之后,您将获得很多经验,以至于您显然在编码方面更胜一筹。 您会感到观点发生了明显的变化,并在与新同事共享知识的情况下定期发现自己。 是时候加强中间开发人员的职位了。

中间

中级开发人员是通常具有两到四年编程经验的人。 编码技巧扎实。 典型的软件开发任务已成为日常工作。 调试和测试是熟悉的,不会造成障碍,作为中间产品,您可以找到解决问题的方法。

但是,第三方开发人员着迷于中间开发人员的一件事。 显然,第三方工具可以减轻工作负担,并简化软件开发人员的生活。 它们解决了常见问题,使代码更苗条,并使开发人员专注于实际的开发任务。

但是,通常情况下,中级开发人员倾向于过度设计其代码。 他们倾向于使用第三方工具,并不断添加依赖项。 这并不总是很好,因为依赖项意味着更多的维护工作和样板代码。 外部库可能会带来自己的问题,并且大量的依赖关系使构建时间更长。

而且,毫无疑问,设计模式很棒而且很有帮助。 但是,如果您在实际需要之前应用它们,它们会增加代码的复杂性而不是降低代码复杂性。 以后简化代码要比从一开始就保持苗条就困难得多。

中级编码人员通常对聪明的解决方案着迷。 但是这些解决方案也可能带来新的问题。 对减少问题或增加新问题的估计需要多年的经验。 作为中级程序员,您应该牢记这一点。 至于软件体系结构,请先咨询上级,然后再做出以后很难更改的决定。

资深

与中级开发人员相比,高级人员通常会做出更好的决策。 具有四年或以上的经验,他或她是各自技术堆栈中的专家。

高级开发人员已经掌握了编码,测试,调试和故障排除的技巧。 他们从自己的经验中了解最佳实践。 他们不只是扩展现有代码,而是仔细研究代码,在可能的情况下进行改进和简化。 他们更喜欢简单而不是复杂的解决方案。

多年的经验使他们能够预见某些问题。 他们质疑新工具或库是否会有所帮助,他们可以很好地估计新解决方案的相关性和复杂性。 简而言之,他们善于告诉什么有效,什么无效。

高级开发人员的另一个特点是他们知道任务的优先级和复杂性。 在计划会议上,他们将提供更好的估计,并且经常在团队中获得非正式的否决权。

他们通常不害怕拒绝任务,例如,如果新功能的实现与其价值相比太难了。 他们善于与开发人员团队成员和项目经理沟通原因。

一些开发人员从一开始就已经具备了沟通的才能。 对于其他人,则需要多年的团队合作经验才能使他们的沟通技巧达到更高的水平。 希望老年人能够以一种易于理解的方式来解释技术问题。 这意味着非技术人员甚至客户也会理解他们。

这就是为什么选择高级开发人员参加与客户举行会议或进行咨询任务的原因。 再没有人再有资格培训初级和中级程序员或成为他们的导师了。

实习生

在这里值得一提的是另一组:学员。 在德国,公司开设明确的见习职位的情况较少。 我们的意思是实习生或学徒。 他们是仍在学习中的开发人员,并且为此接受了培训。 他们的技术技能比大三学生要少,工作经验也很少。

他们在员工工作中学习必要的技能。 好处是他们可以通过实际项目学习。 他们边干边学,这通常是一种更快的方法,因为它跳过了某些理论课。

学员通常在成对编程中在指导下进行编码。 当他们必须自己编写代码时,他们将获得最简单且通常更具重复性的任务。

培训的质量主要取决于导师的专业知识和可用性。 如果有一个熟练的教练挑战并支持他们,学员将学得更好。 但是就像学任何东西一样:您付出更多的努力,您就会学得更好。

当然,一个好的程序员不仅仅是工作多年。 从长远来看,技术技能以及结构化和启发性的思维至关重要。 不必担心您是初中还是实习生开始职业生涯。 每个人都曾经是您现在所在的位置。 软件开发是一个非常严格的技能领域。 但这也很公平。 您获得的越好,您的市场价值就越高。 凭借您的奉献精神和不断学习,您最终将达到想要成为的水平。

本文还发表在汉堡编码学校的网站上。