以前同学聚会都问他“还在编代码啊?”,现在不问了,因为……

嵌入式ARM 2019-07-05 14:27


一指流沙,程序年华


时间就像指间握不住的流沙,静静从身边溜走。


这些年来,我所从事的工作领域在变化,所使用的技术在变化,经历过一线比拼的激情,持续熬夜的艰辛,产品上线的喜悦,一直在公司从事基层研发工作。人生就像自己编写的程序,在程序化地运行着,但能在最好的年华,做自己最热爱的事,于我是一种幸福。


01

有了电脑后的“放飞”


上世纪90年代,爸爸单位用电脑记账,我觉得很是神奇,买不起电脑就买了个学习机,按照说明书,用GBASIC语言输出满屏各种形状的图形,心中被巨大的喜悦填满,开始了编程的启蒙。高考那年,又被《第一次亲密接触》中互联网的桥段吸引,毫不犹豫报了计算机专业,但遗憾被调剂到信息管理专业,这两个专业之间关系不大,我与编程失之交臂了。


大一下学期买了电脑后,我开始“放飞”自己,各种操作系统只要出新的版本,我就会重装体验,此外就是打游戏,或者“泡”论坛,渐渐发现编程的乐趣,之后就在编码的路上停不下来了。参加过学校计算机编程比赛获三等奖,和室友一起搭建系里的网站,大学毕业去了一家互联网公司做程序员,直到2005年,我有幸加入华为,一晃已经十三年了。


02

因挑战才能快速成长


来到华为之后,我才发现编程之外有一个更大的世界——一套业务与体系化的技术。外部形势与内部因素持续都在变化,对业务与技能的要求变化太快,我几乎时时刻刻都面临着挑战。


2008年,我们启动了下一代智能网平台的开发,当时智能网产品刚进入欧洲市场。版本刚开发不久,质量不稳定,经常出现宕机。在项目紧急关头,开发代表找到我,让原本做消息平台的我转做话音平台。一开始我是想拒绝的,话音的信令协议我从来没接触过,而且我对产品的代码一无所知,更遑论解决问题。


抱着先做做看的想法还是同意了,不熟悉信令协议,我就把协议规范打印出来当成案头书来读,和业务的兄弟一起开发业务,定位解决问题,让我渐渐熟悉信令协议;面对宕机的问题,尤其遇到地址空间完全破坏的情况,“疯狂”学习汇编指令来提升定位问题的能力。记得当时与一位同事同住坂田市场附近,每天下班回家的路上,我们都会一起讨论今天遇到什么问题,要怎么解决,要是找到解决的办法,有时甚至兴奋得睡不着。


从宕机的泥潭中走出来后,又遇产品在欧洲比拼测试,客户明确提出了稳定性与性能测试的诉求,领导再次安排我负责性能提升的攻关。我非常担心搞不定,一是时间很紧,离客户验收只有两个多月,二是我还没有非常熟悉整个系统的代码。性能提升不仅涉及到编码细节的优化,还要梳理业务流程与模块边界问题,好在领导给了我“一双翅膀”,我带着一名测试与一名开发兄弟,开始沟通与制定测试和优化计划。在计划上,白天我们全心投入分析前一晚的测试数据与优化代码,晚上用机器持续测试稳定性;在优化实施上,采用2/8原则,先解决优先级在前20%的问题,20%的问题大都能提升80%的性能。经过一多月的努力,产品的72小时稳定性呼叫各指标表现平稳,基准流程CAPS(每秒试呼次数)从原来每块单板100+提升到1300。


做完优化之后,我立即出差欧洲参与验证。一开始我没有经验,草率地拿出自研的测试工具给了我们的测试数据,但友商的系统CAPS刚破百,客户自己的测试工具最高也只能到200多,严谨的客户怀疑数据的真实性。我对我们的数据很有信心,于是尝试和客户沟通,对接实验室核心网设备,客户的测试工具以及我们的自研测试工具,一起呼叫测试。在长时间的稳定性测试过程中,即使增加到130%呼叫量的压力测试,我们的产品表现一直稳定如初。我还记得,验证完成的那个下午,客户当场对我们竖起了大拇指。在团队共同的努力下,华为最终拿下TLF三国子网的合同,这也是我们软件业务第一次交付欧洲客户。


努力与付出赢得了信任,让我有更多的机会去接触新的挑战,有了更多的成长机会。后来产品在欧洲大T不断地比拼测试和交付,都有我的参与。在VDF,与友商的核心网对接,发现我们系统的SIP协议连接转换功能缺失,一周内我疯狂写代码,成功对接上并调通业务流程。在DT,在一个月时间内独自完成了版本从Linux到PC的版本轻量化移植,解决客户在PC上一站式业务开发与调测诉求,获得客户认可……


03

越努力,越从容


2011年我们启动了新的虚拟化、云化支撑平台项目,曾经一起共事的领导点名让我参加新项目。改变对我来说,从来都不是事儿,这一次我还是选择了继续挑战自己。但转变也带给了我可能无法胜任工作的危机感,这让我从来不敢放松自己,而唯一能缓解危机感的方法就是增强应对实际困难的知识与技能。


从无到有构建项目中多个模块,开发基础框架来考虑提升团队开发效率,帮助大家解决很多技术问题,慢慢地团队内有人开始称我为“大侠”。但在我看来,做一个“大侠”,不仅仅是大家认为的“能力强,效率高”,那充其量只是个人贡献,更重要的是能带动团队成员一起成长。无论身处什么岗位,我都会在团队内积极总结和分享。迄今为止,我在Hi3MS上分享了180多篇技术博文,整理过三十页编码最佳实践来指导团队开发。这一过程可以督促我不断完善想法,加深认识,而且也可以传承知识,这可能远甚于写代码本身。


除了自我学习和总结,面对层出不穷的知识,做技术的人更不可闭门造车,盲目自信,而是要多从业界“喝咖啡”吸收宇宙能量。2012年,我们基于开源CMDB(配置管理数据库)构建了网络拓扑服务,能端到端开通业务虚拟机组网下的网络配置,成功应用在某局点;2013年,我们研究TOSCA (云应用拓扑编排)规范,把它引入标准化图形化拓扑编排,简化了编排模型……


成功不是未来前进的可靠向导,对软件来说亦然,曾经优秀的技术也可能成为架构演进的绊脚石。2014年以前,我们的开发框架是OSGi,它的模块化,面向接口编程模式曾为我们带来开发便利。我一度很喜爱,但是由于它生态式微,越来越多的第三方组件不再支持,我们使用成本越来越高,反倒成了历史技术债务,团队内也因此多次争论它的去留。2015年初我作为负责人,带队渐进式地引入微服务框架替换了OSGi,提升了团队并行开发效率。


软件设计是一个不断打磨不断完善的过程,技术的提升更多需要亲身的实践。我做方案设计时,都会参与框架与核心代码的编写,也只有深入其中,才会知道其中的关键点,才能更好地解决问题。从2014年开始,我设计并编写了项目中调度控制部件的任务编排框架的代码,从支撑某局点业务的一百多虚拟机节点并发,优化到上千虚拟机节点并发……


多一份努力,就多一分收获。就这样在点点滴滴实战中,一路坚持下来,像玩游戏打怪升级技术点一样,我积累了非常多的技术经验,不管是面对技术方案还是技术实现,都多了一些从容。


04

诚于己,心得其宜


除了日常工作,我算得上是一个编程语言控了。写过种菜游戏的自动偷菜外挂,刷过手机多个版本,帮老婆微商写过小微记账App,可同时支持安卓与iOS……即使现在,每种语言流行时,我下班回到家只要有时间都会“练手”,关注其生态框架,还涉猎过Typescript、Go、 Rust、Scala,虽谈不上样样精通,但每每有新项目涉及到新语言与框架的应用,对我来说都不是一件太难的事。


我们就像一粒粒种子,因为有着对外面世界的好奇,才能从土壤中探出头来,亲眼见证这个美好的世界。这也是我坚持走技术路线的内在驱动力,是我在成长中能不断适应变化的关键所在。


如今我大学毕业十多年了,以前同学聚会被问得最多的问题是“你还在华为啊?”“还在写代码啊?”,现在大家已经不问了,因为他们知道我足够热爱,不会轻易放弃。


从2016年到2018年初,软件组织结构经历了多次调整。看着身边的同事,曾经带过的徒弟奔赴到新岗位,说实话,内心彷徨过。自己的转身在哪里?自己的追求是什么?要不要去新的领域开始新的挑战?我和很多留在软件的兄弟聊天,我们一致认为,软件一直存在新技术新业务的土壤,也曾是创新的推手。对于喜欢钻研技术的我们而言,组织的调整对我们影响不大,经过这次的变革,大家更加务实,我们有更多的时间来编写热爱的代码。能在一个环境中安心做自己喜欢的事,诚于己,心得其宜,这就是我的情怀。


软件需要传承,也需要积累。今天万物互联与人工智能已至,软件新的机会窗口已打开。去年末,我有幸和同事按需构建部分公共服务能力,开始支撑业务SaaS化探索。现在我又有幸开始参与构建一些智能运营数据分析的技术储备。在产业互联网这一条新的赛道上,虽然我们是后来的学习者,但我们为客户解决业务问题的能力从来不缺。能力源于专业的技术积累,核心竞争力源于关键技术突破,新的赛道上也就不缺技术人员的用武之地。


不记得自己何时把“一指流沙,程序年华”作为eSpace签名,当写下这句话时,我清楚地知道,我将会在技术这条路上坚定而持续地走下去。感谢公司为我提供了广阔的平台,但我还远远不够优秀,需要不断学习与提升。软件开发从来没有标准可以遵循,过程与结果充满不确定性,现在的产品也没有引领世界,我们还须继续努力。始于初心,保持好奇心,坚定恒心,我相信方向已越来越清晰,在前进的道路上,摆正自己的心态,我将继续为软件业务贡献微薄之力。


嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 139浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 143浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 115浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 186浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 209浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 285浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 185浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 149浏览
  • 故障现象 一辆2007款日产天籁车,搭载VQ23发动机(气缸编号如图1所示,点火顺序为1-2-3-4-5-6),累计行驶里程约为21万km。车主反映,该车起步加速时偶尔抖动,且行驶中加速无力。 图1 VQ23发动机的气缸编号 故障诊断接车后试车,发动机怠速运转平稳,但只要换挡起步,稍微踩下一点加速踏板,就能感觉到车身明显抖动。用故障检测仪检测,发动机控制模块(ECM)无故障代码存储,且无失火数据流。用虹科Pico汽车示波器测量气缸1点火信号(COP点火信号)和曲轴位置传感器信
    虹科Pico汽车示波器 2025-01-23 10:46 52浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 616浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 396浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 109浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦