当前位置: 首页 > news >正文

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

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

一 管理和架构

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 兴趣是如何产生的?

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

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

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

二 架构角色

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

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

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

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

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

img

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

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

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

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

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

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

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

三 技术专业度

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

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

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

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

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

四 总结

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

相关文章:

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

专业在线打字练习平台-巧手打字通,只输出有价值的知识。 一 管理和架构 做技术的同学一般有两条职业发展路径,横向的管理路线和纵向的技术路线。管理路线对应的是管理岗,讲究的是排兵布阵,通过各种资源的优化配置发挥价值。技术路…...

xargs的参数及常用命令

1. xargs 命令简介 xargs 是一个非常有用的工具,它用于从标准输入(stdin)构建和执行命令行。xargs 可以将标准输入中以空格或换行符分隔的数据,转化为命令的参数传递给其他命令。 使用场景: 当某些命令不支持使用管…...

FLASK 数据库建立以及部署和表的创建

首先安装flask-sqlalchemy db SQLAlchemy(app) 一 Mmeber、User模型类的创建 # coding: utf-8 from app import db, appclass Member(db.Model):__tablename__ memberid db.Column(db.Integer, primary_keyTrue)membername db.Column(db.String(100), uniqueTrue, index…...

微信小程序的面试题

简述下 wx.navigateTo(), wx.redirectTo(), wx.switchTab(), wx.navigateBack(), wx.reLaunch() 区别 ? wx.navigateTo() : 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面 wx.redirectTo() : 关闭当前页面,跳转到应用内的…...

udp c语言实现组播的例子

一、组播与广播的区别 1、组播地址和广播地址是不同的概念 组播地址:用于将数据包发送到一组特定的接收者,只有加入该组播地址的设备才能接收数据。它提高了网络效率,因为发送者只需发送一份数据。 广播地址:用于将数据包发送到…...

ffmpeg面向对象——AVInputFormat与URLProtocol啥关系

《ffmpeg面向对象-rtsp拉流相关对象》和《ffmpeg面向对象——拉流协议匹配机制探索》探索过了输入格式匹配和底层协议匹配,且ffmpeg拉流是先是匹配输入格式——抽象为AVInputFormat类,然后再匹配url协议类——抽象为URLProtocol类。 它们是啥关系&#…...

【高阶数据结构】二叉树进阶探秘:AVL树的平衡机制与实现详解

高阶数据结构相关知识点可以通过点击以下链接进行学习一起加油!二叉搜索树 大家好,这里是店小二!今天我们将深入探讨高阶数据结构中的AVL树。AVL树是一种自平衡的二叉搜索树,可以看作是对传统二叉搜索树的优化版本。如果你对数据结…...

中级软考软件设计师真题+模拟题+课件讲解+机考讲解模拟+笔记分享

软考真题分享 下载链接⬇️⬇️: 下载链接...

MySQL—视图

前言: 视图是一个虚拟的表,是基于一个或多个基本表或其他视图的查询结果集。视图本身不占据物理储存空间,仅仅只是一个查询的逻辑表示,物理上依赖于数据表的数据。 视图具有简单,安全,逻辑数据独立&#…...

鸿蒙OS启动流程

启动流程(基于openharmony4.1) 系统上电加载内核后,按照以下流程完成系统各个服务和应用的启动: 内核加载init进程,一般在bootloader启动内核时通过设置内核的cmdline来指定init的位置。init进程启动后,会挂载tmpfs,…...

服务器数据恢复—EMC存储RAID5磁盘阵列数据恢复案例

服务器数据恢复环境: 一台EMC某型号存储设备,该存储中有一组由12块(包括2块热备盘)STAT硬盘组建的raid5阵列。 服务器故障: 该存储在运行过程中突然崩溃,raid瘫痪。数据恢复工程师到达现场对故障存储设备进…...

使用 `netcat`(nc)工具进行TCP数据发送和接收

Netcat(通常缩写为nc)是一个功能强大的网络工具,常被称为“瑞士军刀”的网络工具。它用于在网络上进行各种操作,比如读写网络连接、调试和分析网络服务等。以下是关于Netcat的一些详细介绍: ### 主要功能 1. **TCP/U…...

Linux虚拟化技术嬗变综述

在信息技术飞速发展的今天,虚拟化技术已经成为数据中心、云计算和企业IT基础设施中不可或缺的一部分。Linux操作系统作为开源和灵活的代表,在虚拟化技术的发展中扮演了重要角色。本文将综述Linux虚拟化技术的演变,探讨其优势、应用场景&#…...

.NET 通过C#设置Excel工作表的页面设置

Excel文件数据准备就绪并需要以报告形式呈现时,调整Excel文件的页面设置变得尤为重要,不仅关乎文档的专业外观,还直接影响到打印或电子分享时的可读性和实用性。通过C#来自动化这一过程,不仅可以节省大量手动配置的时间&#xff0…...

Excel日期导入数据库变为数字怎么办

在Excel导入到数据库的过程中,经常会碰到Excel里面的日期数据,导进去过后变成了数字。 如下图: 使用navicate等数据库编辑器导入数据库后: 原因分析:这是因为日期和时间在excel中都是以数字形式存储的,这个…...

SSL---SSL certificate problem

0 Preface/Foreword 0.1 SSL certificate problem 开发过程中,gitlab-runner连接gitlab时候出现SSL 证书问题。 场景:公司的gitlab runner服务器引入了SSL证书,每年都会主动更新一次。当前的gitlab-runner运行在PC机器上,但是g…...

linux tar 打包文件去掉文件所在路径

一、准备目录 /root/tmp/images /root/tmp/images2 执行命令打包目录/root/tmp/images 到 /root/tmp/images.tar.gz 再解压到/root/tmp/images2 cd /root/tmp/images && tar -cvzf images.tar.gz * && mv images.tar.gz /root/tmp/ tar -C /root/tmp/image…...

MQ快速入门【详细】个人笔记 讲解通俗易懂

1.同步通讯和异步通讯 同步通讯:如果举个例子来说,同步通讯就像是两个人在打电话,一方说的话,能够立马传给另一方,消息的时效性非常高,但是相对的,只能是给一个人通讯,如果这个时候&…...

react实现实时计时的最简方式

js中时间的处理,不借助于moment/dayjs这样的工具库,原生获取格式化的时间,最简单的实现方式可以参考下面这样。 实现效果 代码实现 封装hooks import { useState, useEffect } from "react";export function useCountTime() {c…...

时尚的社会心理机制:求同和树异这对互为矛盾的心理动机,使得人们在社会生活中互相模仿、互相追逐、互相竞争,使得时尚的钟摆永不停息。

文章目录 引言I 时尚时尚的社会心理机制时尚的分类时尚的特点时尚的表现形式II 术语时装周服饰引言 时尚(fad)又称流行,它指在一定时期内社会上或一个群体中普遍流行的,并为大多数所仿效的生活方式或行为模式。 人的心理动机常常是互相矛盾的,既要求同于人,又要求异于人。…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...