从程序员转型技术管理者的痛与悟入门攻略_职位小白知识

在一个 NB 程序员的世界里,” 要不要转管理岗位?”可能会困扰很多人。它就像一枚硬币的 AB 面,抛起来之前难以预知结局,哪一面都合理,哪一面都有遗憾和不完美。站队“把 NB 程序员当成终身职业”的人会列举从国外到国内一大堆”程序员大神“的成功案例。站队“一定要进入管理层 ” 的人则会唱衰开发者面临的生存环境:当你年龄大了、精力不行了,还没进入管理层,那也

从程序员转型技术管理者的痛与悟入门攻略

在一个 NB 程序员的世界里,” 要不要转管理岗位?”可能会困扰很多人。它就像一枚硬币的 AB 面,抛起来之前难以预知结局,哪一面都合理,哪一面都有遗憾和不完美。

从程序员转型技术管理者的痛与悟入门攻略_职位小白知识

站队“把 NB 程序员当成终身职业”的人会列举从国外到国内一大堆”程序员大神“的成功案例。站队“一定要进入管理层 ” 的人则会唱衰开发者面临的生存环境:当你年龄大了、精力不行了,还没进入管理层,那也就没有什么前途了。

借着不久前QCon 上海 2019召开的机会,我们采访到一位比较典型的从程序员进入一线管理岗位的嘉宾——平安壹钱包资深架构师丁雪丰,让他讲讲他的职业规划、他在程序员到管理者角色转变过程中的感悟和经验。

对于丁雪丰来说,进入管理岗位并非是很早就规划好的一条路径,只是形势到了这里,一切就顺理成章了。“一个人单枪匹马能做多大事儿?现在不像以前的求伯君年代,一个人写出的代码就能创造出一个时代。现在更多时候,为了让你的个人价值最大化,你是需要有团队支持的。”在丁雪丰看来,所谓“形势”,就是你未必要当一个纯粹的管理者,但你必须要能影响到一批人。

他的团队目前在平安壹钱包负责基础技术相关工作,就好像是业务与底层基础设施之间的“黏合剂”。丁雪丰一直把自己的团队定义为服务性质的团队,作为这样团队的管理者,他坦言最大的挑战在于:“我的团队不仅要做本职工作,还要支持其他团队解决问题,但是我们不像 BAT 等大厂,所服务的团队都是兵强马壮、技术能力特别强的同学,所以我们即使做出来的系统能够满足 99% 的需求,我们也要去考虑其他团队在使用时可能发生的各种情况。”

一方面丁雪丰信奉还是要从技术角度解决问题,另外他也要让团队真正能够建立起服务的意识。“作为管理者,你要引导你整个团队的成员,让大家跟你的理念一致:有时候他们可能觉得我就是搞技术的,我不是做服务的。但是在不同团队面前,你的角色定位就是不一样的。我要慢慢培养团队的这种服务意识,该攻坚的时候攻坚,该支持的时候就做好支持。”

丁雪丰团队今年的主要工作聚焦在平安壹钱包全站架构改造方面,从技术层面为公司提供架构改造所需要的基础设施。此外,也会根据对业务发展的预期去进行相关技术的储备,比如关注混沌工程或者引入 TiDB。他要求团队既要能做好本职工作,也要能为其他团队提供技术支持,同时还要具备前瞻性,能够为即将到来的业务挑战提前进行必要的技术储备。

“我的团队有些人的精力主要花在今天,有些人我会让他做明天计划中的事情,可能还有少数人我会让他去做后天的事情。这个做后天事情的人,如果我今天跟明天的事情有需要,我会让他稍微停一下来支持:想做后天的那些事情,至少你得让我先活到后天。”

这其中还有一个大局观的问题,也是管理者在带团队的时候可能会遇到的挑战。“站在管理者的角度,首先我们需要满足公司商业利益上的诉求:我不可能说偷偷地投入重金去造一颗原子弹,但这颗原子弹可能对公司一点价值都没有。以我们在做的架构改造为例,如果不做可能无法支撑公司业务接下来的发展,这样的事情肯定会得到其他团队最大的配合。这是管理者在评估和决策事情优先级时候的准则。一线同事跟管理者最大的区别在于,他可能不会站在这样的角度来思考问题,他不会去关注公司整个的价值。”

对一名技术管理者来说,脱离一线后如何让自己保持技术敏感度、来为未来几年的决策去做技术储备呢?丁雪丰的做法是会去参加公司所有重要的架构评审,对业务有持续的深入了解;此外他会参与团队一些不那么紧急项目的代码撰写工作,也会去 GitHub 上提交自己感兴趣的开源框架代码,让自己时刻保持一线的状态。

对于公司暂时用不上但是很值得关注的技术趋势,比如 TiDB、OceanBase、NoSQL、Serverless,甚至 Java 最新版本,丁雪丰信奉的原则是:我可以不用,但是我要对它有了解,因为也许有一天你就需要用上它了。他会让团队去研究、调研,回到公司进行分享。

“虽然我们团队的定位更偏底层,有时候公司里实际使用的技术栈可能不那么新,但我还是希望我的团队的水平跟行业水平对齐。我要用行业的高标准来要求团队,要求我自己,这样才不会越走越窄。”

在技术敏感度保持上,丁雪丰会花费 10%-20% 的日常精力,当然这使用的都是自己的业余时间,他坦言“因为工作时间要有各类事情要去处理。”

虽然精力有限,但是丁雪丰还是会选择在某个点上深扎下去,我们理解这也是技术管理者在建立一个技术上的威信吧。“你在某些点上面你还是要能服众的,你不能让别人觉得你什么都不行,这样的话他会质疑你为什么有能力当他的 Leader。”

对于丁雪丰来说,除了专长的 Spring,他现在也对运维很感兴趣,经济、法律、管理也会涉猎。提及管理,他的感悟是:“有时候管理也不是学来的,是你一步一步成长之后,一个跟头一个跟头摔出来之后,会有的感触。”这可能也是所有一线管理者都要经历的一个过程吧。

对于程序员经常讨论的终极问题:是否可以把写代码当成终身职业,丁雪丰比较理性,甚至在我们看来有一些悲观。”伟大的程序员毕竟还是少数,这个我相信在国外也是一样的。每个行业都有发展的生命周期,现在的东西一定会被后面更新的东西取代。包括写程序,在可以预见的未来也许 AI 可以帮你写程序。”

更多国内外一线技术大咖分享请持续关注 QCon 全球软件开发大会 ,访问官网与技术大咖面对面交流实践心得。 

海计划公众号
(0)
上一篇 2020/03/23 08:57
下一篇 2020/03/23 08:57

您可能感兴趣的内容

  • 浏览器中的 Event Loop使用教程_线程使用指南

    当我们执行 JS 代码的时候其实就是往执行栈中放入函数,那么遇到异步代码的时候该怎么办?其实当遇到异步的代码时,会被挂起并在需要执行的时候加入到 Task(有多种 Task) 队列中。一旦执行栈为空,Event Loop 就会从 Task 队列中拿出需要执行的代码并放入执行栈中执行,所以本质上来说 JS 中的异步还是同步行为。不同的任务源会被分配到不同的 T

    2020/03/22
  • H5 Video 使用网络地址时获取其大小和第一帧图片小白攻略_video使用攻略

    问题描述某一天接了个需求,要求前端获取视频文件的大小、时长以及第一帧图片传给后端服务器存储,这样有两种情况,一种是通过input上传本地视频文件,一种是给出视频的网络地址,将其直接赋值给video标签的src属性。使用input标签上传本地视频使用上传的视频文件,这都好说,有了file文件对象,可以随意操作,获取其siz

    2020/04/05
  • react-360入门知识_使用 React 创建的 360 全景和 VR

    react-360入门知识 官方网址:https://facebook.github.io/react-360 GitHub:https://github.com/facebook…

    2020/03/06
  • JS 高阶函数入门基础教程_函数入门基础知识

    Function Object什么是函数?在大多数编程语言中,函数是一段独立的代码块,用来抽象处理某些通用功能的方法;主要操作是给函数传入特定对象(参数),并在方法调用结束后获得一个新的对象(返回值)。function greeting(name) {return `Hello ${name}`;
    }console.log( greeting(‘Onion’

    2020/03/20
  • cocoscreator 防止button连击多次触发事件入门攻略_事件使用帮助

    很多时候,ui上面的button都只需要单击触发一次,当用户快速连续点击时就有可能出现非意料的事情,解决这个问题很简单,只要规定button在指定间隔时间内只能触发一次就行。将下面的代码保存为ButtonSafe.js, 只需要给每个button控件添加下面的脚本并指定间隔时间即可防止重复点击。/*** Created by skyxu on 2018/9/

    2020/03/23
  • alt.js入门基础教程_基于Flux使用Javascript应用来管理数据的类库

    alt.js入门基础教程 官方网址:https://github.com/goatslacker/alt GitHub:http://alt.js.org/ 简介描述:基于Flux…

    2020/03/06
  • React 中 Virtual DOM 与 Diffing 算法的关系使用帮助_算法入门基础教程

    Virtual DOM 是一种编程理念Virtual DOM 是一种编程理念。UI 信息被特定语言描述并保存到内存中,再通过特定的库,例如 ReactDOM 与真实的 DOM 同步信息。这一过程成为 协调 (Reconciliation)。与之对应的数据结构Virtual DOM 反映到实际的数据结构上,就是每一个 React 的 fiber node//

    2020/03/26
  • Web前端的路该怎么走?菜鸟教程_前端基础知识入门

    Web前端的路该怎么走?这是作者张鑫旭的文章中的一个小部分,觉得非常有必要分开列出来。关于前端的路该如何走,一般都是工作1年作用或者正在想入职前端的小伙伴经常遇到的十大常见问题之一。问题描述如下:刚刚毕业,在公司一直做的是前端开发,之前都是自己去学习一些基础的前端知识(html+css+js)。到现在越来越迷茫,不知道自己该去学哪方面的。 在学校学的都是一些

    2020/03/26
  • 使用Node.js爬取任意网页资源并输出高质量PDF文件到本地菜鸟攻略_爬虫入门攻略

    本文适合无论是否有爬虫以及 Node.js 基础的朋友观看~需求:Node.js
    PDF
    如果你是一名技术人员,那么可以看我接下来的文章,否则,请直接移步到我的 github 仓库,直接看文档使用即可,仓库地址: 附带文档和源码 ,别忘了给个 star 哦本需求使用到的技术: Node.js 和 puppeteerpuppeteer 官网地址: puppet

    2020/03/29
  • Js将负数转换为正数?菜鸟指南_数字使用指南

    方法1:这是一种通用方法,我们首先检查数字是已经是正数还是负数,如果数字是负数,那么我们将数字乘以-1以使其为正数。语法:if (a < 0) {a = a * -1;
    }示例:function convert_positive(a) {if(a < 0) {a = a * -1;}return a;}var n = -10;var m =

    2020/03/20
  • nw.js小白基础轻量级桌面应用开发的捷径

    nw.js基础入门 官方网址:http://nwjs.io/ GitHub:https://github.com/tza17313/nw.js-demo 简介描述:轻量级桌面应用开…

    2020/03/05
  • React 开发必须知道的 34 个技巧基础教程_技巧使用指南

    前言React 是前端三大框架之一,在面试和开发中也是一项技能;本文从实际开发中总结了 React 开发的一些技巧技巧,适合 React 初学或者有一定项目经验的同学;万字长文,建议收藏。 序列文章:Vue 开发必须知道的 36 个技巧【近1W字】1 组件通讯1.1 props子组件import React from “react”;
    import Prop

    2020/03/23
  • 深入理解js对象中数据属性和访问器属性使用教程_对象零基础入门

    创建对象的方式有两种:第一种,通过new操作符后面跟Object构造函数,第二种,对象字面量方式。如下var person = new Object();
    person.name = ‘Nicy’;
    person.age = 21;
    person.sayName = function() {console.log(this.name);
    };var pers

    2020/03/31
  • HTTP无状态协议理解基础指南_协议使用教程

    HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。客户端与服务器进行动态交互的Web应用程序出现之后,HTTP无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知

    2020/03/26
  • Web前端自学之路学习路线,web前端开发网站教程视频_学习基础知识教程

    前端开发作为一个由网页制作演变成的新兴岗位,其实在国内外来说,受到重视的时间并不长,在前几年间技术快速的发展和其应用普及率的迅猛增长,使得前端人才市场一片盛况空前的景象,由于其的易入门性和不错的发展前景,吸引了众多前端爱好者和转行人员的青睐。都说前端技术属于易学难精,其易入门性也是相对Java,python那些语言来说的,并不是说任何人可随便信手拈来,而且今

    2020/03/31
  • JS设计模式:单例模式使用帮助_模式小白基础

    单例模式单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。 ———来自维基百科 一个很典型的应用是在点击登录按钮,弹出登录浮窗,不论点击多少次登录按钮,页面始终只会弹出一个登录浮窗。实现单例模式思路很简单,用一个变量记录是否已经为某个类创建过对象,如果没有则返回新建的对象,反之则返回之前创建的对象。在构

    2020/03/29