这是一个不甘心于只做电网人的老A队长的故事:从本科到硕士,他就读电气相关的专业,毕业后他留在了电力行业,目前已工作10年。
老A自述,其实他不是典型的程序员,只是出于爱好喜欢计算机技术这个方向,喜欢看相关的新闻、书籍和写点代码。
在老A身上,我们看到了对代码最纯粹的热爱:写代码对我来说有改造世界的快感,我希望到老也能维持这份赤诚。
从Linux入门,到独立完成项目
2008年,我就读于华中科技大学的电气专业,这个专业跟计算机关系不大。2012年毕业以后,去了国家电网的下属研究院读研,硕士毕业后留下工作直到现在,已经是个工作10年的“大叔”了。
我最早接触代码是在大一大二阶段,华中科技大学很多学院都有类似社团性质的课外创新基地,有老师和高年级学生指导,可以做一些小作品去参加比赛。我加入了其中一个,一位自动化专业学长(学长目前在国内芯片公司工作)手把手教我怎么写规范代码、怎么调试,还向我们介绍了Linux世界,那时还是Ubuntu 10.04 LTS,然后我就在老旧的笔记本上装上了双系统,在黑色终端里敲shell命令,逐渐了解了GNU计划、了解Vim/Emacs、GNOME/KDE等各种圣战,也看了王垠《完全用GNU/Linux工作》、未知名的《疯狂的程序员》而热血沸腾,从此我自认为是计算机入门了,并且是喜欢上了。

同时,电气专业的课程上有嵌入式技术的相关内容,写C代码用51单片机来控制开发板一些小的外设,比如 LED 灯、蜂鸣器、电机等等。虽然是些比较基础的东西,但从这一步步的积累中,我觉得写代码是非常有意思的一件事。
持续到大四,毕业设计课题选择了嵌入式Web服务器在电力系统中的应用方向。因为电力系统有很多设备属于是嵌入式装置,比如各种自动化、继电保护装置,传统的装置人机交互是通过按键、液晶面板来实现,操作不太方便,这个毕业课题,方向就是把人机交互的操作放到网页上,任务核心就是在实验室原有代码库基础上,继续移植一个嵌入式Web服务器作为装置软件的一个功能模块。事后来看,这个课题其实难度不大,因为很多工具都是芯片厂家做好,我只要把说明读懂,一步一步操作下来就可以了,只是对电气专业来说很少有这么深入写代码的实践积累。
毕业后到研究生开学,有2个月暑期空档,老师让我继续留在他的实验室干活,做一个多功能表计装置,这是我第一次独立做项目。所有的条件就是一个电路图和芯片手册以及大概的功能需求,我一个人上官网找开发工具、搭建开发环境,对着16位单片机芯片手册和液晶面板的说明书,一个人在那里慢慢捣鼓,先是把液晶面板每个符号的点亮、熄灭驱动实现,在此基础上实现数据显示、按键翻页回退等业务功能,逐渐把表计功能框架搭起来了,这个时候才有真实装置给我测试,结果没有大的问题。
到我离开的时候这个项目已经做得差不多了,后面实验室又招了新的学生去接手。等我上班两三年之后,老师还打电话问起过我一些相关的问题。
我对代码的热爱便源于此,用多年前在《非你莫属》节目上某位求职程序媛的话说,是“有种改造世界的快感”。
工科也要掌握一点计算机技术
不仅仅是电气,我觉得工科专业的学生都应该掌握一点计算机技术,主要是编程。
上班以后,我发现很多人连Excel公式都不熟练,这对于提高工作效率是一个很大的障碍,因为Excel公式属于非常简单的工作技能,把公式搞清楚,就省了很多手动的操作。
比如,我在工作中遇到过需要批量操作Excel的工作,很多数据比较分散,可能有好几十个Excel表,每个Excel表要处理的工作都差不多,就相当于要几十遍的循环,如果是手动操作,以往的工作流程可能是领导直接把任务下发下去,每个人领几个Excel表去干,我就跟领导说,我可以一个人来干,我用Python来写代码,一次性把它批量处理完。这是一个实例,我觉得会一点编程,对于提高效率是非常有用的。
我们公司有很多的部门,我这个部门是偏向技术研究的,做一些研究和写论文的工作,但是我们也有开发部门,偶尔我们也需要和他们去共同合作一些项目。
因为我们做的这些东西最终应用也需要落地到信息化的系统,所以我经常参与到合作项目里面。比如信息系统有一些电气方面的软件适配问题,而这个软件有什么样的特点,是怎么工作的,我这边比较清楚,所以我会跟开发部门合作,他们可能需要做一个相关的东西来调我这边的软件,两个部门对接的时候,我就会参与到其中的技术探讨,包括将来怎么部署,在什么系统上适合部署等。
我们公司有一些外包的员工,我发现外包员工的技术水平参差不齐,有一些连常用Linux命令都不了解,感觉比我都不熟,我认为自己还算是“入了门”的。
目前来说,我在工作中有涉及到一部分的技术开发问题,而我平时也特别喜欢关注计算机专业的知识,以及新闻、软件硬件的资讯等。工作之余,我也还在持续着对代码的热爱。
从零开始在公众平台上分享
工作后时间紧,没有大学时各种折腾的闲心,干活效率为先,也不去搞双系统、虚拟机了,然后配上了cygwin/msys。那时候cygwin的资料很少,我看英文手册无大碍,凭着冲动和兴趣,把自己对cygwin的理解写成笔记,建了QQ群,讨论和解答一些问题。期间还接了群里一位老板用Cygwin打包程序的活,帮助程序实现从Linux到Windows跨平台。
后来我又对着教程搭建静态博客,托管在Github上,也发到微信公众号和知乎上。微信公众号,因为排版实在太痛苦放弃了,Github博客站因为电脑迁移、node环境懒得折腾,再加上时不时被墙,就暂时停止push了,未来可能考虑迁移到Python博客框架重新push,目前的更新就是以知乎为主了。

但我印象深刻的是,有一次我的Github博客收到了一个学生的打赏,那时候我是非常激动的,虽然以前偶尔也会有人打赏,但那个学生他不仅打赏,还发了一大段话给我,对我来说影响是非常大的,因为我觉得我的工作发挥了它的价值,可能我是从一个非科班的视角来写更加浅显易懂,至今我还保留着这个截图。
我所写的两篇,投稿给阮一峰周刊,还被第281期、284期收录了。


投稿阮一峰周刊被收录
非技术行业有没有必要追AI?
我觉得现在各行各业追AI的趋势是非常明显的,特别是过年那段时间deepseek的火爆在全社会引发一波热潮。不仅是电气行业,其他行业也都在朝着AI的风口去闯。
这个潮流势不可挡,某些方面可见端倪。电气领域重要中文期刊,传统栏目的文章越来越少,甚至有一些栏目直接被取消掉了,开始设置一些与AI相关的栏目,比如有过大数据的栏目、人工智能的栏目,越来越多的学者开始使用计算机方向的专业知识去来解决电气领域所面临的问题。
导致这一现象的原因可能是传统行业是讲究因果性——我一定要知道它的原理,一步步地推导公式,可能会有不清楚的参数,所以又提了一些方程和一些经验性的参数在里面,但最后的效果可能并不是特别好。但如果有很多的实测数据之后,其实可以不必死磕因果推导了,干脆就学AI,只要抓住相关性就行,所以越来越多的人用计算机、机器学习和人工智能这一系列的技术来做这些研究。

授课培训
我觉得整个社会上各行各业有一种技术焦虑,总觉得如果再不学习AI的话,是不是就要落后了,是不是将来的饭碗就不保了等等。于我个人而言,我是觉得有点过犹不及了,包括现在有一些电气领域的论文和科技项目越来越多地追求AI,稀奇古怪的名字越来越多,连在一起高深莫测,我个人觉得这是有点过度了。
我认为机器学习/人工智能这些技术,总归是有它的适用条件和适用范围的,它并不是在所有的情形下都能很好地发挥它的效果。电气领域的学者并不如计算机专业这个研究AI研究那么深,并不能很好地把握这个边界。
比如说电气领域的一些问题,其实并没有获得那么多实际的监测数据,如果你搞一个很小的样本去做人工智能的分析,其实是过拟合的,并没有普适性,就是为了追求热点去做这个研究,最后得到的效果不一定好。
现在各行各业都开始在搭自己的大模型,我一直在想小模型都不行吗?为什么一定要大模型?言必称大模型,究竟用了多少参数?好像大模型是什么灵丹妙药,但是实际情况并不是这样的,我们不一定所有事情都需要依赖于它,传统的方法也是有一定效果的,可能我们需要更多的数据去来验证我们之前的猜想,需要做更多的实验而已。
现在很多模型无论大小都说自己是大模型,我觉得这一点非常是可笑的,也体现出当前AI方面的追捧是过于焦虑的。印象中有位CEO说过,不必盲目追捧AI技术,传统行业该做的事情,继续保持自己的节奏就好好,当然好的东西我们会吸收,但是不必盲目的说别人有大模型,我也要搭一个。搭好以后,这个大模型将来是为了解决什么问题,我还没想好,反正我把这个模型先跑起来再说,这样的想法我认为是有点因果倒置了。
电网和互联网行业的不同
在电气这个专业,绝大部分对口的工作都是在国企,所以整体的稳定性还不错。当然也有一些人觉得这么待下去是低水平的稳定或者大材小用,有还是一些人会选择跳出去。
总体上来说,在电气这个行业里不会像计算机这个方向有太重的过了35岁就会优化的危机。在这里的工作生活平衡算是比较理想了,我个人的上班时间大概是早上8点半,下班就5、6点。当然,如果遇到一些比较急的事情或者比较关键的项目节点,该加班还是要加班的,包括周六周日、节假日偶尔也会加班,甚至有驻场,但强度没有互联网那么大,也不是特别的频繁,相应的收入也低些,总体来说目前的生活工作节奏尚可。
工作的关系,我的工作需要去各个地方的电网公司进行技术交流、故障分析等,帮助解决他们的问题。工作10年来,足迹已遍及27省、67城市,收获不一样的经历。

去往深山的故障现场

去往高原的电网

途经雪山
在电气领域“搞”编程
上班后,虽然我的工作内容偏向技术研究,完全不涉及业务开发,但我偶尔也会用Python、shell脚本写点数据处理的小工具、研究下优化算法,这期间也写了几篇有关的笔记。
Python是在我上大学的时候对着书自学的,我觉得Python的入门非常友好,对于我来说,使用Python来处理日常工作,处理数据或者写报告,给我带来了日常工作效率的提升。
这是Python在电气行业比较浅显的应用,往深一点说,像是机器学习或者神经网络都是计算机行业领域的学者专家们先提出来的,而这些概念在传统行业其实都是可以拿来参考的。比如我们也会遇到一些波形分类的问题,在这个问题下,已经有人用神经网络或者机器学习的办法,进行了相关模型的研究。我们可能只需要去了解它的工作原理,怎么去调函数就可以了,当然后续我们也需要更进一步地对某些环节思考如何优化。
这是我们电力行业使用计算机的相关知识一个非常具体的例子。
我觉得电气行业还有很多的技术问题并没有研究得特别透彻,因为电力行业有一个非常大的局限,缺少真型实验,因为没有人能把一个电网直接给我做实验的,这是不现实的事情。实际工作更多的是去加装一些监测装置,拿到实测数据做一些模拟试验。
电网中运行着大量的设备而且十分庞大,有很多是加装了监测装置,积累了大量的监测数据,它的价值是非常庞大的,我觉得我们未来可以用计算机专业的知识把这些的数据的价值给挖掘出来。这么多设备装在这儿,我们面临很大的问题——我怎么知道它是正常的,还是它出现故障了、有缺陷了,故障点在哪儿,这些都是电网行业面临的实在的问题。通过这些数据来去反推电网的状态或是排查故障原因、故障点等。通过计算机专业的模型去帮助解决传统行业的问题是十分可行的。
传统行业可能有传统的一些办法,但是可能也会遇到瓶颈,因为电气工业革命已经有100多年了,计算机比它更为年轻,在不断的进化当中,用计算机专业的技术去解决电气的问题,这个方向将来的前景是非常好的。

上班十年走过的一些地方
对非科班但想学习技术同学的建议
第一,我觉得如果上了大学,无论兴趣在那里,本专业的课程还是要好好地上。
第二,光学课程是不够的,一定要参与到实践的项目里面来,不管是自学看网上的教程,还是实际参与到一个具体的项目当中,必须有实操环节。我认为光看书是没有用的,必须要跟着一个项目来做,在实践中写代码,才会对技术上理解有所加深。学某一个具体的语言,或者某一个技术框架的时候,做一些练习题也是可以的,但光做练习题是不够的,还是要具体到项目中来,不管是做比赛的一个项目,还是说为了一个教程所做的玩具性、演示性的项目都可以。
第三,如果是对一个具体的、陌生的领域完全不了解的时候,我建议看书的时候先只看第一章,了解这个技术或者这个技术框架的发展史,它诞生的前因后果是什么,把它的历史了解一下,它是为了解决什么样的问题而出现的。把第一章的技术背景尽可能地多了解,对之后的深入学习有提纲挈领的作用。
现在,计算机行业互联网+、AI+的风潮刮到了各行各业,传统上难以解决的问题,都在计算机行业里汲取AI这口神仙水,不管有用没用,都在大炼“AI模型”缓解技术焦虑。而我仍然想干着Python一样的胶水角色,把计算机行业的技术应用到电力领域来,即使将来老了仍然保持热爱。
故事征集:
《开发者说》是我们最新推出的一个访谈栏目,邀请了一些国内外有趣的程序员来分享他们的经验、观点与成长故事,我们尝试建立一个程序员交流与学习的平台。
欢迎大家推荐朋友或自己来参加我们的节目,分享与对话是一件利他又利己的事。
编辑于 2025-09-29 12:47・浙江
3006

被折叠的 条评论
为什么被折叠?



