跳转至

03 专业化:职业发展的永恒牵引力

你好,我是李云。这一讲咱来聊一聊专业化。

这个主题是不是感觉既熟悉又陌生。“专业”这个词我们日常工作中常用,比如,“我觉得这样做不专业”,“某某的做事方法很不专业”,但“专业化”这个词还真不常用。

没关系,今天咱们就把这个概念聊明白,从另一个维度来思考职业发展这件事,看看能有怎样的启发。

困境与出路

我先问你一个问题,你觉得做软件工程师的门槛高吗?就我自己来说,大学读的是非计算机专业,是通过自学C语言而进到了软件行业,如果不是时代发展需要大量的软件工程师,相信我不会那么容易地踏入这个行业。

在软件行业工作20多年,我观察到很多软件工程师,除了用的是更新的技术之外,职业意识与我初入行时差不多。很多人以为,能通过编程去完成工作任务,就是这个职业的一切。也是,环顾身边的人,与自己的想法和做法也差不多,那样认为也不会让人感到有何不妥。只是,因为认知和眼界的局限,很多人并没有意识到,浅显的职业意识,让人无法平衡工作与生活,最终付出了牺牲生活的沉重代价。我也曾经这样经历过。

还有啊,学习技术知识,咱都知道学得越多越好。但真着手学习时,发现学了在工作中用不上,以致动力不足,最后坚持不下去。尽管02讲我们聊到职业发展四部曲时,我强调了学习过程中,阶段性目标的重要性,但如果阶段性学习目标与工作无关,即便定了,也还是解决不了学习动力不足的问题

要做到平衡工作与生活,保持学习动力,那么工程师得有专业化的意识和行动,且以之伴随自己的整个职业生涯。在02讲我们说过,专业化就是用正确的方法做事,通过专业化去提升工作质效。不过,我并没有很好地解释,什么是“正确的方法”。

什么是专业化

我对专业化的理解,分别来自向外看和向内求两个维度。为了避免空洞地讲专业化,接下来给你讲讲我的经历,这样你可以与自己的情况做对照,从中看清专业化的模样。

在2003年我进入通信行业时,整个行业已经历了20多年的发展,进入了成熟期。体现成熟的一个点是,存在3GPP、ITU这样的国际标准化组织,电信运营商(比如,中国移动),要求各通信系统设备制造商的产品,必须遵守那些标准,以保证从不同制造商所采购的设备,能互联互通,避免被个别通信系统设备制造商锁定。

这是向外看行业,专业化意味着行业的标准化,进一步意味着,从业人员得基于行业标准去做事,甚至有建立行业标准的意识与行动。你可能现在不在通信行业工作,而是来自互联网或其他行业,没有看到过成千上万页的标准文档。像互联网这样的行业,标准不一定是文档,而是开源项目的具体实现,行业内称之为“事实标准”。

就职通信行业的近十年中,对我职业发展影响最大的,是任职于摩托罗拉杭州研发中心的那段时期。彼时的摩托罗拉,是全球知名通信系统设备制造商。

摩托罗拉对于员工的培养,从入职之初就开始了。每一位新加入的员工,会得到一张电子课程表,其中列出了80多门课,根据不同的岗位,明确了所需学习的课程,这些课程又进一步分成必修和选修两大类。公司要求,新员工在入职后的3个月内,学完必修课程,选修课程则在6个月内完成。80多门课程中,绝大部分是线上课程,少量专业讲师的线下课。

课程内容包含员工在公司所需掌握的方方面面。比如,所有员工都要学习:新员工入职导引、出口管制、环境安全、防静电意识、商业行为准则、信息安全等课程。对于软件开发工程师来说,还得学习软件配置管理与相关工具、软件缺陷预防、同行审查流程与相关工具、质量管理流程、如何做工作量评估、问题解决流程、需求管理和相关工具、软件设计与实现流程、市场需求优先级排序流程等课程。

除了入职课程,我在摩托罗拉工作期间,还参加过好些其他的公司付费培训。比如,高效开会、跨文化沟通、项目管理、商务礼仪、数字化六西格玛、TL9000质量管理等等。

通过向外看企业,专业化意味着企业对员工做事方法的培训与要求,背后意味着企业沉甸甸的经验积累和血淋淋的教训。换句话说,企业需要基于经营经验,去沉淀自己的知识和方法,通过培训,让员工站在前人的肩膀上工作,实现工作质效的传承。如果你入职一家企业,发现没有规范工作方面的要求,那基本上可以认为,在这家企业工作,并不能提升你的做事专业度。当然,除非你有能力在这家公司,建立起那些规范化的内容。显然,那些培训内容和要求,是企业的员工建立起来的,不是天上掉下来的。

在日常工作方面,各种技术文档非常完备,从市场需求到产品需求,从系统架构到特性架构,从概要设计到详细设计等等。完善的工作文档,加上需求管理工具所提供的需求跟踪能力,使得开发一个软件功能或特性的前因后果,全都能掌握和回溯。

我在摩托罗拉成为系统架构师后,最初参与和组织系统工程变更控制委员会的会议时,惊讶于前人所留下来的指导文档之体系化和用心度,让我作为新手,能很快地扮演好自己的角色。那时的感受是,文档所传递的不只是门道,更包含人文关怀。也许写下那些文字的人,因为职业素养使然,但他们对后来人工作体验的在意,非常打动我。

进一步向外看日常工作,专业化意味着,每个人做事得达到一定的要求,以便更好地与人协作与传承所学所做。换句话说,事不是做完为止,而是要做到位。

你可能会问:什么是“做到位”?这是个很好的问题,也是每位职场人士要面对的问题。回想我踏入职场的前期,那时并没有想过这个问题。等到我进入通信行业时,公司的培训让我有了做到位的意识,真正做到位,是通过观察身边那些比我更有行业经验的人做事,通过模仿而掌握的。

你可能又会有另外的一个问题了:我看身边的人做事与我没有区别,那就找不到“做到位”的标杆了,想模仿也下不了手啊?确实,就像我在互联网行业干了十年,我发现绝大部分人做事,是没有做到位的意识与行动的,就连阿里巴巴这样的大公司,也没有培训工程师将事做到位的行动,那就更别说其他规模更小的公司了。

那不是没辙了吗?也不是,我给你两条建议,希望有助于你将事做到位。第一条是,将事做到不会出错。第二条是,将事做到可以非常方便地交接给他人。这两条如何落实,需要你结合自己的工作场景了,我一时没法给出更具体的建议。

到现在我讲的,都是通过向外看去理解专业化的。接下来,说说向内看到的专业化,是什么模样。还是从我的经历说起。

2007年我第一次出国,前往摩托罗拉在美国的芝加哥总部工作,那次经历给我留下了非常深刻的印象。出国之前,我对如何平衡工作与生活这个问题,并没有多少思考,八年软件行业的从业经验,觉得自己总是很忙,虽说花了很大的精力去学习,但做事的方法并没多少长进。当出差来到美国同事身边时,我发现,他们能很好地平衡工作与生活,而且整体水平确实比我高,让我感觉,他们每个人都有做架构师的能力,这一经历带给我非常大的触动。

后来我渐渐意识到,得想办法不断提高自己的工作质效,才有可能平衡好工作与生活。也就是说,在工作中要始终致力于提升自己的工作质效,这是我向内看,对专业化的进一步理解。这个常识并不隐晦,如果工作质效上不去,那就一定是低水平重复,这就难免挤占投入生活的时间。看似努力不足,实则质效不高

软件开发是一种知识创造活动,没有办法像工厂中的流水线那样,对工程师施加一整套的规范和流程,确保产出质效。换句话说,企业的规范、流程和提供的培训,只是一些非常基础的内容,个人还得承担起持续提升自己工作质效的责任才行。

当对专业化有了这些认知后,我们对专业化所强调的“正确的方法”,就容易理解了。但凡有助于提升工作质效的内容都是“正确的方法”,个人就得去学、去掌握、去探索。很显然,咱没有必要单凭个人的力量蛮干。通过阅读书籍,了解并模仿行业的最佳实践,采用最现代化的工具,运用行之有效的方法论(比如,敏捷软件开发),借力开源软件和社区,了解业务场景等,都是很好的方式。不难发现,个人的工作视野,得扩大到编程语言之外的方方面面。

你看,建立起专业化意识,在工作中不断实践,既能帮助我们实现工作与生活的平衡,还能很好地解决学习动力不足的问题。

在制定学习目标时,考虑从提升个人的工作质效入手,致力于克服工作中的低效点。以这一方式所定的学习目标,一定不会出现学了但用不上的尴尬。让我举个例子帮助你加深理解。

工程师写的代码从不规范走向规范,是让人相当苦恼的事。也是,改变工作习惯哪那么容易啊,写代码时还得考虑规范化,思绪也会被打断,效率自然就打折。如果采用clang-format这样的代码格式化工具,与IDE环境相结合,由工具在背后自动做规范化的事,就能帮助我们顺利地过渡到规范化的状态。因为工具自动格式化后的代码,会潜移默化地让人第一时间写出规范的代码。学习和运用clang-format这样的代码格式化工具,就是一个具体且有助于改善个人工作效率的目标。

现实问题

了解了专业化的内涵后,你可能会问:“我花大量的精力学习,去提升自己的工作质效,但公司又看不到,那我为什么要那样做呢?”如果你这么问,估计没有想明白,专业化的最大受益人,不是公司,是自己,因为生活是你的,工作成就感和幸福感也是你的。如果是我,就是公司不让我专业化,我也不会答应,我依然会想方设法地专业化。

希望我的这个回答能给你带来警觉。特别是如果你现在的工作压力不怎么大,对工作也没太多要求,甚至只是在应付好眼前的任务。跟你说句掏心话,没有专业化的意识和行动,这真的是一件非常危险的事。不主动吃专业化的苦,就只能吃被动无奈没有选择的苦,这确实是我们在职场很重要的一道选择题。

你或许还会说:“我知道专业化很重要,但我的工作实在太忙了,根本没有时间去提高自己的工作质效。”我想这里隐含了另一道选择题,是选择屈服还是克服。世界挑战我们每个人的方式,一定是在我们没有准备好的情况下,给我们来个突如其来、措手不及。我们可以选择屈服,但那就意味着丢了选择权;也可以选择克服,通过长出能力,让自己紧握选择权。我也经历过忙得天昏地暗的时期,也确实是靠硬扛挺过去的,但我实在不愿意再一次面临那样的被动,所以会抽空琢磨和学习,下一次面临时,自然就从容多了。

咱必须想清楚,当困于工作与生活的失衡时,不走专业化的路,是无法从中解脱的,也毫无希望可言。相反,走专业化之路也有困难,但那是能力生长、充满希望之路。

总结时刻

这一讲就要结束了,让我总结一下。这一讲我们直面了每个人在职场中都必须面对的、非常有挑战的两大课题:平衡工作与生活,保持学习动力。

怎么做?要应对好这两大课题,需要工程师建立起专业化的意识,在工作中践行专业化,让专业化成为自身职业发展的永恒牵引力。

专业化意味着,在工作中始终致力于提升自己的工作质效,将省下来的时间用于学习与生活。专业化还意味着,以提升工作质效去设置学习目标,就能很好地规避学了用不上进而挫伤学习动力的问题。

最后,我想请你思考,近期在你身上有出现专业化的行为吗?期待你留言与我分享交流。

我们下一讲见。

精选留言(8)
  • pyhhou 👍(6) 💬(1)

    老师,你好,我非常赞同你说的专业化的认识。我现在在一家小型互联网公司工作,已经工作 5 年,但这里人人做事情并没有规范,都只是带着完成任务的心态去做事情。我常常会写design doc,数据文档,API文档,用类似你说的代码工具给自己写的代码格式化。但是,这里并没有一个效仿的对象,我曾提出一些简单的规范化的建议,但由于自己只是一个普通工程师,号召力有限,另外各种原因,后来也不了了之了,感觉公司基本上就我一个人在努力践行专业化。我想请问的是,我深知自己在专业化方面了解的还不够,但在一个周围没有参考对象的地方,如何去了解并学习更多的专业化知识并用到工作上呢?还有就是如何在公司建立专业化规范体系,让周围人都能效仿?

    2024-04-10

  • 起个名称吧 👍(5) 💬(1)

    我理解的向外看:约束。各自行事的风格到统一的规范,双方都按照规范做事以达到标准化的目的。 而向内看,找出工作中质效低的方面,学习最佳实践,进行不断练习。 q. 现实中比较苦恼交流的问题,汇报和交流,和同事交流还可以,但对于向上级汇报的这个事,因为是进行临时语言表达,而不是书面表达,每次汇报自我感觉很差,这里怎么改善

    2024-03-16

  • Geek_2f067a 👍(3) 💬(1)

    我看到没有注释的代码,我就会给他加上注释,特别是if(a == 1)这种代码,a=1到底是什么意思?每次看到还得再整个项目中搜索,这真的很浪费时间和精力。开发上也会自己试着总结一套模板(比如代码生成)。最近也在使用github copilot生成代码注释,查问题,优化代码,自动补全代码。不知道这些是不是老师说的专业化的行为

    2024-03-15

  • 王智 👍(2) 💬(1)

    其实这么看我的专业意识差了很多,工作了五六年,确实出现了很多次学习的知识用不上的场景,一方面是自己一直追逐新技术,而新技术在大部分公司并不普及,另外就是自己的工作其实就是 CRUD,夹杂着更多的业务代码。 而老师提出的一切以提升工作绩效来提升专业化,以专业化来作为牵引力来提升自我职业发展角度让我耳目一新,是一个非常不错的尝试方向,在这个过程中,也可以发现需求之外专业化内的东西,值得尝试,如何行动就看自己的安排了

    2024-04-28

  • Kevin 👍(1) 💬(1)

    1.勉强算是达成了把事情做到不出错的程度 2.把事情做到可以轻松交接给别人,那就差太远了,现在还停留在经验口口相传的水平,努力,为自己做到更好

    2024-03-20

  • hola 👍(0) 💬(1)

    从事运维工作,每一项工作任务完成以后,会留文档给,给自己复盘

    2024-12-05

  • 6点无痛早起学习的和尚 👍(0) 💬(1)

    来分享一下,我最近在工作里一些专业化的事情 1. 研究公司的一个 webide 平台,提高我们的测试环境部署的效率(由一次部署耗时 10 分钟降低到 1 分钟),并且产出介入文档,发到了研发群里给其他同事借鉴介入 2. QA 测试总是艾特我(RD)排查问题(但实际就固定的几类问题,最终都是下游或者上游的问题),我直接写了一个 xx 服务问题排查指南,并且丢给他们有问题先自己定位。

    2024-05-18

  • 新生\ 👍(0) 💬(0)

    提高质效

    2024-07-13