![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
大家好!经过一段时间的缺席写作后,我回来了,试图重新找回状态。我想强调的是,在这里分享的经验是基于我的学术和专业经验。因此,重要的是要记住,这里描述的内容可能仅代表现实的一小部分,不应被解释为特定流程、程序或服务的最终公式。
我目前对职业生涯的新阶段感到非常兴奋。我学到了很多东西,并希望与社区分享这段旅程的一些经验。我希望这里提供的信息对读者有很大的价值。
几年前,我第一次参加选拔过程时,我清楚地记得我经历的几乎无聊的步骤:人力资源面试、实践测试、技术主管面试,最后是经理面试。在我的开发人员生涯中,我参加过几次不同模式的面试。当时,我总是觉得与人力资源人员面试很不自在。我不太明白为什么,心想:“如果我能达到技术测试的要求,我已经表现出足够的能力胜任这个职位了。”
当我担任技术开发负责人时,我的职责之一是与人力资源部(是的,我不明白为什么会和这些人一起参与选拔过程)合作,准备一项技术测试,并确定两位后端领域候选人的面试形式。我以为自己已经知道后端领域的初级开发人员应该交付什么,以及什么会被视为测试中的差异化因素。然而,我没有想到的是,尽管代码很重要,但除了项目交付之外,还出现了其他需求:如何从沟通角度评估候选人?他们对这个职位有什么兴趣?他们所呈现的背景如何影响他们是否适合这个职位?这些问题和其他问题与两位候选人提供的代码一样重要,这是我在早期从事开发人员时从未考虑过的事情。
我记得坐在会议桌前做出最终决定时,有点惊讶地发现,会议对每位候选人的技术技能讨论得如此之少。部分原因是他们是入门级候选人,因此可以预料到他们的技术技能不会那么发达,而这并不是讨论的重点。
然而,即使是更高级的职位,尤其是高级职位,考虑沟通、文档、适应性、主动性等经常提到的技能也至关重要。除了技术技能外,这些软技能是基础,对于职位的成功至关重要。事实上,这是我的下一个观点。
我知道有很多关于与经验水平相关的术语的含义和分类的讨论,比如“高级”。有人说“高级是根据多年的经验来定义的”,另一些人则声称“在某些公司,一年后你就获得了高级经验”。还有人说“初级和高级之间没有明确的区别”或“高级只做代码审查和批准 PR”。这些说法有些可笑,有些则有一定道理。事实上,“高级”的概念非常多样化,我无法定义一个通用的标准,但我可以提供一些指导,以便以更个性化的方式理解这种分类。
资深不仅仅意味着技术知识,尽管这无疑非常重要。真正的资深,或者至少是优秀的资深,是能够解决代码和系统架构方面的复杂问题的人。保持代码质量、遵循良好的开发实践和具备项目管理知识是至关重要的方面。
关键的区别在于,资深开发人员必须能够独立执行所有这些任务,更重要的是,能够与不同级别和部门的团队合作,以交付尽可能好的项目。此外,真正的资深开发人员(或至少是最好的资深开发人员)不仅领导和指导团队,还培养和准备其他开发人员承担新的职位和责任。
当我接手第一个项目时,我的老板知道我之前没有领导过任何其他项目。我只是参与了开发,并在与管理层沟通方面制定了一些有助于开发的事情。他问我的第一个问题是: “多少人以及什么样的人足以完成这个项目。”我当时并没有马上知道答案,这是一个非常复杂的问题。因为项目只是在大纲中,我们不知道堆栈,完成每个任务需要多少时间以及上面人们感兴趣的其他指标。为了能够在第二天交付,我对几种项目管理方法进行了全面的研究:Pert,规划扑克,我们协作选择了最适合的方法,挑战开始了。对于团队的每个成员来说,最好的开发平台是什么,使用的最佳堆栈是什么,系统架构将如何工作,研究市场上的其他解决方案,监控每个开发人员的水平,与管理层开会,开会,开会。
在我最不经意间,我与代码的距离越来越远。我的角色变成了提出改进建议并修复一些关键错误,以便项目能够正常运行,或者至少为开发人员提供坚实的基础。其余的工作包括与开发人员沟通、分配任务、监控指标,基本上就是一只眼睛盯着 Asana(估计项目交付时间),另一只眼睛盯着 Meet,以确保我的麦克风没有打开,没有不想要的东西“意外”溜走。
我的职业生涯始于一名开发实习生,有趣的是——你可能会觉得这对我来说有点矛盾——我没有任何具体的经验(至少在我的工作记录中没有正式记录)来将我归类为初级、正式或高级开发人员。我获得的大部分经验来自个人项目和大学研究。这是一个循序渐进的过程,直到我意识到我的技能自早期以来一直在不断发展。
但是是的,我作为一名开发人员在不同级别上努力工作,并有机会在我的整个职业生涯中结识不同类型的高级专业人士:
最重要的是,尽管这些专业人士存在一些可以理解的缺点(虽然可能存在,但平衡需求非常困难),但他们都有一些宝贵的经验可以传授。这些经验帮助我塑造了我的职业生涯,让我清楚地了解了系统开发中什么行得通,什么行不通。