程序员的发展观

程序员的发展观(摘自凤凰架构)

程序员,字面意思是指编写程序代码的人。但在不少程序员的认知里,今天去写代码,目的却是为了日后可以不必再写代码。程序员的”进阶职业“中,无论是对“顶层设计”、“战略架构”侃侃而谈的架构师和资深专家,还是“从技术走向管理”的研发部门管理者,似乎都已脱离了字面意义上的“写程序代码的人”,作为程序员这个群体的领导者或管理者,理应以治下的程序员能有更高的效率更好的产出作为工作目标和考核依据。

按职业经理人的视角来看,以上是合情合理的,但这种视角下的程序员,恐怕也算得上是最难以管理的职场群体了:工作的过程无法标准化和流水线化,编码的产出指标与质量指标都很难量化地衡量和对比;偏偏写代码这种工作还是一种创造性的脑力劳动,性质决定了程序员必须是一群能独立思考,带有一点天生洁癖,有一点习惯性找茬纠错抬杠的人,领导交办的任务,动辄“这个需求不合理”,要么是"这个功能实现不了”,天哪,怎么会有如此难缠难管的员工?

与此相对的另外一面,业界普遍都认可程序员是相对单纯,不必琢磨复杂人际心思的职场群体,这群人天生带有一种工匠式的图腾崇拜精神,本质上与旧时的小手工业者并没有什么区别,都奉行达者为师,不迷信管理他们的人,但充分尊重能够指导他们的人;都带着些许理工钢铁直男式的直线思维,爱讲逻辑爱讲道理,万一讲不通,起码还能“Talk is cheap, Show me the code”,从这个角度来看,一个对事不对人的、爱讲道理的群体,又怎么可能会难缠难管呢?

Talk is cheap. Show me the code.
屁话少说,放"码"过来。

—— Linus Torvalds, Re: SCO: “thread creation is about a thousand times faster than onnative”, 2000

以上这些,是希望无论日后你的职业目标是永远做一名程序员,还是架构师,抑或是成为一名研发管理者,都不要轻易地离开技术领域的一线前沿,离开技术、放弃编码的决定很可能会像你高考之后放下的数学、生物、地理等知识那样,一旦放手,毕生就很难有机会再重新捡起来。

久而久之,你对代码、技术、产品状态与团队研发状态的理解,渐渐和团队成员产生了偏差错位,丧失了细节上给予指导的能力,丧失了专业问题上提出接地气解决方案的能力,只能在无法“Show me the code”短期难以校验对错的大战略方向提意见,在会议、流程及团队管理措施上下功夫,在职业经理人式的宣讲与汇报上寻找存在感,此刻,你便从团队的导师变成了管理者,最终你与团队的关系,从携手并肩奋斗的伙伴,完全演变成只能靠公司制度与管理职位的权力来维系雇佣关系。

《架构整洁之道》,第 15 章

Software architects are the best programmers, and they continue to take programming tasks. Software architects may not write as much code as other programmers do, but they continue to engage in programming tasks. They do this because they cannot do their jobs properly if they are not experiencing the problems that they are creating for the rest of the programmers.

软件架构师本身就是最好的程序员,他们会一直编写代码,虽然可能不会像其他程序员输出的代码量那样多,但是只有持续地编程,才能确保他们遇见其他程序员所面对的问题,体会其他程序员心中的感受,因此如果不编程,他们亦将无法胜任软件架构这项工作。

—— Robert C. Martin, 《Clean Architecture》, 2018

我很清楚在目前的 IT 业界,只有少量极客文化浓厚的公司会允许少量高端程序员以“独立贡献者(Individual Contributor)”的角色做到高端的职位,绝大多数企业都还是“技而优则仕”,去做管理或者做战略方向的务虚工作,往往是由屁股决定的问题而非由脑袋决定的问题。

我也相信假如能够轻松地做好技术,没有人愿意随便放弃。我所听过的离开技术一线最常见的原因是“年纪大了,时间不够用了”或要“聚焦精力去做管理了”。对这种现象我的看法是:确实很难轻松地做好技术,但是做在好技术工作的前提下,却有可能较为轻松地做好架构和管理工作。

我自己也是一名架构师和管理者,在作自我介绍的场合,用的头衔却从来都是“兼职一些管理工作的程序员”,这是一种人设标签。如果你问我为什么管理几十人、几百人的团队的同时,还能抽出时间去编码、去写作、去关注具体的细节与技术的潮流发展,我会理所当然地回答“因为我是一名程序员”啊。这句话的第一层意思是,我是程序员,去编码是天经地义的。另一层意思是,我是程序员,与一群最讲道理、最直来直往、最不需要琢磨小心思的程序员协同工作,管理才不需要耗费太多的精力,因此“兼职管理”才是可行的。

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

日日行不惧千万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值