职业发展战术设计:构建可持续积累的职业优势

Posted 编程大观园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了职业发展战术设计:构建可持续积累的职业优势相关的知识,希望对你有一定的参考价值。

井打得足够深,未来才有更多可能。

井打得足够深,未来才有更多可能。


程序员的职业困境

很多国内程序员担忧“35岁危机”,本质上是因为国内程序员面临一个职业困境。

技术层面

从技术层面来看,程序员作为专业技术人员,其职业优势理所应当首先在于专业能力和经验的积累,而实际上,在这最重要最基本的一点上,却很难建立自己的专业能力和经验优势。其原因主要有:

  • 核心技术的创造在国外,很多程序员只能亦步亦趋,跟随大流,难有自己的创造,也就很难建立自己的独有专业优势。
  • 工作所需的大多是相对简单基本的事情(受限于工作任务及企业环境),很难有机会接触高阶的东西,而这些简单基本的事情很难促进和提升专业能力和经验,真正有助于建立职业优势的经验积累不多。
  • 行业的可积累性强,个人的可积累性差。不计其数的人在探究新事物新方法,推动行业向前发展,但只有一个人在努力学习跟进,这显然是一场注定会失败的跟随游戏。软件行业的技术更替速度过快,以致于很多人来不及对一个新事物的原理有透彻的理解和掌握,仅仅局限于使用层面。仅仅局限在使用层面,并不能构成有效的经验积累和职业优势,因为别人也能学会,而且这东西过几年就会失效被替换。

非技术层面

从非技术层面来看,程序员的交际圈大多局限在测试、产品、运维、客服或前场,很难与客户产生直接交集,难以真正从真实场景、业务和行业的角度去思考自己所做的事情,视野有很大的局限性。同时,很多程序员有“只顾埋头写代码”的倾向性,不怎么主动与外界沟通,也很少去了解环境与形势的变化,无形之中也封闭了自己的出路。

从个人经验来看,大多数程序员在前 3-5 年基本就形成了自己最关键的技术积累和专业素养(对原理的理解和应用、知道如何思考、分析和求解问题),后续的技术提升会比较缓慢甚至停滞。仅仅只是知道如何使用一项新技术,并不算技术积累,因为可替代性很强。

出路何在

如何走出职业困境?如何才能保证自己的职业之路常青?核心思路是:你能做有大量需求但是别人做不了或者做不好的事情,具体战术是设法确立和构建可持续积累的职业优势。

首先,对自己能达到的技术上限作一评估。如果你能估计出自己的技术上限,那么就可以及早作出打算。

如果估算技术上限比较低,很难在技术上持续发展,那么就应当尽早寻求其它方向的发展;如果估计自己的技术能力还能撑几年,那么不妨借助这几年快速培养非技术能力,及时找到下一个位点,借助已有经验,开辟下一个需要技术基础但不做纯技术的战场。

对于大部分技术人员,做纯技术的出路会比较窄,做管理也并不牢靠,需要培育自身的综合能力,打造自身的职业优势,才能走出更宽的职业常青路。

职业发展战术设计建立在职业战略设计的基础上。

职业战略设计包括:定位、价值与服务、策略。定位是成为什么(【什么方向】的【技术管理?架构师?技术咨询顾问?独立开发者?】),价值和服务是能为【什么客户】提供【什么服务和价值】,策略是构建可持续积累的职业优势。

一切才能与成就都建立在持之以恒的积累上。没有捷径可循。没有一蹴而就一步登天的事情。十年磨一剑。

确立职业优势

职业依据

确定一个长期主攻方向,做到业界佼佼者。

  1. 结合已有优势和经验积累。
  2. 有一定难度,且在自己能力和潜能所及。
  3. 需要不易得的经验积累,很难短时间超越。
  4. 结合国家发展规划和政策,有较强的社会基础和需求。

基于自身已有优势,拓展多维度,增大制胜概率。

现状

  • 已有技能优势(立足点):熟练的编程技艺 + 丰富的软件开发经验 + 良好的技术写作技能。
  • 已有领域经验: ECS + 交易订单 + 主机安全
  • 想从事的领域:

职业优势确立

仅仅单维度的专业技能是不够的

有的程序员会想:我只想要编程技术水平足够高就行了。这种靠单维度专业技能的职业发展思想是比较冒险的。

譬如运动员。他并不仅仅在所在领域达到一流水平就足够了。他至少还需要足够硬朗的心理素质,才能在大赛中发挥出色。此外,他必定少不了与队友的沟通交流,需要良好的沟通能力。此外,如果他退役了,有什么出路呢?或者他具备带队、规划和决策能力,带领团队走向胜利;或者他利用已有的名声带货或接广告;或者深耕另一领域。无论何者,都已经超乎于单纯的运动员技能了。一个职业常青的人,必然要努力习得多维度的优势技能。一个例子就是咱们的终结者大神施瓦辛格。

程序员要跳出“纯技术”的思想,以技术为基,拓展多方面的才能。

多维度优势策略

核心思想:以技术为基,拓展多维度技能,同时寻找值得长远去做的事情。

多维度优势策略:编程技艺 + 软件开发经验 + 技术写作 + 长期积累 + 演说能力

  • 优质决策 + 影响力 + 行业/业务/技术方向 + 全局思维和系统思维。
  1. 仅从编程技艺维度来看,有的人天资聪颖,付出一倍努力就顶上我十倍努力。因此,显然不能单从编程维度来比。
  2. 编程技艺 + 开发经验维度。这样可以将一部分经验缺乏的新手比下去。但仍然存在非常多的(现在或未来)编程和开发经验比我更丰富见识更广的人。
  3. 编程技艺 + 开发经验 + 技术写作维度。 可以发表编程开发相关的文章,项目技术汇报,赢得认同和影响力。不过仍然存在部分人,编程开发经验丰富,而且写作回答素养也很好。
  4. 编程技艺 + 开发经验 + 技术写作 + 长期积累。厉害的人可以在多项上表现优异,而我可以在单项上优于对方。因此,虽然从短期维度来看,别人强于我,但从长期来看,我有一定概率胜于这些人。
  5. 编程技艺 + 开发经验 + 技术写作 + 长期积累 + 演说能力。很多出色的技术人员具有良好的专业技术能力、丰富的职业经验,但要说起当众讲话,却像个孩子躲在别人身后。演说能力可以作为一个很好的能力辅助,助力生活、工作和职业。且演说能力非练不足以成,不像程序或文字那样通过拷贝就能轻松拥有。
  6. 编程技艺 + 开发经验 + 技术写作 + 长期积累 + 演说能力 + 优质决策。尽管很多人拥有很好的功底、经验,但是能持续作出优质决策的人并不多。高质量决策作为一个内在优势,能够成为人之命运的分水岭。
  7. 编程技艺 + 开发经验 + 技术写作 + 长期积累 + 演说能力 + 优质决策 + 影响力。尽管有些人技术能力和沟通素养相当出色,但有影响力的程序员并不算多。
  8. 编程技艺 + 开发经验 + 技术写作 + 长期积累 + 演说能力 + 优质决策 + 影响力 + 行业/业务/技术方向。尽管前七者都可能有人强于我,但是再加上行业/业务/技术方向,能够同时在八者都强于我,应该不多了吧。
  9. 编程技艺 + 开发经验 + 技术写作 + 长期积累 + 演说能力 + 优质决策 + 影响力 + 行业/业务/技术方向 + 系统思维和全局思维。九维合体,九九归真。

井打得足够深,未来才有更多可能。

主攻方向

  • 行业 => 软件与信息技术服务 云安全 教育 自媒体
  • 技术 => 语言 逻辑 思想 软件系统研发 架构 决策 AI

驾驭深度和广度。夯实基础,打开视野,承担责任,在项目实战中精益求精。

构建职业优势

可持续积累的职业优势

定位和规划职业优势

  • 职业优势:对TOB软件项目的开发与管理有丰富的实战经验;胜任研发管理、技术面试、新人导师、系统和业务负责人。
  • 技术优势:胜任系统总体设计、共享库和核心部分的开发;在工程质量、性能优化、稳定性、可复用、可扩展、配置化、高可用、可维护有丰富的实战经验;具备良好的技术决策和技术评审总控能力。
  • 能力优势:演说、规划和决策能力,规划重要事项,作出合理取舍抉择。
  • 特长优势:优秀面试官,高效识别和引入优秀人才。
  • 影响力优势:在项目和团队里发挥有益影响力,推进项目成功。

从两个方面着手

  • 工作事项规划与管理:探索和确定 ROI/影响力大、能够明显提升自身能力的事情,避免在简单重复的事情里麻醉自己;
  • 始终寻求能力的提升:即使是 CRUD 应用,能够自下而上弄懂应用里用到的各种技术、原理、机制和规范,也能成为技术大牛了。见:程序员做什么有利于技术能力的成长

基础支撑能力

要打造强有力的可持续积累的职业优势,就需要足够扎实硬朗的基础支撑能力。包括不限于:

  • 高效学习能力和实践能力,快速掌握要领产生价值。
  • 高质量信息的高效搜集能力。
  • 知识提纯能力。
  • 高度专业专注,博学且涉猎广泛,持续输出原创有价值的内容影响别人。
  • 高质量的重大决策。
  • 独特语言和表达风格。
  • 善于掌握和应用先进的工具。
  • 观全局,据核心。

三网护航

在构建职业优势的同时,着手构建护航职业之旅的三张网:

  • 信息网:及时获取有益的行情和信息。比如招聘行情、职位信息、技术趋势、行业报告等。
  • 知识网:构建专业知识体系,见https://www.cnblogs.com/lovesqcc/p/17084292.html
  • 关系网:结交有能力的可信的工作伙伴和合作伙伴。

实现途径

  • 时效性:总是抢先于他人。比如记者新闻报道。
  • 难复制:很难复制这种能力。比如工艺配方、原理深入探究能力、历史溯源能力、舞蹈艺术才能。
  • 个性化:具备高效能和独特的风格。比如教学方法。
  • 核心技术: 掌握价值链上的核心环节。
  • 多维组合:技能组合、一站式、全栈、全链路服务。
  • 提供具有可用性的产品和易理解性的、可靠而易得、具有数据黏性的服务。

若干建议

  • 锤炼学习和理解能力,并借助工作中的机会去提升实战能力。
  • 阅读有难度的专业书籍,理解并掌握其中的精髓和要点。
  • 摒弃简单的重复,重复与创新融合,迭代创新。
  • 优化处理系统,理清底层逻辑。
  • 保持对新技术新科技的好奇心。
  • 做事尽量给自己留一个冗余度,不要把时间排的太满。
  • 尝试更高的职位,协调和管理更多的人和部门。

利用 AI 为职业发展赋能

可以用AI做什么

对于那些已经具备比较强的专业能力、需要处理复杂问题、作出复杂决策的人来说,AI 应该是一个如虎添翼的工具。对于程序员来说:

  • AI 可以帮助你快速整理专业知识体系,总结文章内容精要。你只需要学会提问即可。
  • AI 可以协助你做出技术决策。比如可选的技术方案、技术选型等。
  • AI 可以帮助提升开发效率(编写代码实现、生成单测、Review 代码)。
  • 协助阅读源码。
  • 给出有益的学习指引。

但是,—— 永远不要过度依赖 AI。 不要离开了 AI,立即变成了傻瓜。你永远应当做那个富有思想和才能的人。

机器时代如何生存

机器取代人,人类社会将向着确定化有序化的方向发展。因为人的非理性和失误带来的影响更小了。看上去,这似乎是件好事儿。

程序员构建的世界,是一个逻辑的世界,因果确定的世界。因果带来确定性,确定性意味着驾驭力,驾驭力意味着自由。

精通因果,掌握工具,深谙人性,这是未来最具竞争力的人才。

技术还是管理

没有 AI 的世界,管理或许还有点用处,因为人类社会目前本质是“决策-管理-执行”的结构,管理作为决策和执行的媒介;但有了 AI 的辅助,这个结构会变成“决策-AI-执行”,管理这个媒介将会被取代。未来的人才,最重要的是技术掌控力,尤其对于普通人家而言。

几乎可以说,谁先掌握了 AI 的力量,谁就掌握了未来。

跳出既定框架

有没有可能,即使积累了必要的职业优势,还是避免不了失业?上述思路是在“在中国民企就职”的框架里进行的,是否有可能在这个框架内思考问题的方案就是近似无解的呢?能否跳出既定框架?

  • 考虑在中国企业就职,但从事的是技术为基础的非技术类工作;
  • 考虑在外企就职;
  • 谋划第二职业路线,在社会上建立影响力,寻找一份事情,而不再是打工上班。

需要分别评估以上的可能性,找到可行的路径。

最基本的还是要锻炼自己的才干和能力。这是不可或缺的基础。

小结

要保持职业之旅常青,就需要投注足够精力在职业发展上。

  • 减少刷手机、追剧、玩游戏的时间;
  • 将时间更多投注在职业优势构建的事情上。

集中精力和力量做重要的事,有难度有挑战的事。三种能力必不可少。

  • 专业技术能力
  • 沟通演说能力
  • 决策规划能力

本文姊妹篇:确立职业发展方针

构建之法 第三四五章

第三章 软件工程师的成长

1.个人能力的衡量与发展

初级软件工程师如何成长:
(1)积累软件开发 相关的只是,提升技术技能。例如:对java、c、c++,c#的掌握,诊断\提高效能的技术,对设备驱动程序、内核调试器的掌握;对于某一开发平台的掌握

(2)积累问题领域的知识和经验

(3)对通用的软件设计思想和软件工程思想的理解

(4)提升职业技能

(5)实际成果

2.职业之路——考级之路

计算机等级考试和全国计算机技术与软件专业技术资格考试

 

第四章 两人合作

1.代码规范

“代码规范”可以分为两个部分:
1.代码风格规范。主要是文字上的规定,看似表面文章,实际上非常重要。

2.代码设计规范。牵涉到程序设计,模块之间的关系、设计模式等方方面面的通用原则。

代码风格的原则是:简明 易读 无二义性

包括 缩进、行宽、括号、断行于空白的{}行、分行、命名、下划线、大小写、注释

代码设计规范:函数、goto、错误处理、如何处理c++中的类、代码复审、结对编程、

两人合作的不同阶段和技巧

1.萌芽阶段 2.磨合极端 3.规范阶段 4、创造阶段 5、解体阶段

第五章 团队和流程

软件团队的模式:

(1)主治医师模式

(2)明星模式

(3)社区模式

(4)业余剧团模式

(5)秘密团队

(6)特工团队

(7)交响乐团模式

(8)爵士乐模式

(9)功能团队模式

(10)官僚模式

开发流程:
(1)写了再改模式

(2)瀑布模式

以上是关于职业发展战术设计:构建可持续积累的职业优势的主要内容,如果未能解决你的问题,请参考以下文章

构建之法读后感

构建之法阅读笔记03

构建之法第三章读书心得

谈谈程序员这个职业及前景

软件测试面试题(含答案)

《构建之法》学习——软件工程师的成长