程序员35岁不是坎,是一把程序员自己设计的自旋锁
有时候,我是悲伤的,这一路走来,从大专第一次接触电脑,学习编程,到现在这四五年的摸爬滚打,好不容易让自己拥有经验,灵活工作了,却要思考35岁这个程序员的诅咒,确切来说是中国程序员的独有的诅咒。
优秀的程序员思维逻辑严谨,弄清楚需求的本质是每天重复的工作,也是对工作的态度,那弄清楚诅咒的来源,义不容辞。
被诅咒的35岁
- 35岁后找不到工作了!
- 35岁后被开了!
- 程序员的年轻饭,就是35岁!
- 昨天群里还有同学在聊,如何利用硬件加Linux绕过35岁的梦魇。
其实有人这么说过,也有公司这么做过,他们认为人在35岁以后,注意,说的是人,这一个庞大的群体,而不单指程序员,他们认为在当今互联网快速发展的时代,程序员在35岁后会有以下限制
技术变化快:技术的更新换代速度非常快,一些老旧的编程语言和技术已经被新技术所取代,这些新技术可能需要程序员重新学习和适应。所以有些人认为年龄大的程序员可能不如年轻的程序员适应新技术。
年龄歧视:有些雇主可能会偏向招聘年轻的程序员,认为他们更具有创新和学习新技术的能力。
职业发展:程序员的职业发展路径通常是从程序员到高级程序员,然后是技术主管或项目经理等。他们认为在这个年龄段还没有对应到这个发展行列中的人能力可能是欠缺的。
完全是年龄歧视的,他们不会在意你能创造的价值,就是认为你不行。
其实分析上述几个点之后,发现,企业拒绝的不是一个35岁的人,而是一个35岁后不满足需求的人,试着分析一下,企业为什么会这样思考?
知己知彼,百战不殆
经过五六年的开发,我可以从我观察的角度分析一下,为什么会将不满足需求的人加上35岁的枷锁。
其实,一个35岁的程序员自己应该要达到35岁程序员应有的高度。
而企业要求的不是一个未满35岁的程序员,而是拒绝一个35岁了,经验还不满足需求的程序员。
从开发中总结,什么样的程序员在给35的程序员不断自旋枷锁
在从零到一的项目中,新手程序员往往会更加注重技术的应用,对今对技术、对需求、对公司存在敬畏之心,他们在开发当中不会随便的乱用一些技术,他们也对项目的规范存在尊敬的态度。一个经验丰富的程序员。假设他不遵守项目的规范,你给他任意一个需求,他都能轻松的完成,但是他从来不会care设计模式,从来不会思考需求的扩展维护以及健壮。那长此以往下去之后这个项目将会面临以下两个问题。
说白了,一个经验丰富的程序员,如果不听从领导的安排自己又对自己代码的要求特别低,因为他们编写的程序一般会按时按点完成需求,测试仪不会存在大量的bug,所以他们认为他们在公司当中是稳定的存在。这就导致企业认为指挥不了的程序员就是这些年龄大的程序员,就是这些程序员,再给自己的35岁自旋加锁。
从0到1的项目,经验丰富而低要求的程序员更容易造成项目的失败
代码人生中介绍了架构和开发的关系,一个项目在经历一段时间的开发之后,往往体现的是研发的规模、投入的成本、增长的效益都会增大,这也是一个公司发展壮大的必经之路。
从开发的角度分析
一个项目第一个版本的投入,可能是三个程序员在两个月的时间完成了第一个版本的发布,并且第一个版本的发布当中基本覆盖了这个应用的90%的功能,从第二个版本开始,每一次需求的研发,时间都将比第一个版本开发的时间更长,而做的东西更少,并且在这个过程当中开发的人数会逐渐增多,简单来讲,研发的人数和需要研发相同需求的时间看下面这一张表。
从企业的角度分析
在他们的眼中,当初三个人两个月开发的代码数量,是我们现在大版本当中,10个人两个月开发数量的好几倍,就在他们眼中是我们开发的生产力太低了,但是在扩张招聘当中,从程序员的角度,招聘的一定是经验丰富的程序员,这就让企业认为我们有经验的程序员,也就是说,年龄大的程序员造成的生产力的底下。
失败的原因真的是大龄程序员吗?
其实我们简单分析一下就可以知道,造成这个像失败的原因,从技术角度单纯来讲,就是因为架构的失败,或者是没有约束的开发模式造成的,因为我们开发一个需求的时间长短,更多的是在维护之前的代码,一个新的需求的插入需要改动太多太多的代码,屎山的代码也就是这么来的。
打破年龄枷锁,其实企业需要的是这样的程序员
所以我们不能浪费多年的开发经验,时刻谨记导致上述问题的原因,不管你是领导者还是程序员,一定要杜绝上述问题的发生,从企业的角度出发,规范自己的编程行为,从现在开始解掉这个枷锁。晋级的思想系列中会总结更多的技巧,总结更多的经验。
主要还是需要将架构的思想深刻到记忆里,让每一行代码都透露着设计的气息,让代码优雅,让内存合理,让扩展更强,让程序更健壮,努力让自己保持以下状态,也要养成一些好的习惯。
- 技术能力和知识面:一个经验丰富的程序员应该掌握广泛的编程语言和开发工具,对计算机科学原理、数据结构和算法等基础知识有深刻的理解。此外,一个架构能力强劲的程序员应该能够将技术知识转化为实用的解决方案,设计出高效、可扩展、可维护的系统。
- 代码质量:一个经验丰富的程序员应该写出易读易懂、清晰简洁的代码,并遵守编程规范。一个架构能力强劲的程序员应该对代码结构、模块化、可重用性等方面有很高的要求,避免代码臃肿、不易维护的情况。
- 项目经验:一个经验丰富的程序员应该具备多个项目的经验,能够处理项目中出现的各种问题,并能够在团队中合作开发。一个架构能力强劲的程序员应该能够根据项目需求制定适合的架构方案,提高系统性能和可扩展性。
- 学习能力和思维方式:一个经验丰富的程序员应该能够持续学习新技术和知识,保持对行业的敏锐度。一个架构能力强劲的程序员应该能够独立思考和解决问题,具有系统化思维方式和架构设计的能力。
- 持续学习:程序员需要不断学习新的技术和工具,了解行业最新的趋势和发展方向,以便在架构设计和代码编写中使用最新的技术和最佳实践。
- 阅读优秀的代码:阅读优秀的代码可以让程序员学习到别人的优秀经验和架构设计,借鉴别人的思路和方法,以此提高自己的写作和设计能力。
- 代码重构:程序员需要对自己的代码进行重构,将代码进行整理、简化和优化,使其更加易读易懂、易于扩展和维护。代码重构可以帮助程序员不断改进自己的代码质量和架构设计。
- 设计模式和架构模式:程序员需要学习和掌握各种设计模式和架构模式,以此帮助自己设计出更加稳定和可扩展的系统。
- Code Review:让别人对自己的代码进行Review是提高自己的写作和架构能力的一种有效方式,因为Review者可以帮助发现代码中的问题并给出改进意见。
- 编写文档:程序员需要编写清晰、易懂的文档,以便让其他人了解自己的代码和架构设计,这可以帮助自己更好地理解自己的设计思路,发现潜在的问题并进行改进。
总结
虽然可能会对年长的程序员造成一些挑战,但这并不意味着35岁是程序员的限制年龄或诅咒。年长的程序员通常具有更多的经验和技能,并且会在其他方面表现更优秀,比如领导能力、项目管理和客户沟通等。
因此,年龄并不应该成为评价程序员的唯一标准。
链接:https://juejin.cn/post/7201668416171262011
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。