当前位置: 首页 > 科技观察

剖析程序员的几个成长阶段

时间:2023-03-16 11:26:06 科技观察

软件开发行业往往供不应求,这与开发人员的素质有很大关系。在这个浮躁的圈子里,能在一家公司呆上三年以上的程序员,通常都担任领导职务,结果大多都很糟糕。这也说明,程序员的能力不能完全以工作年限来划分。怎样才能成为一名合格的高级程序员?今天小编就为大家分析一下程序员的几个成长阶段。初级程序员和初级开发人员就是这样。他们刚从学校出来,就像一只坐井观天的青蛙,自以为无所不能。突然间,你发现自己面临的问题,光靠学校里的那点小知识是远远不够的。问题更复杂,更混乱,并不像理论说的那么纯粹。你正处于放弃和坚持之间的岔路口,你不知道该怎么办。对策是全神贯注,专心致志,全力学习。初级开发者需要大量的指导、监督和辅导,否则会长期停留在这个阶段。所以,其实你可以把这个阶段看成是策略和日常技术的同化消化期。初级开发人员专注于代码,而不是开发,他们不了解其中的区别。如果程序员说“如果不需要所有用户都可以访问代码,他们更愿意编写代码”,那么我可以说这是初级开发人员。一个优秀的初级开发人员被赋予了一项已知的任务,并能快速而出色地执行它。中级开发人员逐渐意识到失败(通常是他们自己的)模式,并意识到匆忙完成关键任务比实际构建需要更多的时间和精力,而不是因为有人说他们需要改变它而突然变得沮丧.他们也曾有过这样的悲惨经历:写出自以为引以为豪的东西,但结果却是垃圾。中级程序员。中级开发人员正在寻找构建和解决问题的正确方法,他们将通过实验、文献和与其他程序员的讨论来发现这些正确的方法。这其实是学习软件架构的层次,而不是构建代码的层次(学校里学的就是这个)。由无人监督的中级开发人员构建的系统失败的原因与初级开发人员截然不同。初级开发人员构建了一堆稍微有用的算法。而优秀的中级开发者会跳出《Design Patterns》和《Domain Driven Design》的牢笼。虽然这些都是学习构建大型OO系统的好书,但直接应用理论只会导致死板的设计结果。不重要的地方是灵活多变的,重要的地方是死板的,不能改变。您可以信任中级开发人员构建的系统。他们的系统无疑比初级开发人员的要好,但是时间长了,还是会出现各种问题,成为拦路虎。一个可悲的事实是,绝大多数高级开发人员,甚至团队领导实际上只是-中级开发人员。当然,大多数人没有这种自我意识,因为他们只是没有与更高层次的人一起工作过。一个好的中级开发者应该明白,用代码解决问题只是手段,不是目的。然而,他们仍然热爱纯粹的设计,仍然渴望以所谓的“正确方式”构建软件。优秀的中级开发人员仍然需要一点监督。毫无疑问,它们可以改进代码设计并在设计讨论中发挥重要作用。他们是开发团队的骨干。然而,对他们来说,进一步的指导和更高水平的监管仍然至关重要。高级程序员和高级开发人员都熟悉失败。他们编写的代码在设计之下和设计之外都失败了。他们深思熟虑,在遇到问题时能够成熟地评估成功和失败。高级开发人员已经跳出了中级开发人员喜欢的复杂性,开始迷恋简单性。高级开发人员清楚自己的长处和短处,力求扬长避短。高级开发人员了解理论联系实际的重要性。他们明白构建软件没有“正确的方法”,构建好的软件的唯一方法是使理论适应客户、代码库、团队、工具和组织的需求。高级开发人员了解并权衡领域中涉及的一切,思考如何支持设计模式、库、框架和流程。高级开发人员不仅了解自己,还了解组织和客户如何运作,他们看重什么价值,以及什么对组织和客户的成功重要和不重要。一旦出现问题,高级开发人员会尽力解决。“这不是我的工作”——他们永远不会说的话。高级开发人员心里清楚,他们的工作应该是提供问题的解决方案,而不是编写代码。与在无聊的日常工作中辛苦工作的中级开发人员不同,高级开发人员会退后一步,思考是什么导致了无聊的工作。他们评估解决潜在问题的成本,要么直接解决这些问题,要么通过调查最终解决这些问题。高级开发人员明白一个项目不能单独完成。他们的主要作用是帮助团队变得更好,同时努力实现集体个人进步。资深开发人员深刻理解,领导代表的不是权力而是赋能,不是方向而是服务。如果您的团队中没有一位高级开发人员带路,您的项目就注定要失败。一个由优秀的中级开发人员组成的团队可以让你走得很远,但他们构建的软件已经度过了最好的日子,最终的结果要么是关闭,要么是高风险、高成本的重写。高级开发人员是唯一有能力选择技术和平台的人。简单粗暴的分类方法我很讨厌现在流行的根据工作年限来分类程序员的方法。多年的经验确实增加了洞察力,但这些都是毫无意义的背景信息。更重要的是,我们这个行业需要刚大学毕业的朝气蓬勃的年轻人,也需要有15-20年工作经验的资深程序员。我们应该从团队和企业的角度来思考人才构成。