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

news2024/11/24 6:48:19

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

一 管理和架构

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 兴趣是如何产生的?

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

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

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

二 架构角色

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

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

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

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

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

img

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

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

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

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

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

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

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

三 技术专业度

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

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

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

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

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

四 总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2211264.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(Linux驱动学习 - 10).MISC驱动实验

一.MISC介绍 1.MISC定义 misc 的意思是混合、杂项的,因此 MISC 驱动也叫做杂项驱动,也就是当我们板子上的某 些外设无法进行分类的时候就可以使用 MISC 驱动。 MISC 驱动其实就是最简单的字符设备驱 动,通常嵌套在 platform 总线驱动中&…

智能贴身监测,健康生活建议,圆道妙医智能手表体验

如今热衷于运动和健康生活的爱好者越来越多,相关的赛事等活动也是逐年增多,很多朋友为了能够直观的了解自己的健康状况,都会配备一款智能手表,这样戴在身上就可以随时了解自己的心率、血氧等数据。最近我尝试了一款圆道妙医推出的…

MobaXterm连接Cloudflare Tunnel内网穿透的SSH

背景 如官方文档所示,Cloudflare Tunnel要求我们对SSH客户端进行配置,使本地的cloudflared软件代理SSH才能连接。 存在问题 由于MobaXterm的Session实质为嵌入式PuTTY,不使用OpenSSH样式的配置文件(即~/.ssh/config&#xff09…

SpringBoot框架下购物推荐网站的设计模式与实现

3系统分析 3.1可行性分析 通过对本东大每日推购物推荐网站实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本东大每日推购物推荐网站采用JAVA作为开发语言&…

对层级聚类树进行模块分割,定位基因在哪个模块中

拷贝数据到 ImageGP (http://www.ehbio.com/Cloud_Platform/front/#/analysis?pageb%27Ng%3D%3D%27),并设置参数. ID untrt_N61311 untrt_N052611 untrt_N080611 untrt_N061011 trt_N61311 trt_N052611 trt_N080611 trt_N061011 ENSG000…

【ROS2实操二】服务通信

简介 服务通信也是ROS中一种极其常用的通信模式,服务通信是基于请求响应模式的,是一种应答机制。也即:一个节点A向另一个节点B发送请求,B接收处理请求并产生响应结果返回给A。比如如下场景:机器人巡逻过程中&#xff0…

cuda入门学习

最近接触cuda 编程,记录一下。 1 工作实现一个【0-100)的加法 如果用python sum 0 for i in range(200):sumi print(sum)2 cuda 的一些简单的概念 一维情况下大概是这样的 (1个grid * 2个blocks * 4个thread) 3 代码直接上代码 我把100分为20个b…

Jenkins---01

什么是敏捷开发 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开 发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、 可集成和可运行使用的特征。换言之&…

2024年编程资料【9月份部分】

资料列表 「CSDN会员免费电子书1000本」 https://pan.quark.cn/s/5019390a751a 【黑马程序员】年度钻石会员-人工智能AI进阶 https://pan.quark.cn/s/1d14a2a179c2 JavaScript从入门到高级教程 - 带源码课件 https://pan.quark.cn/s/c16ed07eac93 【马哥教育】云原生微服务治理…

测试常用插件: ModHeader - Modify HTTP headers插件进行IP模拟/IP欺骗

由于公司是做海外项目的,所以付款时有要求进行模拟不同IP登录进去时会优先显示该地区的支付方式。 1.安装插件 这里以Microsoft Edge为例,打开扩展 搜索:ModHeader - Modify HTTP headers,进行获取安装即可 安装完成后&#xff…

CVESearch部署、使用与原理分析

文章目录 前言1、概述2、安装与使用2.1、源码安装2.1.1、部署系统依赖组件2.1.1.1、下载安装基础组件2.1.1.2、下载安装MongoDB Community Edition 7.0 2.1.2、使用源码安装系统2.1.2.1、安装CVESearch2.1.2.2、填充MongoDB数据库2.1.2.3、填充Redis数据库 2.2、使用方法 3、测…

LeetCode | 704.二分查找

标准的二分查找&#xff0c;直接上模板&#xff01; class Solution(object):def search(self, nums, target):""":type nums: List[int]:type target: int:rtype: int"""l 0r len(nums) - 1while l < r:mid (l r 1) / 2if nums[mid] …

Telnet命令详解:安装、用法及应用场景解析

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…

笔试算法总结

文章目录 题目1题目2题目3题目4 题目1 使用 StringBuilder 模拟栈的行为&#xff0c;通过判断相邻2个字符是否相同&#xff0c;如果相同就进行删除 public class Main {public static String fun(String s) {if (s null || s.length() < 1) return s;StringBuilder builde…

EventLoop模块 --- 事件循环模块

目录 1 设计思想 eventfd 创建eventfd 2 实现 3 联合调试 4 整合定时器模块 5 联合超时模块调试 1 设计思想 EventLoop 模块是和线程一一绑定的&#xff0c;每一个EventLoop模块内部都管理了一个Poller对象进行事件监控&#xff0c;同时管理着多个Connection对象&…

python 使用faker库 生成数据

Welcome to Faker’s documentation! — Faker 30.3.0 documentationVersion1: Example from docs:from faker import Faker from faker.providers import internet for i in range(2): #批量生成数据fake Faker()name fake.name()address fake.address()text f…

el-动态表单的校验不触发/只触发了部分项

参考&#xff1a; 深入了解Element Form表单动态验证问题 转载vue elementUI组件表单动态验证失效的问题与解决办法 在别人的代码上开发新功能时&#xff0c;发现动态表单的校验功能突然出现问题&#xff1a; 重构前,只有两步&#xff0c;通过type来判断当前显示内容 <el-f…

Cesium.js(SuperMap iClient3D for Cesium)进行三维场景展示和图层动画

1&#xff09;&#xff1a;参考API文档&#xff1a;SuperMap iClient3D for Cesium 开发指南 2&#xff09;&#xff1a;官网示例&#xff1a;support.supermap.com.cn:8090/webgl/Cesium/examples/webgl/examples.html#layer 3&#xff09;&#xff1a;SuperMap iServer&…

自定义类型 - 结构体

2024 - 10 - 13 - 笔记 - 26 作者(Author): 郑龙浩 / 仟濹(CSDN账号名) 自定义类型 - 结构体 平时用的数组是一组相同类型的数据&#xff0c;如果想表示一组不同类型的数据&#xff0c;那么就可以结构体了。 ① 结构体的声明&#xff08;重要&#xff09; 自己起的名字&…

[论文阅读]: Detecting Copyrighted Content in Language Models Training Data

发布链接&#xff1a;http://arxiv.org/abs/2402.09910 核心目标&#xff1a;检测语言模型的训练过程中是否使用了受版权保护的内容 基于假设&#xff1a;语言模型有可能识别训练文本中的逐字节选 工作&#xff1a;提出了 DE-COP&#xff0c;一种确定训练中是否包含受版权保…