通过前面几讲的分享,相信大家已经能清楚地看到一名普通软件工程师的发展路线:不断学习技能,提高研发效能,实现业务功能。
如果我们尝试回头看,可能会对自己的定位存在疑问:这些日常CRUD的开发工作,很多不具备太高的技术难度,可以靠人力堆积来实现。那么,如何在研发团队里打造自己的技术壁垒、体现个人价值呢?
下面,我将分多个层面和大家聊聊,大家可以根据自己的发展目标和工作环境,选择性地发展几项。今天的内容会抛开编程语言之争,从更高的维度来看问题。
业务往往与公司的赢利点挂钩,决定了公司的生死存亡,所以业务驱动了公司里的很多事情,包括晋升、组织架构等。
大多数的开发者往往长期投入在公司的业务相关开发,或是满足产品的迭代,或是满足甲方的需求。从结果来看,业务开发是最容易看到成果的,可以与具体的增长和营收挂钩。那么,业务领域的开发者需要关注什么呢?我也列举三点
技术人常常期望能抛开烦杂的业务需求,长期在一个技术领域深耕,例如专职研究存储系统、网络架构、云原生架构、大数据引擎等。这里,我希望有此类想法的同学先想清楚一个问题:你究竟是厌倦了做需求迭代,还是真正喜欢某项技术?
深耕专项的技术领域,遇到的挑战很多,我列举三个比较重要的:
合作与分工是所有团队都面临的问题。随着一名工程师的经验与资历的提升,都会直接或间接地带领团队去实现目标。
那怎么考验一个人的团队领导力呢?一般会更关注以下三点:
如今,软件工程日益精细化,公司越来越重视研发效能的管理,而非当初那种野蛮地堆人力、抢占市场。
研发效能的管理分为多个方向,例如:
安全是一个很有意思的话题,大部分人的认知是:在没有问题时,安全一文不值;在出现问题后,安全又是至关重要的。
安全领域门槛很高,会有专属于自己的一个小圈子。绝大多数的开发者并不需要过多掌握安全相关的技能,只需了解一些常规的安全技能,在日常研发中有意识地加以重视:
HTTPS
、证书、Sync Flooding
等在项目投入生产使用后,稳定性逐渐成为一项重要指标,它与公司的营收直接相关。
在某个程度上,稳定性与安全非常类似,不出问题时,大家都不care稳定性,都想着快速迭代;出现问题后,又想法设法维持稳定。那如何体现一个人在稳定性上的能力呢?
以上六点,是作为开发者的价值点沉淀。我比较赞同一个观点:对公司的价值输出,决定了你的绩效;而对自己能力的沉淀,决定了你的市场价值。所以,绝大多数的人更应该把关注点放在自身的能力沉淀。
不过,我这边也针对一个极端的观点做一下修正:不要花太多心思在公司工作上,而是多提升自身能力。
公司评定一个人包括两块:工作产出与自身能力。光有能力而没有足够产出,是可以让我们在当前岗位上表现达到中上,却很难让自己获得晋升、进而到一个更高的位置去锻炼自己。
个人能力毕竟有限,必须借助公司的力量,才能产出更大的价值;反之,如果你的产出全部依赖公司平台,也就是说脱离了平台你的价值大打折扣,那也是一个非常严重的问题。
我比较建议,在 保证自己能在当前岗位成为TOP10%的前提下,多多提升自己。
如果在工作中投入了100%的时间与精力,却依旧达不到TOP10%的业绩产出,这也是很多人遇到的问题。此时,我建议减少纯工作上的投入,多花时间提升个人能力。哪怕会在短期内会导致绩效的不如意,但能换来长期良好的职业发展。
本篇和大家聊了很多关于个人长期发展的话题,也探讨了个人与公司上的冲突问题。
如果用一句话总结,我会选择:软件工程师的价值沉淀是一个长期过程,核心是锻炼自身能力,也要借助公司的平台来帮助自己更快地成长。
Github: https://github.com/Junedayday/code_reading Blog: http://junes.tech/ Bilibili: https://space.bilibili.com/293775192 公众号: golangcoding