自14年开始出来实习,踏入程序员这一行已经7年了,初期写代码、中期写文档、现在写材料,越发感觉语文写作水平的重要性。真的如一句粤语“出得嚟行,迟早要还”,中学时代的语文属于短板,那时候有高分的理科把总分提上去,整体总分还是很可观。现在理科的能力确实发挥应用得很好,但是短板也开始影响个人进一步的上升发展空间,所以近期也开始花点时间来写一些东西来锻炼一下个人的写作表达能力。虽然自己的程序开发生涯不长,但也有些许理解感悟,也可以此作为表达核心点来写一下。
按照目前我的工作经历,我理解程序员的进阶会有三层境界,第一层是围绕着个人的专业技能的提升,积累与技术方向相关的知识体系;第二层是作为项目负责人,以项目为驱动,协调资源和人力,应用技术满足满足项目需求;第三层以人才梯队培养为目标,可持续为部门、企业培养具备解决问题、完成项目的优秀研发人才。
第一层∶术
为什么程序员会有35岁的职业瓶颈,为什么程序员越老越贬值。相对于医生、律师这种越老越吃香的职业,程序员行业的核心技术迭代速度特别快,对过往经验依赖不是特别强。程序员必须保持有持续学习的心态,紧跟着技术潮流,学习行业前沿技术,并在工作项目中应用实践。一般来说,大部分程序员都选择以现有技术栈作为基础再深入学习。譬如如果自己对解决某一类问题感兴趣,或者对某一类产品、服务感兴趣,那就去研究下它们对应的解决方案以什么技术实现的,并选择其中感兴趣的进行学习实践。另外一部分程序员深入学习一种技术的目的是为了获得更好的职位,挣更多的钱。那这时候,就从市场需求入手来挑选,通过各大厂的招聘需求就可以知道现在需要什么类型的技术人才。不管怎样,最终的选择权在自己手上,最终选择什么技术来深入学习,持续行动都是必须的,只有持续不断的学习、实践,才能让自己精通某种技术。
第二层:法
大部分程序员入行两三年后,都能掌握所在岗位的必须的知识、经验和技能,然而这里面有很多人会进入平台期,无法突破并踏入第二层境界。原因是大部分程序员只注重专业技能的修炼,忽略了项目管理和人际沟通等方法论的总结与应用。技术永远只是一种工具,它要用来解决实际项目中的问题才能凸显技术价值。以我经历,大型互联网公司的晋升,一方面会考察技术的深度广度,另一方面更关注技术的项目产出、业务价值。
程序员行业除了技术迭代更新快,还有依赖团队式协作完成项目的特点。项目负责人明确项目整体目标,在每个项目的前期(调研,设计方案,评审方案等)、中期(开发,调试,测试)和后期(上线,运营,维护等)都有明确计划,并及时跟踪进展和反馈风险。可见程序员编程开发的工作只占据中期-开发环节一部分,还有许多环节其他同事进行协助完成的。作为项目负责人必须拥有owner责任意识,对项目牵扯各个组件和资源进行梳理,围绕目标,协调好资源与同事,推动大家一起齐心协力完成项目,只有项目顺利完成,个人的贡献会更有意义。
第三层∶道
在程序员行业中,跳槽是晋升加薪的一个重要渠道,很多程序员都努力地紧跟时代潮流,学习掌握最近几年热门技术、知识,即便现有公司不适合自己,也可以跳槽到其他公司,寻求更好的发展平台。对于程序员个体来说,希望自己的技术、知识体系不局限于现有公司产品,与工业届接轨,保持市场竞争力。
对于公司企业来说,一个以盈利为目标导向的企业,终极目标肯定是做项目赚钱。为了项目的顺利交付,就必须降低项目中人的风险,如果由于一个团队成员的离开导致项目无法按期按质交付,那这个团队产研能力是很值得怀疑的。从资本家的角度来说,希望员工都是工具人,降低员工的不可替代性,从员工的角度来说,提升自己在团队中的核心竞争力、差异性,才能够在众多员工中突围赢得晋升加薪的报酬。
道,自然事物发展规律,员工与企业的发展道路是既对立也统一的,统一的核心点在于企业的人才梯队培养体系,需要满足以下三点
1、建立mentor机制,mentor指导mentee,让员工从只能看到手头工作,到对部门发展历程和未来目标有更深入且立体的理解。其次要对整个行业领域、技术领域有更多了解,扩大自己的视野,学习业界主流的技术方案,并在工作项目中实践应用,获得企业、员工获得双赢。
2、建立结构化人才梯队,明确团队成员的职责定位,保证每一个成员都能够独立负责项目,同时让高阶的员工指导低阶员工协同工作,降低项目交付延误风险。当有员工离职时,离职员工的mentor、mentee都熟悉离职员工的工作,能够快速补位,保证按时按质交付项目。
3、在互联网产品研发中,人才是第一生产能力,保证团队人才梯队的可持续稳固强大,把个人单点的产研能力转换为企业团队产研能力,这个才是企业的核心竞争力。