阿里巴巴资深技术专家崮德:8 个影响我职业生涯的重要技能

简介:

我是上个世纪, 1998 年考入浙江大学的,读的是电子工程,但是在大学期间情不自禁爱地上了计算机,当时在学校学的是汇编语言,C 和 C++ ,也钻研过微软的 VC++ 。经历过点亮第一个 8051 板子的 LED 灯而兴奋不已,虽然当时的 LED 灯珠是直接用 8051 的 GPIO 口驱动的(没有考虑驱动电流能力)。

后来大三的时候,闲不住的自己,直接去外面的软件公司兼职打工,在其中一家通信设备公司做 PPP、PPPOE 开发,在这家公司,让我见识了什么是超大规模代码开发(比 Hello World 要雄伟的多),什么是超级优美的软件架构,什么是良好的编程风格,什么是精巧的数据结构设计。

大三大四的兼职生活,时间过的很快,后来我就很幸运地保研了,开始从事 ARM 嵌入式开发研究,当时( 2002-2003 )也算是中国第一代 ARM 开发工程师。从小学到大学,我和很多同学有一个特别大的差异,就是喜欢提问题。现在想来这个特别的技能为我未来成为优秀工程师打下了很好的基础。这个技能是我职业生涯第一个重要技能。

善于提出问题

我们的教育方式,注定了大部分人都是解决问题的高手,每次考试,我们的目标就是拿 100 分,从 ABCD 中选择中选择正确的答案,反而很少有人想,我们为什么要学这些知识,这些知识未来有什么用?或者想想这个数学公式是怎么来?有没有更简洁的表达方式呢?有没有其他没有发现的更好的解决方案呢?或者怎么提高学习效率?怎么让自己既学的好,又学的轻松呢?在我整个学生生涯,我的脑子里整天充满了这些问题,我觉得就是这样的思考习惯,让我成为一个善于提出问题的“好”学生。

2005 年研究生毕业后,我加入华为有限公司,也就很自然从事了 2/3G 基站嵌入式开发工作,在华为,让我学会了作为优秀工程师的第二个技能:撰写&阅读技术资料。

撰写&阅读技术资料

在华为,有专门的技术资料库,涉及领域非常广泛,比如 SDRAM 的读写驱动原理, SPI 总线解析,信号的毛刺测试和分析,网络分析仪的使用技巧等等,我是第一次看到这么海量的和实际工作这么接近的技术资料,绝对和大学教材有天壤之别,因此那一年半的华为生涯,我花了大量时间阅读学习这些资料。那你可能要问了,这些资料哪里来的呢?对,都是每个一线工程师在平时工作中总结的,因此这里就提出了一个技能:写技术资料。比如你学习了一个新技术,可以写分享报告;比如你解决了一个重大问题,可以写问题分析报告;比如你要设计一个新的软件框架,可以写设计报告等等。

好奇心

当时在华为,工作特别繁忙,有很多杂事,比如有时候让你去修个电路板,有时候让你去测一个总线的时序波形,有时候让你写一个小功能的代码,有时候参与其他团队的一个协同工作等等,在这个过程中,我对其中一些技术充满了好奇心,比如 SDRAM ,因为之前只理解 SRAM 的工作原理,感觉特别简单,而 SDRAM ,完全颠覆了我对 RAM 读写操作的认知,刷新,预充电, Burst 操作等等新概念,让我充满了好奇心,因此我花了整整一个月时间,翻阅了技术资料库里我能找到的 SDRAM 的资料,并认认真真一字一句的啃下一个 SDRAM 芯片的英文 SPEC ,还拿着 50 万的示波器测量了 SDRAM 的时序信号波形,这下子总算把 SDRAM 的前前后后,左左右右都弄明白了。通过这些专注的工作,我算是 SDRAM 的小专家了,因此我就给我所在的 Team 同事一起搞了一个 SDRAM 技术分享。

善于分享

说到技术分享,之前我也没有做过,但是由于自己本身在大学期间是属于 outgoing 的类型,所以我并不怯场,只是不知道该如何整理这个 PPT ,我请教了我的师傅(在华为, 3 个月试用期是有师傅带徒弟的),知道了做 PPT 要“一图二表三文字”,也知道了,做分享需要先了解大家的知识背景(自己以为很简单,但是听众反而觉得很费解的技术点需要好好讲),也知道了,演讲一定要深入浅出,一定要遵循总分结构,或者 2W1H 等等,一定要站在听众的角度而不是自己熟悉的角度来展开演讲。当然最重要是明白了,技术分享既可以提高自己的技术理解力,也可以提高自己的个人影响力,从这以后,我到每一个新单位,都会主动发起一些技术分享。

28 原则 & 效率优先

我们的工作有个特点,就是永远都做不完,因此我们应该把有限的时间投入到最重要的事情中,比如对团队业务不是特别核心的工作,可以投入 20% 的时间提高效率快速完成,没有必要完美主义,非得做到 120 分才 OK 。而对于团队的基础性工作,核心技术,或者是影响未来创新的工作,则需要投入80%的时间,尽量做到系统化,规范化,文档化, SOP 化,尽量完美的打磨这种工作。通过这个 28 原则,我既快速完成了领导交给我的边边角角的工作,又帮团队沉淀了很多核心,基础的工作成果。

在华为,我们也要承担很多琐碎的工作(紧急但不特别重要),比如在写驱动代码的时候,突然接到一个任务,要求测试信号质量,这种事情需要搭建测试环境,使用高档的四踪示波器,然后还要飞线,因此这个时候效率优先就很重要,我都是“火急火燎”的快速安排好环境,快速计划好测试项目,然后干净利索的快速测试,连续高效工作 2 个小时,快速收掉这样的非核心工作,然后可以专注做更重要的工作。而很多时候,其他人喜欢磨磨蹭蹭的搭环境,慢慢吐吐的测量,测试一段时间,就要去外面走走,这里逛逛,或者回去写点代码,和谁去聊聊天,完全不遵守效率优先原则。

不要重复造轮子

很多“优秀”工程师都有“洁癖”,他们总觉得别人的代码不够好,自己的才是最棒的。其实,别人既然造了轮子,也经过一定时间和业务场景的考验,那很有可能自己就算发明了一个更漂亮的轮子,有可能性价比未必就比别人的高。我觉得工程师不是喜欢重复造轮子,而是缺了包容的心态,如果你能学着包容不同观点,学着求同存异的思维方式,则你会慢慢接受用实践检验过的轮子。因此每当你接到一个新任务,你一定要想想,这个工作别人是否做过了,到哪里可以找到,或者咨询谁可以找到这个轮子,而只有确定大概率是新工作的时候,你才开始动手。

读书能力

“书中自有黄金屋,书中自有颜如玉”,我觉得古人说的很对,我们的知识要么是直接经验,要么是间接经验(包括别人口口相传和自己亲自阅读),其中阅读是效率最高,知识最系统化的学习方式,一本书 30 几元,就可以涵盖作者几年甚至十几年的经验总结,这个性价比不是一般的高。而且很多知识,由于工作岗位限制,短期内我们没有办法直接经验获得,而口口相传又特别不系统化,这个时候,读书就非常好,比如你要学习销售,你不可能边写代码,边直接实践销售,那你可以买一本销售专业人士撰写的销售书籍,可能一两天你就可以知道销售的精髓,当然离融会贯通还很远,可是它为你打开了一个新的视角,新的思维方式,何乐为不为呢?

沟通&表达能力

中国教育培育出来的学生,很多时候更加善于埋头读书,不善于人际沟通,不善于表达,特别是工程师,自己有想法,有观点,但是碍于面子,或者怯场,不善于沟通表达,也不喜欢和人打交道。我们现在的社会分工越来越细,单兵作战已经无法满足社会需要,团队作战,或者跨团队跨公司作战越来越成为常态,因此沟通协同成为了举足轻重的能力。有人说,我知道这个技能很重要,但是我不擅长啊。其实,大道至简,如果能换位思考,抱着同理心和其他人聊天,你慢慢就能学会沟通和表达,沟通和表达一点都不难,哪怕有事没事和其他同学唠唠嗑,也能提高自己的沟通和表达能力。

作者信息:崮德, 2005 年毕业于浙江大学,获得电路与系统硕士学位,后加入华为,从事 2G 和 3G 的基站开发。2006 年加盟上海晨讯科技,负责功能手机、智能手机以及物联网通信模块(2G/3G Module),主导设计了 GPS 追踪器,平板电脑等智能硬件。 2012 年创办上海同时信息科技,专注于蓝牙 BLE 智能硬件,主导设计了智能防丢器,智能钱包,智能行李牌等30多个产品,累计提交了 20 多项的物联网专利,是蓝牙 BLE&mesh 方面的资深专家。 2017 年加入阿里巴巴人工智能实验室,负责 AIoT 总体架构设计,是蓝牙 mesh 从 0 到 1 落地天猫精灵开放平台的负责人,沉淀了一套 IoTConnect Kit 赋能产业链。

相关文章
|
传感器 调度 开发者
【Freertos基础入门】freertos任务的优先级
【Freertos基础入门】freertos任务的优先级
2078 0
|
编解码 文字识别 测试技术
3000 字带你了解Claude3 视觉能力,OCR, 菜单识别统统能搞定!
五大任务,带你了解Claude3的视觉能力有多强 2024 年 3 月 4 日,Anthropic 震撼发布了全新的多模态模型——Claude 3。据该公司介绍,无论是语言处理还是视觉识别任务,Claude 3 都展现出了超越同类竞争产品(例如配备视觉功能的 GPT-4)的卓越性能。
631 0
|
存储 网络协议 安全
八种流行的网络协议
八种流行的网络协议
|
8月前
|
JSON 前端开发 Java
Spring MVC
Spring MVC是基于Spring框架的Web开发模块,其核心组件包括DispatcherServlet(核心控制器)、HandlerMapping(处理器映射器)、HandlerAdapter(处理器适配器)、Handler(处理器)和ViewResolver(视图解析器)。
Spring MVC
|
3月前
|
数据可视化 Java 关系型数据库
认识Activiti
工作流指如请假、报销等需审批的业务流程,通过可视化引擎实现自动化管理。常见技术包括BPMN、Activiti和Flowable,广泛应用于CRM、TMS、WMS等系统,提升企业流程效率与灵活性。
|
12月前
|
存储 自然语言处理 算法
【LeetCode 热题100】208:实现 Trie (前缀树)(详细解析)(Go语言版)
本文详细解析了力扣热题 208——实现 Trie(前缀树)。Trie 是一种高效的树形数据结构,用于存储和检索字符串集合。文章通过插入、查找和前缀匹配三个核心操作,结合 Go 语言实现代码,清晰展示了 Trie 的工作原理。时间复杂度为 O(m),空间复杂度也为 O(m),其中 m 为字符串长度。此外,还探讨了 Trie 的变种及应用场景,如自动补全和词典查找等。适合初学者深入了解 Trie 结构及其实际用途。
407 14
|
存储 设计模式 开发框架
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(7) -- 图标列表展示和选择处理
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(7) -- 图标列表展示和选择处理
|
API 数据安全/隐私保护 开发者
软件版本的命名规则
软件版本的命名规则
4062 1
|
数据采集 缓存 前端开发
API揭秘:初学者的数据提取综合指南
API揭秘:初学者的数据提取综合指南
306 1