9年前的那位冠军说,要做有思想的“攻城狮

因为科技是阴天 2024-04-07 07:12:54

Alan的“职业履历”很简单。

本科学的是通信工程,却偏偏喜欢软件编程。大四保研,有点“闲”时间,他就自掏腰包重构了校内流量最大的网站,而且使用至今。研二又受人撺掇,抽空组团参加了“德州扑克”比赛。

没想到,不会打扑克的Alan,拿了“2015华为软件精英挑战赛”冠军,还顺便得了华为offer。再之后,他好像消失了一阵子。直到2024年,第十届华为挑战赛前夕,Alan才回归视野。这时候,好多人才知道他这些年在干什么。

01

要做有思想的“攻城狮”

9年之后,“华为软件精英挑战赛”的首届冠军团队成员Alan,再回忆起那场以“德州扑克”为主题的比赛。他真的想对年轻的选手说:“软件工程师要有一点工匠精神,但更要有‘思想’。”

这是经过多年磨砺,Alan才明白的道理。

“软件是思想的载体。”Alan接触过无数天才软件工程师,他们的脑子里,总能蹦出有创意的想法。“而且他们还有一项特殊的能力,将代码融入场景的能力。他们总能将‘思想’,转变为‘动力’,转化为提升场景价值的动力。”

不仅如此,Alan在他们身上看到的不是技巧,而是更高的境界:“我也能看见大师级程序员,境界更是上升到大巧若拙。他们在以最朴素的软件算法,为社会创造价值。”

02

“自掏腰包”建网站

但这要从14年前说起。

“真正意义上,写的第一行代码,是接收网页请求。”Alan高中时开始接触C语言。之后升入一所工科氛围很浓的高校。而且没有多想,大一入学,Alan就加入科技协会。“感觉周围都是技术牛人。”

Alan早期的作品,类似智能家居软件,打开手机APP,就能让微波炉自动发光发热,就能让空调在你下班前自动工作起来。只不过,这还不是Alan的得意之作。甚至有一度,他还比较跑偏——“我对每种技术都有兴趣,都想着去了解学习,但每种技术都不精通熟练。”

改变出现在大四。

大四,已经保送本校研究生的Alan,有点“闲”时间。作为技术负责人,他组建团队,接手并开始重构学校流量最大的、公益性质的校内论坛和资源分享网站。

“学校几万学生,每天都有一半人上去逛一逛,”Alan感觉以前做的是“玩具”,那时才开始做“产品”,要统筹考虑用户体验、UI界面、后台性能,以及系统安全性,而且有些老应用应该合并,有些新应用要抓紧上线。

甚至,这项公益事业真是要自己花钱,学校提供了机房和机架,但没有多余的预算,“我们只能去电子城,淘买二手服务器,买电视直播卡,”Alan说:“还要经常泡机房,解决磁盘故障。”

期间,还真的受到过黑客攻击,遭到过数据破坏。“所以那时就要更精深地研究技术,更全面地考虑问题。”至于应用效果——反正Alan毕业多年,该网站一直稳定使用至今,而且没再做过大的调整。

03

那场“德州扑克”

转眼又过两年。

校内论坛和资源分享网站,此时已顺利交付使用。研二下学期的Alan,感觉又有点时间,“高校间有些技术团体的交流活动,”Alan从他们那里,听到“华为软件精英挑战赛”的消息。“也没多想就去报名,主要目的是练手。”

此前的Alan,也一直热衷于比赛,曾经获得学校科技大赛特等奖,但这次他说要“练手”,真不是谦虚——规则和题目都比较特殊,“至少在初赛前,也没想什么奖不奖。”

首届“华为软件精英挑战赛”,题目是“德州扑克”。团队需要设计一套,具有独特算法的“牌手程序”——而且裁判只负责制定规则,并不需求参与打分。选手间相互PK,胜负立判,胜者获得更多积分。

但问题是,Alan并不会打德州扑克。

“短时间内,要熟悉规则,还要形成牌手风格。”Alan说出了其中的难度,也说了他们的经验:“我们团队编写的软件,代码量并不算大,可能胜在算法调优,或牌手策略建模。而且团队还通过大量的训练、模拟、复盘来优化参数。甚至需要将重点轮次,关键局拿出来进行人工研究,表现不好必须找出原因。”

现在回看,这样的经历也确实挺有意思,这让Alan悟出了一些道理——程序员的性格或激进,或保守,都会影响软件的风格。程序员的思想,更是决定了软件的境界;而且好软件都是磨出来,必须经过一轮又一轮的打磨,才能磨平所有的棱角。

不过,也略有遗憾。

“因为没跟真人进行模拟对练。当时的那套软件肯定不算完美。如果跟真人对弈,不一定能赢。”Alan并不认为他的软件,像战胜李世石的AlphaGo。但不管怎么说,Alan还是获得了冠军,首届“华为软件精英挑战赛”的冠军。

“冠军奖金是20万,除了之前赚的一点零花钱,这算是学习软件以来的第一桶金。”Alan在说奖金时,语气那叫一个平静,但程序员的回答总是那么有可爱的翻转——“还要交税。”Alan说。

04

冠军的选择

顺便,Alan获得了华为的offer。

作为首届“华为软件精英挑战赛”冠军,拿到了华为的offer,但Alan也面临选择。通信专业的他,去华为算是相当对口,无论进入哪个部门都是不错的选择。

最终,Alan还是选择了基础软件相关的岗位。

“设计校内论坛网站时,就接触过一些基础软件的皮毛,但接触不到系统的内核,当时就是觉得这样的系统很厉害。”Alan说:“因为看不清,就越想看清。所以入职华为,就选择了技术难度最大的基础软件。”

2015年,Alan入职华为。而如Alan,以及Alan前辈们的选择,也就有点像当年于敏、朱光亚、邓稼先、郭永怀等老一辈的“两弹一星”专家的选择——要耐得住寂寞。

“基础软件是数字世界的底层基础设施,在稳定可靠、安全、极致性能等方面,有着极高的要求。尤其是某些基础软件产品,构建周期更长,实现难度更大,更是考验公司的战略定力。”Alan谈了他的选择。

也正是因为这次选择。过去8年,Alan经历了软件开发、系统设计、服务交付和维护等岗位,参与了产品定义,架构设计,并与高校老师、专家,共同研讨产品的技术创新方向。“但好软件都是磨出来的。”Alan说。

2020年,Alan参与了华为兄弟部门的A项目,但华为这家公司,向来是亲兄弟明算账,向来是“以客户为中心”。如果不能满足最终客户的要求,即使你是亲兄弟,即使是自家研发的产品,也坚决不能上线。

果不其然,项目哪有那么多一帆风顺。

系统大规模上线前夕,测试团队发现严重的“内存资源膨胀”问题。

“项目组主导了紧急技术攻关,并对系统中的内存管理模块进行了全方位的重构,”Alan说:“经过一个月的原型验证以及3个月的产品研发,最终解决了内存膨胀问题。甚至相比业界同类产品,在所有典型场景下内存使用率大幅提升。”

这也让Alan想起,他参赛的那届“华为软件精英挑战赛”,一套德州扑克牌手程序都要不断打磨,何况是庞大的软件系统。“现在看来,就是数据结构设计时,还没有考虑完备。100个场景中,有99个场景都没问题,但一个场景中出现了‘内存资源膨胀’,用户也不会信任你的产品,更极有可能叫停项目。”

05

昨天、今天、明天

经此一役,Alan更为成熟。

而再次回到“第十届华为软件精英挑战赛”,首届冠军Alan,现在更想对年轻的选手说:“基础软件首先要有正确的系统架构。基于正确的架构之上,才是持续不断的应用场景打磨。”

当然,还有未来。

对于未来即来的数智世界。Alan更想说:“‘大模型’不是敌人,而是朋友。使用‘大模型’将成为软件工程师能力的一部分。未来,软件工程师不是一个人在战斗,而是与‘大模型’并肩战斗。”

0 阅读:0

因为科技是阴天

简介:感谢大家的关注