程序员成长秘籍:是迈向管理巅峰,还是深耕技术架构?

专业在线打字练习平台-巧手打字通,只输出有价值的知识。

一 管理和架构

做技术的同学一般有两条职业发展路径,横向的管理路线和纵向的技术路线。管理路线对应的是管理岗,讲究的是排兵布阵,通过各种资源的优化配置发挥价值。技术路线对应的是技术带头人,讲究的是技术专业度,通过前瞻性的视角和丰富的知识来解决业务痛点。

关于个人成长路线,是选择管理路线,还是选择技术路线,有些误区有必要跟大家澄清一下。

误区一:我性格内向,管理需要和人打交道,所以我选择走技术路线;

在面临着人生重大选择的时候,我们是需要留出足够的时间来做决策的,而不是简单地几条信息判断甚至凭直觉来快速给出结论。这个问题如果你体验不深的话,我举个类似的例子,高中文理分科的选择与此很相似,我厌恶背诵,语文,政治,历史...,我选理科!选择的结果回过头来看,相信大家都有自己的感知。

这里面有几个逻辑需要我们梳理明白,内向和管理是互斥的吗?内向和技术是相容的吗?

不建议把复杂的问题这么简单地的去理解。我们至少需要做这么几件事:

  1. 把内向的定义,优势,劣势了解清楚;

  2. 把管理的目的,内容,考核指标了解清楚;

  3. 结合自己的实际情况进行相关性匹配,输出一个基本结论;

  4. 基于结论,进行验证,试错,调整,再出发;

正如我们进行软件开发中,真正的编码时间约占整个产品交付过程的25%左右,前期的可行性调研和需求设计阶段占用的时间却能到达40%,而后者是不能偷懒的步骤,是一样的道理。

误区二:我对技术提不起兴趣,所以我选管理路线;

这个问题乍一看,不和上面的问题是一样嘛,怎么反过来问就成了另一个误区。我再抛另外两个问题,就能感受到他们的区别了:

  1. 兴趣是如何产生的?

  2. 因为兴趣所以擅长,还是因为擅长所以热爱?

问题的答案不重要,重要的是自己要有一套解决问题的逻辑,也就是算法里面的训练模型,模型训练得越好,在以后的决策中,效率和准确度就会越来越高。

关于技术的路线的选择,不给自己设限,有机会可以去做管理,没机会就在技术上挖一挖,说不定去年还在做架构,今年就做管理了呢?

二 架构角色

架构师是一种角色,承担这一角色的人可以是研发,团队负责人,也可以是单独的实体岗位,具体是哪种形式,取决于公司的组织架构和发展阶段。

  1. 起初团队规模比较小,一个小组的规模,业务闭环,组织扁平化,这个时候的架构师角色一般就是由主力研发担任就可以了;

  2. 随着业务规模的扩大,这个时候小组已经发展成部门了,组织存在层级了,此时由各个小组的负责人担任架构师角色比较合适,此时业务边界划分相对比较清晰,设计和人力分配统一规划,往往效率比较高;

  3. 如果上升到集团层面后,这个时候的组织架构往往是矩阵型的,演变变得更加复杂了,一个产品的规划,往往牵扯到多个部门,这个时候一般就需要设立实体的架构师岗位了;

组织层次不同,承担架构师角色的岗位有所区别,架构师工作的重心也会有所侧重,整体是按照系统架构->业务架构->顶层架构的方向逐步偏移的。

举个场景示例:我们需要架构师角色,但一个中等规模团队需要设立独立的架构师岗位吗?

康威定律告诉我们:"设计系统的架构受制于产生这些设计的组织的沟通结构。"除了组织结构外,业务复杂度,行业迭代频率,团队技术储备等各个方面都会实际影响架构师角色的定位。

  • 从组织结构上考虑,一个扁平化的闭环团队,不存在很厚的部门墙,其业务协作成本往往是比较高效的,对于岗位的感受度就没有那么高。相反,如果团队部门层次比较深,协作成本比较高的情况,就需要有人来横向推动和落实技术方案。

  • 从业务复杂度和行业迭代频率来考虑,如果顶层架构相对成熟,不经常变动,那么这个岗位对应的职责可以由团队leader或业务架构师同时承担。相反,就需要专人花费比较大的精力来做顶层设计了。

​ 一个相反的例子,如果一个团队组织比较简单,业务也相对成熟,团队技术能力比较高的情况下,配备专职的架构师岗位会出现什么问题吗?

在这个岗位上人会比较尴尬。这是因为做顶层架构的人需要有全局而不是某个单一业务视角,其组织结构一般是平行于业务组织。这会导致平常他很难下沉到某个单一业务线里面去,如果顶层架构又长期处于稳定状态,如此一来他的工作产出就很难固定和量化,最终往往会负责横向技术效率提升或者直接下沉到主业务线中去了。

总结一下,架构师岗位不是设计出来的,而是根据团队痛点,分工演化出来的。随着组织成熟度,业务发展阶段等环境的变化,架构师的职责重点也会随之做出调整,以适应当前组织的需要。

三 技术专业度

有些行业是越老越吃香,比如医生,教授,画家,其原因不仅仅是经验的积累,更为重要的是持之以恒的专业灵敏度和创新应变能力,使其能够在需要做出重大决策的时候,给出正确的方向。重要的决策,方向上的错误往往是最大的成本。

面对一个病症,医生的一个决策可能会决定着一个人的生死。

面对一个技术选择,努力方向往往决定着最终成败,就像柯达的传统成像技术被数字成像技术的颠覆。

能够描摹出蒙娜丽莎的微笑的人很多,但能达到达芬奇艺术高度的确寥寥无几。

总之,能够通过培训学到的技能终将会被替代,要么是培训班,要么是机器。保持个人能力的稀缺性就显得尤为重要,持之以恒的投入是保持这种稀缺性的原动力。岗位可以被替换,但能力却不能。

四 总结

本文回答了技术小伙伴们特别关心的职业发展路径选择问题,关键点是别给自己设限,因为路是走出来的,不是光靠想就能想出来的。接着,我们澄清了一些职业发展上常见的误区,并教大家如何学会思考和解决问题的根本方法。最后,还给出了如何保持自己在行业中的竞争力的建议,提醒大家别只顾着埋头苦干,也要记得抬头看看前方的路。

相关推荐
五味香39 分钟前
Java学习,查找List最大最小值
android·java·开发语言·python·学习·golang·kotlin
幼儿园老大*1 小时前
【系统架构】如何设计一个秒杀系统?
java·经验分享·后端·微服务·系统架构
小爬菜1 小时前
Django学习笔记(启动项目)-03
前端·笔记·python·学习·django
小爬菜1 小时前
Django学习笔记(bootstrap的运用)-04
笔记·学习·django
叫我龙翔1 小时前
【博客之星】2024年度创作成长总结 - 面朝大海 ,春暖花开!
学习
dal118网工任子仪2 小时前
69,【1】BUUCTF WEB ssrf [De1CTF 2019]SSRF Me
笔记·学习
周杰伦_Jay2 小时前
详细介绍:云原生技术细节(关键组成部分、优势和挑战、常用云原生工具)
java·云原生·容器·架构·kubernetes·jenkins·devops
言之。3 小时前
【面试】Java 记录一次面试过程 三年工作经验
java·面试·职场和发展
猿类崛起@3 小时前
百度千帆大模型实战:AI大模型开发的调用指南
人工智能·学习·百度·大模型·产品经理·大模型学习·大模型教程
Pandaconda3 小时前
【Golang 面试题】每日 3 题(三十九)
开发语言·经验分享·笔记·后端·面试·golang·go