宋昊成:聊聊软技能这件事|nStar 专访

开源之夏是中国科学院软件研究所发起的开源软件供应链点亮计划系列暑期活动,每年 NebulaGraph 社区都能遇到众多优秀学子们,他们当中有连续多年与 NebulaGraph 一起完成项目挑战的人,比如:周子轶;也有从 NebulaGraph 开始,开启他们绚丽多彩开源生活的,比如:刘啸;更多的是与 NebulaGraph 初相识,他们的开源第一站来到 NebulaGraph,比如这次的专访嘉宾:宋昊成。 刚认识的时候,宋昊成给了我一个非常阳光的印象:响应及时、积极进取,主动和导师沟通困惑点。再进一步了解的时候,发现他有着不少的亮点…下面,我们来走进宋昊成,看看他是如何获得那些沟通之类的软技能的。

喜好了解新事物的他

NebulaGraph:循例,昊成和社区的大家介绍下自己

宋昊成:大家好,我是来自南京航空航天大学的宋昊成,参与了 OSPP2023 活动,负责为 NebulaGraph 社区编写 Rust 客户端。平时爱好打游戏、看剧、到处旅游。个人特别喜欢了解新的知识,包括:理工科的物理、数学,人文类的历史、政治,各种知识都会看看,所以什么话题都能聊两句。社交上,自认为是偏 i 的(i 就是内向,e 为外向),但是很不幸性格测试出来是个 e,偏向不特别明显。

NebulaGraph:提到旅游的话,你去过的城市你最中意什么地方呢?

宋昊成:国内的主流城市大多去过,个人觉得大部分城市除去特色部分都大同小异。真要说我最喜欢的城市的话,上海吧。作为国内国际化程度最高城市之一,上海十分繁华。它有着独特的城市天际线,高楼大厦,个人觉得非常适合 citywalk。同时,它也是国内外文化交融的地方,这种文化差异碰撞让这个城市有自己独特的魅力,这种各种文化和谐统一的范围让我很喜欢,多元的城市总是有很高的包容性,即便我去旅游,也不会有异乡人的感觉。

还有就是上海让我觉得很新潮,有各种新鲜事在这个地方发生,无论是美食,还是新技术,都能在这里第一时间领略到。下面放一张我站在黄浦江边的照片,远处是来上海必打卡的东方明珠。

开源初见

NebulaGraph:介绍下你在开源之夏做的项目,它有什么吸引你的地方么?

宋昊成:今年开源之夏我选了 NebulaGraph 的「nebula-rust 实现点边扫描接口」任务,实现对 NebulaGraph StorageClient 中的 ScanVertex 和 ScanEdge 接口支持。在后续的开发中,开发一个 StorageClient 用来访问 Storage Service,并根据返回的 response 实现 ScanVertex 和 ScanEdge 接口。除此之外,我还做个附加题,对 nebula-rust 做了部分的 GraphClient 的支持,可返回简单的 nGQL 语句的查询结果。 说到吸引点,当时选这个项目是想借机会学习一下 Rust,了解下这个新兴的语言。还有,就是跟米导(该项目的导师,GitHub ID:Milittle)沟通比较顺畅,他也给了我不少的方向指引。最终,对这个项目进行了认真地 survy 后,有了比较清晰的实现思路,也就顺理成章地接下了这个任务。

最后,插播广告:如果你觉得我的工作做得不错,走过路过不要错过点个 Star,传送下:GitHub - vesoft-inc/nebula-rust: Nebula Graph Client API in Rust

NebulaGraph:作为你的开源第一站,引路人很重要。你觉得 Milittle 这个引路人带路带得怎么样?

宋昊成:一句话:配合完美。在此处再次感谢我的导师——米泽双:他平时工作非常忙,但我发的咨询信息,他都会给出相应解答。前面也提到过,我选 nebula-rust 是想借项目来学习下 Rust 语言,米导他非常热情地提供了一些 Rust 的学习资料和平台,对我的学习帮助非常大。我们约了以后如果有机会去对方的城市,吃个饭见一面。:)

说到导师的话,在开源之夏项目挑选阶段,我潜在群里观察 NebulaGraph 导师们,总体感觉就是 NebulaGraph 的导师们富有实力、年轻、友善。一开始我还会有点拘谨,不知道咋和他们交流,后面发现大家都挺 Nice 的,也就畅所欲言、愉快交流了。

NebulaGraph:既然这是你第一次参与开源项目的开发,你有啥不一样的体会么?

宋昊成:最多的收获可能是自信的增长,因为之前没做过项目,虽然知晓一点点理论知识,但是知易行难,做之前难免会觉得很难,尤其是深入到特定领域之后的一些术语、名词都是我的盲区,需要去了解大量的知识。好在的是,米导师一个好的领路人。在我自行搜索资料的基础上,加上他提供的资料,在我开始真正地开始去开发项目时,很多问题也没想象中那么难,重要的是敢于尝试。

(笑)除了不可见的收获之外,我还收获了 NebulaGraph 社区的周边礼。收到礼物的时候,我很开心。NebulaGraph 给的 contributor 证书和结项证书非常好看。

感觉 NebulaGraph 社区的文化经营得非常不错,能很好地提高社区身份和文化的认同。我认识一些其他社区的小伙伴,完成项目交接后,很少有收到证书或者礼物,感觉像纯粹的劳务关系,活动结束了就没后续了。其实,个人觉得应该让开源社区的小伙伴,在参与社区项目建设过程中,建立起对社区的参与和认同感,这点 NebulaGraph 社区做得会好很多。

最后,晒下带有我 contributor 编号的证书吧 :)

程序员的软技能

NebulaGraph:在任务领取阶段,你的积极主动让我们印象深刻,有别于其他学生的“克制”,你会更有目标感及主动性,你日常也是这样的么?

宋昊成:其实,我平时是个比较被动的人,大部分时候都很佛系。整个活动过程中比较积极,是因为投入了很多心血,申请项目时,把将近 600 个项目都认真了解了一遍,选定了几个合适的项目,认真撰写申请书。如果最后没申请成功或者顺利结项,那对不起自己的投入和专注。

我个人是决定要做一件事,就会很认真地做,要不就不做,要做就认真做好。所以,接下项目后,就积极推进下去,保证能顺利完成。

这个技能跟以往经历有关,大学第一次参加某个竞赛时,没有认真对待,培训过程也很散漫,最后花了几个月也没得奖,非常失望也浪费了时间。于是,第二年再参加的时候,自己选择当队长,并非常认真地学习相关知识、模拟演练。当然,最终我也取得了不错的成绩。有一个正反馈,是非常有利于后续养成做事就认真做好的习惯。

个人觉得,如果有人没有习得一些相关的软技能,可能是没被生活毒打过,一般来说碰壁了,大家都会有所收获和成长,只不过还是希望大家不要和我一样踩过坑之后才习得一些东西。

NebulaGraph:看得出来你是个全力以赴的人,但是有时候事实未必都尽如你意,如果遇到不顺,你是如何调整自我心态的呢?

宋昊成:失败是很正常的。成功是幸运且偶然的,失败才是贯穿人生始终。如果尽力了就不会太难过,因为有时候运气很重要,没尽力失败了,那可能就会想当时为什么没认真对待这件事。

所以,在我看来,如果我在一件事上如果竭尽全力了,并不会有什么执念。像上面提到过的参加比赛没有好结果,更多遗憾是在于整个过程中,自己没有尽全力、努力参与其中,所以这个是我留有遗憾的。而这个遗憾也在来年圆满了,像这种以后还有机会在弥补的遗憾,还是好的。还有一些,只能来一次的机会,如果没有及时把握,就会悔不当初。尽力而为的话,即使结果不尽如人意,也可以说:人生总是留点遗憾才完美,有遗憾才能更好前行。

总的来说,我的心态是,尽力便好、不要过多地在意结果,一旦得失心有了,心态难免不平衡。

和大家说说·工具安利

NebulaGraph:我们的专访也快到尾声了,昊成这边有什么想和社区里的其他小伙伴说说的呢?

宋昊成:那就对社区里学生党们唠几句吧。能参与 NebulaGraph 项目开发,对读书期间的你会是一件很棒的事。其实不只是 NebulaGraph 这个项目,参加任意一个开源项目对大家都会受益良多。

首先,你可以感受工业界项目的开发,这是学校很难有的机会,同时可以收获自己的 contributor 证书(如果这个开源社区有的话)。其次,参与开源项目协作是一个很好的履历,为你以后找工作和升学加分不少。最后,你也可以得到这个社区导师的指导,有人指引你完成一个项目的完整开发是很难得的。你在这过程中会有不少成长,幸运的话,你和我一样会多一个优秀的前辈(导师)。

NebulaGraph:按照以往的惯例,最后的一个问题是留给你来安利 2 个提升工作(学习)效率工具。下面,进入昊成的带货时间:

宋昊成:感谢主持人。那就来介绍 Typora 和飞书文档两个工具。

Typora 是一款以轻量、简洁为特点的文本编辑器,主要用于处理 Markdown 格式的文档。它让计算机专业的学生能够以简单而高效的方式记录和整理编程代码、算法解析和计算机理论,同时通过即时预览功能,迅速查看文档的渲染效果。我平时学一门新知识、开始一个新项目时,过程中会利用 Typora 记下笔记,在学习的过程中消化知识,在学完知识后方便复习。下面是开源之夏申请过程中,三个申请项目的笔记,信息整理归纳的过程,也是你消化吸收的过程。

飞书文档是一款强大而全面的团队协作工具,有卓越的文档管理和协作功能。

个人而言,在移动端或者桌面端编辑后,它可以随时随地查看和编辑文档,方便我查看或者修改计划。我平时梳理知识、对比选择,或者做一些日程安排,会用到飞书文档。因为它提供丰富的模板,如表格我会用来对比项目选择的好坏,思维导图用来梳理知识等。下面是我当时挑选项目时,记录的各个项目的社区、技术栈、对我而言的开发难度以及最后的评价。最后,我综合分析做出选择。

团队而言,我们实验室就是用的飞书。用来记录我们的实验进度、周报、项目安排。 它提供丰富的评论和反馈功能,开组会时,可以在文档中进行实时讨论,提出建议,以及回应他人的反馈,使沟通更加高效和直观。飞书文档可以自动记录文档的版本历史,方便记录和保存以前组会的内容。


多面,是社区用户的常态,希望大家能在一期期的专访中,了解社区中那些鲜活的人。如果你有什么想要了解的社区用户,记得留言^^