logo
people
本期封面人物:王淳彧

05后开发者王淳彧:码龄六年,热爱开源

来源:Gitee 封面人物 丨 2023-07-13

刚中考结束的准高一党;「05后」开发者;小学四年级自学 Python,码龄已经 6 年的 GVP 项目作者。

你还记得初中的你都在干些什么吗?
是好好学习为考个好高中奋斗着,还是在电脑前和朋友合作打怪,期望能早日提升游戏段位;是正望向窗外篮球场畅想着下课冲到操场挥洒汗水,又或者扯着前桌女孩的头发,试图吸引她的注意力......
无论是哪一种,相信大多数人的初中都还处在懵懂的年纪。而在 Gitee 有这么一位中考刚结束的开发者王淳彧,他在别的同龄人玩乐之际,自学 Python,已经拥有六年码龄,如今爱上开源,不仅为开源社区做贡献,还开发了自己的开源项目,成为 Gitee 众多开发者中不一样的存在。
正值暑假,本期 Gitee《封面人物》决定将视角聚焦在这位中学生的身上,我们好奇小小年纪的他如何看待「技术世界」的,又是什么吸引他去参与开源?以下是 Gitee 与他的对话:

源于好奇,不止于好奇

淳彧你好,恭喜中考结束啦!Gitee 的小伙伴听见「中考」这个词,肯定会很惊讶,先请你做个自我介绍吧。

王淳彧: 哈咯各位 Gitee 的小伙伴!我是王淳彧,一位 2007 年出生的开发者,也是一名刚刚结束中考的准高中生,同时还是开源团队 WaterFlames 水焰的创建者。

个人主页地址:https://gitee.com/epeiusss

目前,我参与的开源项目包括自创的对话机器人 RingRobotX 项目(被评为 Gitee GVP )、基于 Python3 的一键建站系统 Wing 项目,以及 Waddle 编辑器

你是什么时候开始接触与学习「编程」的呢?

王淳彧: 小时候家里有一台电脑,看着家人天天用电脑,我就跟在他们屁股后面学。直到有一天,我爸给了我一台淘汰下来的电脑,我便有了亲自上手的机会。

我最开始用电脑折腾的是「制作游戏」。不知为什么,当时上小学没多久的我竟然会产生这样的想法,或许是因为我游戏打的是真的菜(现在也是),所以自己想要做出一个游戏「难倒」别人,又或许是出于好奇心。

最开始我主要依靠「网络搜索」来探索游戏制作的过程,很快就了解到 Unity(实时 3D 互动内容创作和运营平台)。但那个时候我并不知道做一款游戏还需要「编程」,所以只能天天看着教程里的一堆不认识的字符发呆。

大概四年级的时候,我接触到 Scratch(少儿编程),也是这时我才知道想成功制作一款游戏还得掌握「编程」这项技能。于是我开始慢慢摸索,不久竟然学会了如何操作 Scratch。之后不知不觉间,我也学会了很多新的操作,或许这就是探索的魅力吧。

你在博客中说过「在家里闷了几个星期,就自学完 Python」,能给大家分享一下自学的方法吗?

王淳彧: 自学 Python 我大概用了三种方式。

第一种是视频学习。当时我发现一些视频平台有许多不错的 Python 教程,于是我尝试跟着视频一步步学习。看一遍视频内容,自己再试一遍,花了一段时间就学完 Python 的基础内容。

第二种是阅读代码。消化完 Python 的基础后,我开始进行一些简单的实战训练。主要是找到自己感兴趣的项目,阅读项目代码,并尝试复刻。

有趣的是,当时我看到一个很有意思的项目,打开之后发现项目链接在 Gitee,也是从这时起意外接触到了 Gitee 和开源。之后我自己做项目,也选择在 Gitee 上开源。

第三种就是善用搜索引擎。进行实战练习的时候,一些项目时常会出现报错。这时候我一般用搜索引擎「搜一下」,看看有没有其他开发者遇到类似的问题,通常尝试过他们的方法就可以将这些报错解决。

当初的你是如何「入门」开源的?请和我们分享 1-2 件参与开源的小趣事吧。

王淳彧: 第一次入门开源,应该是做 lingkong-robot (目前该项目已经停止维护)的时候。

那会刚开始接触开源,只知道把项目放到仓库里,也不知道什么是 Readme、开源协议等等。后来我发现别人开源仓库显示的信息总比我的多,这才逐步完善。

最初团队里只有两位成员,我们俩主要使用开源仓库来协作。但是当时不懂得区分分支,所以全部的工作都在一个分支上进行,以至于后面出现很多次「分支冲突」的情况。直到经过自主探索与学习,我才学会解决冲突的方法,这才减少协作过程中出问题的几率,也提高了协作的效率。

没有重复造轮子,怎能转化创新

我们来聊聊「RingRobotX 灵音」这个项目吧,是在什么机缘下开始的呢?

王淳彧: RingRobotX 灵音是一个采用单轮对话设计的中文模块化语音机器人框架。目前参与这个项目的核心成员只有两位,是我和折腾调;参与贡献的成员一共有五位,所有参与贡献的成员都是初中生。目前是由我来做「分块功能」,折腾调做整体的模块连接。

开发这个项目的机缘主要是我发现了个有意思的项目「小蓝机器人」,这是一个由 Python 做成的语音对话机器人。

当时我才小学毕业,小蓝机器人的开发者「蓝之酱」是初三。我就在想,人家是个初中生就可以开发出这么优秀的项目,那我和他也没差几岁,应该也能做吧。于是我开始研究,最后逐渐开发出这个项目。

有件搞笑的事是,当时我看了「蓝之酱」所有的采访视频,其中某家媒体采访他,在视频画面下方,小编写了一句话:「桌面上放的就是小蓝的大脑了」。我当时啥都不懂,只看到画面最显眼的是一个带屏幕的音响,再加上曾描述过「小蓝」是一个带有屏幕的音响,所以断定这就是小蓝机器人。

实际上这只是某品牌的智能屏,但是我却幼稚地以为里面装了小蓝。直到我自信打开 QQ 聊天,一脸正经把自己的分析发给他,结果给他看笑了,他也立刻纠正我的误解。

不过这次误会也帮我恶补了这方面的知识,后来也是他支持着我把项目做完,可以说「蓝之酱」是我开源乃至编程的领路人,现在我还依旧视他为偶像。

项目开发过程发生过什么难忘的事吗?

王淳彧: 其实,项目开发过程中还是经历了一些坎坷的。

例如,Snowboy 是本项目中很核心的语音唤醒功能,也是少数的非 API 的功能。因为语音唤醒对于隐私的要求很高,所以我们为了保证唤醒速度,又不想扯上隐私,便使用了完全在本地进行处理的语音唤醒引擎 Snowboy。但是使用 Snowboy 意味着需要安装多个环境,才可以支持它在本地运行。

然而作为一个小白,当时仅是研究在本地环境安装上,我就花了三四天。之后我还发现 Snowboy 只能在 Linux 下使用,于是被迫给电脑换了 Deepin 系统。原本自以为跟着安装流程走,最终效果应该大差不差吧,结果在 Ubuntu 下,项目完全行不通。这时候我也才意识到,网络、设备、系统等都可能引起环境安装的各种问题。

至今,我也只能找到一个「相对平衡」的解决方案,达不到一劳永逸。不过回想起那几天,因为连续失败导致心态崩了好几次,直到最后语音唤醒被成功触发的那一刻,我简直难以掩饰内心的激动。

不过这个项目一直有个弊端:无法在 Windows 下运行。这问题内部曾分析过,主要是因为使用的离线唤醒引擎 Snowboy 不支持 Windows。所以接下来会考虑用一些人工智能库把这个东西自己做出来,还有现在比较流行大模型,之后也可能会在项目的回答内容生成部分使用大模型。

你觉得开发、运营与维护一个开源项目最快乐的是什么?最难的又是什么?

王淳彧: 最快乐的大概是能把自己以前想都不敢想的东西实现出来。当程序能一次又一次跑通,团队的每一位成员都十分高兴。至于最难的应该就是架构设计与攻克一些技术难关。

例如,最初进行架构设计时,我们只考虑了让程序能够运行,但是没考虑后续如何加入更多功能,导致耗费了很多精力。直到我们重新设计了架构,把各个模块进行提取,同时在核心程序中预先设计了一些接口。因此在新架构下,加入新功能变得简单多了,甚至其他开发者为我们的项目增添新功能的时候也能做到简单快速。

你怎么看待与应对别人对你开源项目的「负面评价」,例如项目创新不足、重复造轮子、不够成熟等等。

王淳彧: 面对这些负面评价,我自己的处理办法是稍微「做一些辨析」。如果是针对项目本身确实存在的问题,比如功能不完善、不够创新等,我会带着团队一起去思考、解决。

但是面对「重复造轮子」这种评价,我一般看一眼就过去。我觉得在当今时代创新虽说重要,但并不是评判一个项目的唯一标准。 如果将一个已有的东西做得更好,或者用其他方式进行实现,那么重复造轮子并不是坏事。
同时我作为学生,经历这个过程也是一种学习,没有重复造轮子,怎么能学到更多东西,并做出创新转化呢。

开源后浪涌现是一种动力

你如何理解「开源」与「开源社区」,你觉得它们带给你什么?你理想中的开源社区是怎样的?

王淳彧: 开源给我带来了开放的精神,现在我习惯性以这种开源的精神为准则来干活。同时,开源对我来说也是一种「为社区贡献」的方式。

我相信每个做开源的人都有为社区贡献的决心,也是有了一个又一个人的开源,使得社区拥有了丰富的知识财富,才促成一个优质的开源社区,所以我认为开源社区更像是所有人知识结晶的集合地,也是每个开源开发者精神的象征。

对于一个理想的开源社区嘛,我希望是每个开发者都为这个社区都献出一份力,共同打造一个优秀的技术氛围,又或者不只是技术,任何的开源都可以。

目前 Gitee 涌现越来越多的「05后」开发者,你怎么看待开发者年龄趋势年轻化的现象?会编程的年轻人越来越多,你感受到的是压力还是动力?

王淳彧: 我觉得挺好的,未来技术力将会很重要。越来越多年轻的开发者提前接触「编程」,不仅可以培养自身的技术能力,也会为未来技术世界的变革带来更多可能性。

所以会编程的年轻人越来越多,我更多感受到的是动力,即使有压力,也会转换为动力。 而且我挺为年轻力量加入开源队伍而高兴,我希望大家都能为开源注入新鲜血液,这大概也是开源世界所期待的后浪吧。

去年,Gitee 星球分享过一个开源图形化编辑器——「CoCo Waddle」,这个项目是由平均年龄 13 岁的初中生与小学生共同开发维护的,你也是贡献者之一。我们也很好奇,你们是如何参与、沟通与协作的?

王淳彧: 群聊、文档与开源仓库都是我们推动项目的重要载体,我们也是在这三个载体中每天进行协作。

我们通常会用群聊交流灵感,大家对每个人提供的灵感进行讨论评估;我们还会用文档来推动整个项目的进行,比如在群聊中讨论后觉得可以做的东西就会放到文档里,最后积攒为一张代办表,通过开发去实现需求,设计去做设计稿,产品去做文档。等到最后所有都完事了,项目就可以开源在 Gitee 仓库上,吸引更多开发者共建了。

成绩排名是最大的危机感

你是个「学霸」吗?平时如何平衡开源与学习的?

王淳彧: 我不是学霸啦,学习中等而已。开源与学习还是学习还是占多数,因为现在同龄人在学习方面真的太卷了,如果不在学习上用点心的话,未来很难过得轻松。

现在学历很重要,进入公司人家首先看的就是学历,能力在学历面前不一定就代表了一切。而且我一般会在周末或假期做开源相关的工作,上学期间很少做啦。

除了开源,你还有哪些兴趣爱好?

王淳彧: 我还会设计、写产品文档、做音乐、制作视频等等。我也有一个设计团队,正在尝试自己做一些盈利性质的产品。我觉得我的技能点应该还挺满的哈哈,啥都喜欢干,估计也是我这个年龄的人的一种特点吧。

你有危机感吗?若有,你觉得你这个年龄阶段的危机感主要来自于哪里?

王淳彧: 危机感是有的,更多来自于其他同学更好的成绩。尤其对于我们这个年龄段的人来说,「成绩排名」就是最大的危机感,毕竟这些也是决定我们未来人生走向的东西。

如果让你进行自我评价,你认为自己是个「天才派」还是「努力派」?

王淳彧: 努力派吧,虽然可能从小接触编程使得自己展露出这方面的「潜质」,但是个人觉得要提升技术力不能只依靠那些潜质,还得长久的学习,毕竟从来没有人天生啥都会吧哈哈。

相信开源的无限可能

今年 「Gitee 五四青年」访谈 中,我们发现你是个自律且执行力极强的人,很好奇你内在持续驱动力来自于哪里?

王淳彧: 我觉得主要来自于对目标的坚持。例如,在中考前有对中考努力的坚持,做开源项目的时候有对完成项目的坚持。我做任何事都有对一个目标的坚持,这或许是最能支撑我持续下去的东西。

对于编程,其实还有内在兴趣的驱使。「每一个想法都想要实现」的兴奋感也是自己坚持下去的动力。如果往外看的话,那或许还有周围人对自己的期待吧。身边期待我未来能够成功的人太多了,亲戚、网友等等都有。

其实我压力挺大的,但是当压力转换为动力时,还挺能持续驱动我向前的。

访谈中你谈到「以前追求的是有趣,现在想要创造价值」,你觉得怎样参与开源才称得上创造价值呢?

王淳彧: 在之前的访谈中,我曾提到我们的开源团队现在会逐渐把「评估」流程加入到项目制作中。我们一致认为,如果项目功能是对用户有益且能够帮助他们解决一些问题;或者项目对开源社区的的技术进步有意义,甚至为社区带来进步;又或者你写的东西能让别人得到启发等等,这些都是有价值的。

要说 「在开源中创造价值」,其实就是在你所认为有价值的事物中,寻找到方向并深挖。 比如说,一个有价值的想法,我会尝试实现它,并开源到社区;或者一个有意思的技术方案,我也会去想办法落地并开源。在这个过程中,做出有意义的东西并尝试开源,都算是给社区出了一份力,或许这就是所谓创造价值。

其实这东西我自己也没有一个更准确的定义、更明确的方法论,不过我更希望自己在之后的实践中能够持续探索价值、尝试创造价值,也算是一个梦想吧。

你也谈到自己未来还是想做产品经理的角色,你有思考过未来的职业方向吗?或者说你想成为什么样的人?

王淳彧: 说实话,未来的职业方向现在还真不好下定论。首先我会的东西就挺多的,产品经理、开发、视觉设计、运营等等我都尝试过,这些也是现代互联网企业较为常见的职业。

如果要从中选一个还真不好说,或许真到那时候我会现实一点,选择一个能养活自己的,又或者是理想一点,选一个自己最热爱的。

关于成为一个怎样的人,我更希望自己未来能够坚持开源吧,无论是开源这种行为还是开源这种精神,都应该坚持下去,因为我相信开源具有无限的可能。

封面人物小档案

  • 人物:王淳彧
  • 码龄:小学四年级开始编程,如今码龄已达 6 年
  • 爱好:编程、开源、设计、摄影、做音乐,简直技能点全满
  • 开源项目:中文语音对话机器人框架 RingRobotX 灵音,GVP
  • 想说的话:这是我十六岁前的故事,下一次再写我的故事就不知道是什么时候啦!敬请期待未来的我吧!
文章内容为受采访者独立观点,不代表官方立场。
本文版权属Gitee.com 所有,转载或内容合作请联系 git@oschina.cn , 未经授权不得转载、摘编或利用其它方式使用本文内容。违反上述声明者,将追究其相关法律责任。
bg

你可能感兴趣的封面人物

查看全部
发布评论前,请先 登录
精彩评论 ( 39 )

搜索帮助