Go语言学习路线 - 7.进阶篇:一名软件工程师的价值沉淀

简介: 通过前面几讲的分享,相信大家已经能清楚地看到一名普通软件工程师的发展路线:不断学习技能,提高研发效能,实现业务功能。如果我们尝试回头看,可能会对自己的定位存在疑问:这些日常CRUD的开发工作,很多不具备太高的技术难度,可以靠人力堆积来实现。那么,如何在研发团队里打造自己的技术壁垒、体现个人价值呢?

阶段性的思考

通过前面几讲的分享,相信大家已经能清楚地看到一名普通软件工程师的发展路线:不断学习技能,提高研发效能,实现业务功能

如果我们尝试回头看,可能会对自己的定位存在疑问:这些日常CRUD的开发工作,很多不具备太高的技术难度,可以靠人力堆积来实现。那么,如何在研发团队里打造自己的技术壁垒、体现个人价值呢?

下面,我将分多个层面和大家聊聊,大家可以根据自己的发展目标和工作环境,选择性地发展几项。今天的内容会抛开编程语言之争,从更高的维度来看问题。

1. 专项业务领域

业务往往与公司的赢利点挂钩,决定了公司的生死存亡,所以业务驱动了公司里的很多事情,包括晋升、组织架构等。

大多数的开发者往往长期投入在公司的业务相关开发,或是满足产品的迭代,或是满足甲方的需求。从结果来看,业务开发是最容易看到成果的,可以与具体的增长和营收挂钩。那么,业务领域的开发者需要关注什么呢?我也列举三点

  • 产品设计 - 具备产品的规划与设计能力,将业务开发的经验沉淀为对产品的理解
  • 业务架构 - 能将软件架构适配业务,也能根据公司的基础能力灵活调整
  • 权衡能力 - 权衡技术与业务的冲突,能保证业务快速实现的同时,尽可能地减少技术债

2. 专项技术领域

技术人常常期望能抛开烦杂的业务需求,长期在一个技术领域深耕,例如专职研究存储系统、网络架构、云原生架构、大数据引擎等。这里,我希望有此类想法的同学先想清楚一个问题:你究竟是厌倦了做需求迭代,还是真正喜欢某项技术?

深耕专项的技术领域,遇到的挑战很多,我列举三个比较重要的:

  • 评价产出 - 思考如何将技术变现,在公司中体现自己的能力价值
  • 承载业务 - 对接并服务各个业务团队,根据具体场景做优化、适配等工作
  • 探索前景 - 紧跟并探索技术发展前景,方向准确,并长期坚持

3. 团队领导力

合作与分工是所有团队都面临的问题。随着一名工程师的经验与资历的提升,都会直接或间接地带领团队去实现目标。

那怎么考验一个人的团队领导力呢?一般会更关注以下三点:

  • 能力提升 - 保证资深员工能有效地将经验与技能传递给新人,自身也有足够的发展空间
  • 合理用人 - 如何管理性格、能力各异的成员,尽可能实现产出最大化
  • 落地文化 - 一个团队如果要长久发展,必须得形成文化价值观,并聚拢一批认同这个价值观的成员

4. 研发效能管理

如今,软件工程日益精细化,公司越来越重视研发效能的管理,而非当初那种野蛮地堆人力、抢占市场。

研发效能的管理分为多个方向,例如:

  • 项目/需求/故障管理 - 用平台跟进项目进度、投入人力
  • CICD/devops - 各类自动化的工具平台,促进研发与运维一体化,让研发对整个生命周期负责
  • 基础框架/库 - 加速研发对接日志、监控、部署等平台
  • 流程平台化 - 将公司内的各种日常流程落地为平台

5. 安全

安全是一个很有意思的话题,大部分人的认知是:在没有问题时,安全一文不值;在出现问题后,安全又是至关重要的

安全领域门槛很高,会有专属于自己的一个小圈子。绝大多数的开发者并不需要过多掌握安全相关的技能,只需了解一些常规的安全技能,在日常研发中有意识地加以重视:

  • 网络安全 - 常见的HTTPS、证书、Sync Flooding
  • 数据安全 - 加解密、备份
  • 编程相关 - SQL注入、核心参数校验、审计功能

6. 稳定性

在项目投入生产使用后,稳定性逐渐成为一项重要指标,它与公司的营收直接相关。

在某个程度上,稳定性与安全非常类似,不出问题时,大家都不care稳定性,都想着快速迭代;出现问题后,又想法设法维持稳定。那如何体现一个人在稳定性上的能力呢?

  • 代码研发 - 从实际代码出发,保证核心功能的健壮性和可扩展性
  • 软件架构 - 软件架构稳定,既能保证功能迭代,也能随着规模扩大保证性能稳定
  • 工作流程 - 从功能迭代、需求上线、故障处理等流程出发,控制风险

我的思考

以上六点,是作为开发者的价值点沉淀。我比较赞同一个观点:对公司的价值输出,决定了你的绩效;而对自己能力的沉淀,决定了你的市场价值。所以,绝大多数的人更应该把关注点放在自身的能力沉淀。

不过,我这边也针对一个极端的观点做一下修正:不要花太多心思在公司工作上,而是多提升自身能力。

公司评定一个人包括两块:工作产出与自身能力。光有能力而没有足够产出,是可以让我们在当前岗位上表现达到中上,却很难让自己获得晋升、进而到一个更高的位置去锻炼自己。

个人能力毕竟有限,必须借助公司的力量,才能产出更大的价值;反之,如果你的产出全部依赖公司平台,也就是说脱离了平台你的价值大打折扣,那也是一个非常严重的问题。

我比较建议,在 保证自己能在当前岗位成为TOP10%的前提下,多多提升自己

如果在工作中投入了100%的时间与精力,却依旧达不到TOP10%的业绩产出,这也是很多人遇到的问题。此时,我建议减少纯工作上的投入,多花时间提升个人能力。哪怕会在短期内会导致绩效的不如意,但能换来长期良好的职业发展。

结束语

本篇和大家聊了很多关于个人长期发展的话题,也探讨了个人与公司上的冲突问题。

如果用一句话总结,我会选择:软件工程师的价值沉淀是一个长期过程,核心是锻炼自身能力,也要借助公司的平台来帮助自己更快地成长

目录
相关文章
|
3天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
23 13
|
3天前
|
网络协议 安全 Go
Go语言的网络编程基础
【10月更文挑战第28天】Go语言的网络编程基础
17 8
|
2天前
|
Go
go语言的复数常量
【10月更文挑战第21天】
13 6
|
2天前
|
Go
go语言的浮点型常量
【10月更文挑战第21天】
9 4
|
2天前
|
编译器 Go
go语言的整型常量
【10月更文挑战第21天】
8 3
|
2天前
|
Serverless Go
Go语言中的并发编程:从入门到精通
本文将深入探讨Go语言中并发编程的核心概念和实践,包括goroutine、channel以及sync包等。通过实例演示如何利用这些工具实现高效的并发处理,同时避免常见的陷阱和错误。
|
3天前
|
安全 Go 开发者
代码之美:Go语言并发编程的优雅实现与案例分析
【10月更文挑战第28天】Go语言自2009年发布以来,凭借简洁的语法、高效的性能和原生的并发支持,赢得了众多开发者的青睐。本文通过两个案例,分别展示了如何使用goroutine和channel实现并发下载网页和构建并发Web服务器,深入探讨了Go语言并发编程的优雅实现。
10 2
|
3天前
|
安全 网络协议 Go
Go语言网络编程
【10月更文挑战第28天】Go语言网络编程
89 65
|
3天前
|
Go
go语言编译时常量表达式
【10月更文挑战第20天】
11 3
|
3天前
|
Go
go语言常量的类型
【10月更文挑战第20天】
9 2