“技术为王”走不通晋升 CTO、创业这条路,一个 24 年 IT 老兵的码农生涯!| 近匠...

95c688bb4d7795dadf7ceeaf6a94514b.gif

受访者 | 马勇          编辑 | 屠敏

出品 | CSDN(ID:CSDNnews)

拥有 24 年编程经验的马勇,是一位妥妥的技术老兵,他做过软件工程师,深入安全领域,出来创过业,当过技术管理者,兼职担任研究生企业导师,出版过三本著译书籍,发明过多项专利,幕后也是一位顶级期刊审稿人......

在他的身上,丰富多彩的人生经历难以尽述,但在兴趣的驱使下,马勇依然不断开拓新的征程,目前正在基于大模型的 Agent 方向进行新技术的研究与落地。

在今天的《近匠》采访栏目中,我们将走进这位高级工程师、数据安全专家和人工智能学者的程序人生,领略他在职业生涯中各个阶段的不同思考,解锁大模型时代与网络安全的最新趋势,攻略新程序员的进阶之道。也希望当代技术人在职业发展路径中可能存在的迷茫,能在此处获得一定的启发。

“技术为王”走不通晋升 CTO、创业这条路,一个 24 年 IT 老兵的码农生涯!| 近匠..._第1张图片

马勇

bf8b197724f291782ce24c39b23055a1.png

编程入门篇:学生时代的启蒙,兴趣成为最好的老师

兴趣非常广泛的马勇,从未想过 1996 年还在沈阳上学时期的他自接触过学校最新的 486 计算机之后,便会在程序员这条路上一直走到今天。

起初,“我的业余爱好是电子制作”,马勇回忆道。毕竟那时对世界充满好奇的青少年们,倘若亲自动手制作出一些东西时,成就感爆棚。

“技术为王”走不通晋升 CTO、创业这条路,一个 24 年 IT 老兵的码农生涯!| 近匠..._第2张图片

图源:Image Creator from Microsoft Bing

遗憾的是,在上学期间,由于条件的限制,他的这个爱好没过多久便被搁置了。后来好在随着学龄的增长,也有机会接触到学校当时拥有的计算机设备,一切也都发生了改变。马勇发现计算机比电子制作更有吸引力,仿佛打开了通往新世界的大门。

于是,他开始尝试通过书籍、自学等多种方式开始了编程之路。“我还记得我最早接触的编程语言是 C 语言,使用的开发环境是 Turbo C 2.0”,马勇说道,“学习了一段时间后,我动手开发一个仿真操作系统,这是一款用于 DOS 命令练习的软件。在开发过程中,我发现自己缺乏系统的数据结构和算法知识,此时我也意识到系统性理论学习的重要性。”

后来,马勇正式就读于北京大学的计算机及应用专业,开始了理论学习与实践相结合的道路,期间他研究过类似于阿里巴巴的 B2B 网站,也基于 PHP、JavaScript、C++ 等语言开发过一个电信计费系统。

在马勇看来,学习这条路没有捷径可走,只有用对的方法,往往才能事半功倍。

在整个学习过程中,马勇最常采用的方法是目标驱动,其在不同阶段给自己设定一定目标,并朝着这个目标不断前进。其中,令他印象深刻的是《Turbo C 技术大全》这本书,那时的他将“吃透”这本书作为一个学习目标。“我翻阅了无数遍,最后书页起毛,厚度变成原来的近 2 倍。直到今天,我对书中记载的 C 语言运行时函数的描述仍然记忆犹新。”

对于马勇而言,他坚信「作为一名计算机行业的从业者,能够走得更远的动力只有兴趣。兴趣是最好的老师」。这种信念驱使着他在学习的道路上持续前行,不断深挖自己对计算机科学的热爱。

71182dd0f868f317ed11f1a6fea7039e.png

技能晋升篇:从软件工程师到 CTO,要跳出“技术为王”的思维定式

那时的马勇和大部分计算机学科学生一样,从学校毕业后选择软件工程师作为职业。在技术发展的路线中,有两个主要的方向可供选择:

  • 一是成为资深技术专家。

  • 二是技术管理者。

现如今回过头来看,马勇认为,要成为资深技术专家,需要不断地提升自己的技术理解深度和经验,成为在某个领域非常专精的专家;如果希望成为技术管理者,则需要具备领导力和技术战略能力。领导力最初来源于组织的任命,随后源于自己的技术理解能力和人格魅力。

当然,作为技术人,两种发展方向也可以兼得,马勇便是这样一步一个脚印走过来的。

只不过需要注意的是,在从软件工程师成长为 CTO、技术管理者时,马勇表示,除了因为性格原因无法胜任技术领导者角色的少部分人外,大部分人需要在早期职业生涯中积累技术影响力,并在行业中建立一定的知名度。当然,个人的技术能力是基础。后期需要培养自己的技术战略感觉,能够感知到技术发展的脉络,并为企业带来技术创新的动力。

作为一家企业的技术掌门人,需要深谙企业中的创新需要找到一个适度的平衡点的道理,过快的创新可能会浪费资源,无法为企业创造价值;过慢的创新又会被同行竞争所淹没。因此,「需要对技术发展方向和企业自身资源有清晰的认识」是成为技术管理者必须具备的基础能力之一。

基于此,马勇对正在从软件工程师岗位向技术管理者岗位晋升的开发者也分享了两点建议:

  • 从技术能力的角度来看,开发者们需要对组织的战略或项目要求有清晰的认识,能够将产品需求拆解为技术需求,并具备系统架构能力。系统架构能力需要从各种基础能力中培养,例如对计算机理论的理解、各种系统的开发经验(如前端、后端、数据存储)以及与客户端应用层和内核相关的技术。以目前的技术发展来看,除了传统技术外,对人工智能也需要有足够的理解。人只能在自己的认知范围内获得能力,这要求技术管理者不断扩大自己的认知。“我个人每天早上至少花两小时浏览新的技术发展,并阅读相关的学术论文以了解前沿方向。”

  • 从领导力的角度来看,初级领导者需要跳出“技术为王”的思维定式,从自己亲力亲为变成对团队的支持者。他们需要拆解团队目标并分配给合适的人,从追求个人成功变成追求团队成功。技术领导者不仅仅需要领导技术,还需要领导人。这需要平等对待团队成员,尊重技术能力强的人,帮助技术能力较弱的人,并在必要时协助团队成员解决生活问题,为团队目标的达成提供资源和心理支持。技术管理者要承上启下,展现自己的人格魅力。性格暴躁的管理风格源于自身的不安全感,或者说明管理者自身能力不足以满足团队的管理要求。

27d490a81c076ea827b9826fe98464e7.png

创业篇:人、钱和商业模式是技术人创业必须过的三道坎

当谈及程序员的另一条出路——创业,有过三次创业经历的马勇对于其中的不易,深有感触。

初入创业大门时,是马勇成为软件工程师的第三年,那时的他主要从事 Web 开发和部分 C++ 程序的工作。在这个过程中,他意识到了 Web 安全的重要性,需要一款有效的工具来进行 Web 安全检测。

因此,马勇便与朋友一起创办了一家 Web 安全扫描软件公司。然而,由于当时市场发展期还未到来,他们的业务就提前结束了。

之后,马勇又创办了一家技术孵化类企业。因为在上一次创业过程中,他深刻体会到技术人员与投资人之间很难对接起来,于是这一次的创业目的是为了帮助技术人员更好地与资本对接,并提供技术创业指导。同样遗憾的是,随着当时技术、投资环境的变化,这一家公司也不得不以失败结束。

第三次创业,马勇还是回归了自己一直根深的安全领域,他发现研发过程中业界存在一些核心安全技术问题尚未解决,于是通过自己的研究,找到了一些技术方案,最终和同事一起创办了一家从事数据安全业务的公司。经过 6 年的努力,他们的创业公司被一家著名的安全公司收购。这一次的失败,马勇将其归因为缺乏除技术以外的其他能力,譬如市场能力,当时公司的销售一直没有起色,无法快速发展。

“技术为王”走不通晋升 CTO、创业这条路,一个 24 年 IT 老兵的码农生涯!| 近匠..._第3张图片

在当前竞争激烈的市场中,马勇认为,很多技术人员之所以创业失败,是因为他们只看到了技术,而忽视了市场。事实上,创业除了有一些幸运因素之外,提前做基础功课非常重要性,宛如做研究一样,需要充分了解技术发展和现状,发现技术点和市场机会,只有将技术与市场相结合的公司才有可能取得发展。

因此,对于那些想要创业的技术人员,在马勇看来,首先需要解决三个问题:人、钱和商业模式。其中,人指的是需要有志同道合的人一起努力,并在努力之前就条件进行谈判,避免后期的冲突;钱当然是指第一笔种子基金和后续的投资来源;商业模式是公司的核心能力,甚至包括公众影响力,需要引入具备这种能力的人作为合伙人。

结合当下 AI 创业,OpenAI 的 ChatGPT 及其后续的模型和工具开创了人工智能的新时代,但 OpenAI CEO Sam Altman 曾预警过,「简单包装 OpenAI 的公司注定无法长久生存」。

对此,马勇也非常认同这一观点,即每一次 OpenAI 新技术的发布都会结束一些小公司的商业模式,不过,这也带来了一些新的机会。他指出,如果有资源,创业公司可以从基础模型训练开始,比如百川和零一万物;如果资源有限的小公司,就应该放弃基础训练和无谓的微调。很多小公司只是利用有限的资源对网络上的训练数据进行训练,希望获得成功,这是不现实的。业界有一种说法,小型创业公司应该利用现有的模型资源解决某个垂直领域的问题,而不是去训练模型。对待模型的正确做法是:保持关注但不要急于行动,根据自身的资源和实际情况选择合适的方式来利用模型。

总来说,创业是一个充满挑战和机遇的过程,技术人员需要具备综合能力,包括市场洞察力、商业模式设计、人际沟通和团队管理等方面的能力。只有不断学习和提升自己,才能在竞争激烈的创业环境中取得成功。

325b7514b0455bec52d06e5fa1c7a9aa.png

机遇篇:大模型为代表的 AGI 技术,会取代人工处理安全事件

在全行业都在深度拥抱大模型、生成式 AI 趋势下,马勇持保留意见并表示,生成式 AI 是否是 AGI 的正确方向还难以确定,但它的进展确实开启了一个全新的时代。

正如比尔·盖茨所认为的,生成式大模型是可以与 iPhone 相媲美的科技进步。iPhone 解决了人与手机之间的交互问题,而生成式大模型则解决了人与 AI 之间的交互问题(通过自然语言进行交互)。

在马勇看来,目前的生成式 AI 中肯定存在一定的泡沫成分,但这并不能掩盖它所带来的可见科技进步。俗话说,外行看热闹,内行看门道。尽管因为炒作,实际上能够从生成式人工智能中真正获利的是那些在 B 站上卖课的 up 主(笑),但这并不能否认它所带来的技术影响。生成式人工智能作为 AGI 的初级阶段,一旦开启,它将朝着大多数人期望的人工智能方向发展。

马勇进一步解析道,大模型的应用主要分为两个方向:RAG(Retrieval Augmented Generation)和 Agent,而 Agent 则是终极方向,可能是通向 AGI 的可行路径,它有可能带来各行各业的变革,真正解放初级脑力劳动。

论及生成式 AI 时代网络安全会发生什么样的改变时,马勇表示,从压缩理论的角度来看,预训练大模型实际上是将训练语料压缩储存在模型中。大模型的训练使用了大量的数据,其中可能包含不良信息和敏感信息。例如,通过大模型可以轻易诱导出个人敏感信息,绕过监控机制获取机密信息等。现在大家关注的角色扮演攻击和编码隐藏攻击等问题也是其中的一部分。传统的安全关注点在于直接信息的安全,而大模型具有一定的逻辑能力和智能性,这带来了更高维度的风险。出于对这种风险的应对,全球主要人工智能强国都已出台了针对生成式人工智能的监管法案。

除了等待相应的法案落地外,作为一名安全行业资深从业者,马勇目前正在领导一个团队训练和调整类似 ChatGPT 的大型语言模型,用于分析安全信息。

随着大模型的引入,马勇表示,它可以解决安全分析中对人的过度依赖问题,显著降低成本并提升分析能力,这是一个有前景的方向。例如,在安全日志分析中,可以将其视为一种时序异常检测问题,但大模型的引入可以深入分析一些隐藏的信息,如信息的变换和特殊编码等。大模型的语言理解能力可以轻松破解这些伪装,这是传统 AI 技术所无法达到的。大模型的初步逻辑能力可以代替部分人工判断,提高分析效率,目前已经成为人类专家的有力助手。随着以大模型为代表的 AGI 技术的发展,它最终将在很大程度上取代人工处理安全事件。

9f84edc7bc8208fe47366a15aae245c1.png

开发者的建议篇:大模型淘汰不了创造者

CSDN:从工程师到管理者再到学者,这些角色转变过程中,驱动你不断学习与前进的动力来源于?遇到过印象深刻的挑战有哪些?

马勇:我认为不服输和好奇心是我最大的动力。作为程序员和学者,这两者是相通的。程序员的工作是研发,实际上与学术研究类似,只是要求的深度不同。

在学术研究的过程中,我遇到的最深刻的挑战总结为“早生晚死”。学术研究是创新和探索的过程,没有明确的方向,需要不断地尝试和试验。早上我们可能充满信心地想到一个新的方法,但经过一天的实验发现根本行不通,这时我们会陷入绝望的状态。然而,那些能够成功毕业的博士们都会克服这种状态,给自己建立起心理支柱,在睡觉前进行复盘并思考另一种新的方法,这样第二天早上他们能够重新充满信心。周而复始,经过几个周期,问题通常就能够得到解决,这可能就是科研的痛苦和快乐所在。能够顺利完成博士学业的人都不会轻易被击倒,他们具备不服输的精神和潜力。我有两个博士同事,在原来的岗位失败后东山再起,普通人可能早就放弃了。当我看到他们失败后就预测他们会东山再起,果不其然他们成功了。这可能就是学术研究给人们带来的最大财富。

CSDN:你认为一名优秀程序员应具备哪些关键素质和特点?你见过的最杰出的程序员是怎样的?

马勇:通过多年的技术实践经验,我认为普通程序员和优秀程序员之间的区别在于技术复盘能力。优秀的程序员不仅能编写代码,还会对技术原理进行复盘并对代码进行重构。他们可能会反复开发相同的功能,但这并不是简单的复制和修改,而是展现了代码重构的能力。只知其结果而不知其因永远只是一个技术工匠,要成为行业专家,必须知道其结果并理解其原因。

一个优秀的程序员不会因为自身的条件而止步不前。我有一个朋友,虽然只有大专学历,但对操作系统内核有深入的理解,他的成名作是一个内核调试器,并且在一家 500 强企业从事编译器研发工作。这些都是软件行业中相当深奥的技术,普通人很容易放弃或回避,但他对此乐此不疲,并具有相当的深度。即使是阿里巴巴的 P11 专家也对他赞不绝口。

CSDN:请推荐一些对你影响比较大或经常浏览的优质资源,如图书、网站、工具资源等。

马勇:在技术平台的选择上,我首推 CSDN 和 StackOverflow。CSDN 作为国内最大的程序员社区,陪伴我一路成长,从它创立开始一直伴随着我,并收获了很多知识与技术。我也会将一些学习心得和小技巧随手分享到 CSDN 上,作为存档和与他人分享。

StackOverflow 作为国际知名的技术社区,我们总能从中获取海外专家的经验和知识。目前的工作和研究倾向于人工智能方向,包括理论研究与工程应用,访问比较多的平台是 HuggingFace(https://huggingface.co/),它的每日论文推荐是比较好的获取业界发展方向相关信息的来源。另一个就是大家都喜欢的开源托管网站 GitHub,我本人也会积极参与一些开源项目,比如 RapidOCR(https://github.com/RapidAI/RapidOCR)与阿里的 FunASR(https://github.com/alibaba-damo-academy/FunASR)等。

作为程序员,调试能力是我们的根本能力。除了使用打印数据进行调试之外,解决复杂问题还需要依赖先进的调试工具。我强烈推荐张银奎先生的《调试大全》这本书,它值得反复阅读,可以帮助我们提升调试技能。另外,一本给我留下深刻印象的书是《DOOM启示录》,它讲述了 DOOM 游戏的作者的传奇经历以及他的专注精神。这本书值得我们学习,它向我们展示了成功背后的坚持和努力。作为程序员,了解产品经理的工作内容是很重要的,这样我们可以更好地与产品经理配合,构建一个融洽的工作环境。我推荐一本书叫《产品启示录》,它可以帮助我们更好地了解产品经理的工作内容。

在工具方面,我没有太多特别推荐的,但有一个免费的论文管理工具叫做 Zotero(https://www.zotero.org/),它非常实用。你不仅可以用它来管理论文,还可以将其作为知识管理工具来管理电子书和网站资源。此外,Zotero 还内嵌了一个很好用的文档阅读器,方便阅读和查看文献。

CSDN:不同的角色背后需要付出巨大的努力,如何能够快速提升相应的技能?这其中有哪些对你影响非常大的人吗?

马勇:学习的最佳方法就是保持好奇心并不轻易放弃。刚开始学习人工智能时,我购买了一本书,但发现读了半天还是无法理解,开始怀疑自己。然而,我转变思路,想到也许是书写得不够简明易懂。于是我购买了多本类似的书籍进行交叉阅读,最终彻底弄明白了。这个经历告诉我不要轻易怀疑自己,有时弄不懂并不是因为自己不够聪明,而可能是因为学习资料不符合自己的逻辑习惯。在学习新技术和理论时,我通常会先找一本较简单的书籍入门,让自己对背景有足够的了解并打下一定的基础,然后再去学习更深入的书籍或资料。这样可以降低学习曲线,更容易成功地掌握新知识。

除了大家熟知的国际名人外,对我影响较深的人还包括国内的两位研发人员:Matt Wu和张银奎。Matt Wu 拥有核物理相关专业背景,目前是国内资深的操作系统内核研发人员,他对技术问题有独特的见解,具备很强的学习能力。作为同事曾经和MattWu共事过多年,技术上得到过他的指导。张银奎是国内著名的调试技术专家,他在逐级理解复杂问题方面的能力令人惊叹,阅读他的技术博客会有很大收获。

CSDN:生成式 AI 的应用大大地降低了程序员的开发门槛,让人人都能成为程序员,那么,对于企业的程序员而言,需要具备哪些新的技能才能不被时代淘汰,你对开发者有着什么样的建议?

马勇:代码类大模型可以极大地提升程序员的工作效率,甚至使非专业人员也能完成编程工作。今年我在北理工进行了一项试验,让一组不会编程的同学仅依靠 ChatGPT 完成编程项目,最终成功实现了目标。

然而,这一成果的前提是使用者必须具备足够的业务知识和相关基础,能够调整和判断大模型生成的代码的正确性和合理性,对程序员的要求并没有降低。大模型只能取代脚本小子或码工,而无法取代具有足够专业知识和经验的真正程序员。

为了不被大模型所淘汰,我们需要提升自己在创意和架构方面的能力。因为大模型毕竟只是机器,它只能对曾经见过的或类似的情况做出正确的决策,对于未知领域则不太擅长。

大模型最大的问题是幻觉,我们应该如何克服这种幻觉呢?唯有我们具备足够的知识储备和能力,才能判断大模型的输出是否正确。提升自己的理论水平和知识广度是不可或缺的。大模型只能淘汰那些下限太低的初级程序员,却不能淘汰他们的创造者。

70ede0087873d84c2b648f965591462f.gif

《近匠》是 CSDN 推出的访谈栏目,其意思即为「走近工匠」,走近深耕于开源、云、AIoT、根技术、数字化转型、前沿技术的工具创造者和技术管理者们,了解他们怎么看待现在的开发工作,分享自己精雕细琢出来的工具有何特点,剖析整个行业发展现状及未来趋势。

为此,基于开源、云、AIoT、根技术、数字化转型、前沿技术等领域,如果您及团队有报道需求,亦或者如果您有对技术趋势的真知灼见,或是深度的应用实践、场景方案等的新见解,欢迎联系 CSDN 投稿,联系方式:微信(hanbb120,请备注投稿+姓名+公司职位)、邮箱([email protected])。

推荐阅读:

▶国产操作系统突围之旅幕后的故事

▶iPhone、Mac 直接体验 Windows?微软重磅推出 Windows App

▶“长寿” AI 产品的背后:请手动编码,少用 AI 模型!

“技术为王”走不通晋升 CTO、创业这条路,一个 24 年 IT 老兵的码农生涯!| 近匠..._第4张图片

你可能感兴趣的:(近匠,程序人生)