专访|dromara导师黄伟亮:要躬身入局,而非志在参与

开源之夏2023的项目开发工作正在进行中,一些开发的注意事项此前小编也整理发送啦:开发指南 | 开源之夏 2023 项目开发必须知道的那些事,预祝大家顺利结项!
开源之夏的专访持续进行中,欢迎各位同学和导师在项目开发过程中与我们一起分享开源之夏的参与经验和精彩故事,也欢迎社区向我们推荐优秀案例。本期专访来自dromara社区导师——Kevin 黄伟亮,指导项目:学会交易策略的编写并制作出相应的视频教程。
项目链接:https://summer-ospp.ac.cn/org/prodetail/23ee40095?list=org&navpage=org

#自我介绍
ospp:请简单做个自我介绍吧!
黄伟亮:我是一枚非计算机科班出身的大龄程序员。目前就职于某外资银行做资深全栈工程师,也是【Northstar盈富量化交易平台项目】的创始人。https://gitee.com/dromara/northstar/

我感觉自己还是比较幸运的,我是2016年转行当程序员的。那时互联网行业还是处于高速发展期,还没有35岁焦虑这一说法。我是因为对量化交易非常感兴趣,于是专门去培训班学的编程。培训班毕业后,我感觉自己还不足以独立开发出一个平台,便想着先混进这行,然后边做边学。之所以说幸运,是行业的高速发展期给了我混进这行的机会。如果换作是现在,哪怕是计算机专业毕业都未必能入行。
ospp:您何时开始接触开源,从什么时候开始参与开源或开源社区?
黄伟亮:入行后,我才开始接触到各式各样的开源项目。但在量化交易方面的开源项目并不多。尤其是很多开源项目都只有代码,连文档都没有,更别说社群了。因此很多开源项目我当时其实都看不太懂,也不太会用。当时也只能厚着脸皮去请教那些开源项目的作者。但工作上的经验告诉我,当你无法理解一个项目时,最好的方法就是参考着来自己做一遍。这其实便是重复造轮子的意义所在。
ospp:您现在从事职业领域的开源现状?
黄伟亮:由于我的工作是基于JAVA技术栈的,我希望业余的开源项目是跟日常工作有关联度的。因为这样的话,我可以把日常积累的一些经验应用到开源项目,反过来也能把开源项目的经验应用到日常工作,从而实现一个良性循环。于是,在2019年,我便选择了一个叫redtorch的基于JAVA的量化交易项目,来开始我的第一个版本迭代。但redtorch这个项目与我的设想差距还是蛮大的。经过了几个版本迭代后,我开始摸索出了一套自己的架构套路。在量化交易领域,开源的项目并不多。首先是因为从事这个行当的人本来就是少数;其次是这个专业软件在业界一般能卖几千到几万块不等,开源这方面的软件属于吃力不讨好。我之所以把它做成开源也算是一次尝试与探索。同时也是因为我本身对量化交易有需求,所以开源这个项目对我而言边际成本比较低。站在用户的角度看,一个刚入门的量化交易者也很难支付那么昂贵的软件成本。所以从商业生态位来讲,量化交易开源项目在一定程度上弥补了这方面的用户需求。2021年中,我决定让项目加入dromara社区,因为一个人也许能走得快,但一群人能走更远。借助开源社区的力量,可以给项目带来更多的关注度,也能增加项目的影响力。Dromara社区也吸引了许多来自不同行业的作者加入,大家能在这个团队里互相学习与交流,这对于个人成长与技术进步也是相当有帮助的。
#关于参与开源之夏
ospp:这是您第一次作为导师参加开源之夏吗?请简单介绍一下您指导的项目及对项目成果的期望,当前已正式进入项目开发阶段,项目是否顺利进行呢?
黄伟亮:这次是我第一次参加开源之夏活动。由于是第一次参加,一开始其实我没抱太多期望。所以在上线项目任务的时候设定的难度相对比较简单。主要是不确定同学们的水平能做到什么程度。结合此前我招应届生的经历,所遇到的应届生水平还不是太高。
这次咱项目的课题是《学会交易策略的编写并制作出相应的视频教程》。如果简单地看,就是用Northstar盈富量化平台来编写三个交易策略,然后把过程录成视频教程。具体是怎么样的交易策略,在课题中其实并没有给出很详细的说明。我一开始的想法其实很简单,学生能够给出常见的策略比如海龟策略、网格策略等即可。
但后来随着咨询的同学越来越多,我发现参与开源之夏的同学水平要比我之前招聘所碰到的应届生水平要高出许多。如果仅仅是简单地写几个交易策略,对于同学们没有任何实质帮助。我希望我这个项目能成为同学们日后在简历中的一大亮点,所以我便引导来咨询的同学往难的方向去想——用强化学习来实现量化交易策略。正如Tensorflow对接了显卡并提供了一套神经网络的编程框架一样,Northstar盈富量化平台对接了真实的交易所网关并提供了一套程序化交易编程框架。用户能不能把它玩出花儿来,完完全全取决于用户的想象力。而我要做的,就是引导同学来发挥它的可能性。熟悉强化学习领域的同学们应该知道,常用的测试环境有OpenAI的GYM。但GYM环境仅能用于入门级的学习。而量化交易恰恰是一个更真实、更具实践意义的研究环境,Northstar盈富量化平台在设计之初,就已经洞察到了这样的需求。所以通过本次课题,将会给大家展示如何把Northstar盈富量化平台变成一个强化学习的研究平台。从而,轻则能加深同学们在机器学习强化学习方面的技术能力,重则能通过其研究成果直接在交易市场上赚到钱。
这便是本项目任务的精华所在。我相信这样的一个课题,绝对能成为参与项目的同学简历上的一大亮点。只可惜,能看透这个项目可玩之处的同学并不多。
ospp:据了解,该项目收到了不少申请书,在学生申请阶段,您与意向学生做了哪些沟通和回应呢?
黄伟亮:这次一共有十位同学正式提交了项目申请书。然而,很多同学甚至都没有跟我进行过充分的沟通,就想当然地提交了项目申请书。这样所做出来的方案当然是不及格的,因为他连需求都没有了解清楚。只有两位同学是在提交申请书之前,与我详细沟通过课题的。
ospp:作为导师,您评判学生的申请是否符合项目要求的标准是什么呢?
黄伟亮:对于同学们的申请,我主要关注两个维度:一是意向,二是能力。意向无非就两个方面,要么是出于兴趣,要么是出于职业规划。意向比能力还要重要。意向是所有内驱动力之根源。强烈的意向能让人克服一切困难、穿越一切迷茫,最终实现自己的目标。但怎么样才能够表现出强烈的意向呢?比如我发现有不少同学,在申请书中都会提到自己对Northstar盈富量化平台项目感兴趣,但我却没看到有多少同学是真正把项目部署起来运行过的。有些同学甚至说要给项目做贡献,但也从来没看到他提过任何PR。这种说一套做一套的行为,不但不会为自己加分,反而会导致自己减分。能力方面,我主要会关注同学们是否有强化学习方面的项目经历。这时简历的匹配程度就变得很重要了。对于那些一份简历打天下的,在这种场景下往往要吃亏。不同的项目所要求的技术栈与侧重点是不一样的。这时候,一个有清晰的职业规划方向的同学在简历上的优势就会体现出来,因为简历上一般会有相关的项目经历,从而能吸引到导师的兴趣。当然,简历匹配只是用于提高筛选效率。最终,我还是会以面谈作为评判标准。拿这次的项目课题为例,我会考察申请人是不是真的懂强化学习,并且有过实际的项目经验。从实际情况看,很多同学仅仅是停留在知道的阶段,甚至没有真正动手做过项目。
所以,总的来讲,不管是意向还是能力,最终都能通过动手去体现。开源之夏本来就是一个实践性很强的活动。但以我所观察,目前真正能称得上具备动手能力的同学都还是凤毛麟角。这既是目前大学生的一大通病,同时也是同学们的一大机遇。但凡有点动手能力的,都能与同龄人拉开不少的差距。
ospp:开源之夏已经举办至第四届,参与的学生也趋于成倍增长,您对学生选择和参与有什么建议?
黄伟亮:如果要问我,对同学们有什么建议的话,那就是多参与项目实践,努力提升自己的动手能力。
#关于参与开源
ospp:您对开源的理解是什么?能否举一个您参与的值得分享的实践案例?
黄伟亮:开源在我看来是一个低成本获取用户反馈的一个途径。拿Northstar盈富量化平台来讲,用户反馈主要体现在两个方面,一是功能反馈,二是测试反馈。功能反馈指的是这个功能是否好用、是否易用;测试反馈指的是这个功能是否有BUG。开源同时也是一个低成本的实践平台。用户通过开源参与到软件研发的生命周期中去,包括但不限于提供需求、提供功能建议与意见、提供代码实现方案,使得自己有机会去影响甚至主导一个软件产品。这是一个互助互利的过程,所有的参与方都能从中获益。我作为Northstar盈富量化平台的需求分析师、UI设计师、架构师、开发、测试、运维,能全方位全生命周期地去理解一个软件产品从零到一的全过程。这项目经历本身就是非常难得的事情。
ospp:当前开源的热度依然不减,而高校参与开源的氛围也日渐浓厚,您怎么看待这一现象呢?
黄伟亮:很高兴看到越来越多的高校学子参与到开源。但希望大家要看清楚参与开源的意义,而不是单纯地蹭热度把开源项目当作刷经验。只有躬身入局,深度参与开源项目,才能真正地体现出参与的价值。
假如把开源项目比作试验田,至少你要在这块田里做过一次完整的实验,这个经历对你才有价值。相反,只是简单地提交过几个PR,就好比简单地给田里除过几次杂草,不痛不痒的,意义不大。
ospp:作为导师,您觉得什么样的开源项目适合高校学生去尝试和实践?
黄伟亮:正如前面提到,同学们在选择开源项目去参与时,一是看兴趣,二是看职业规划。最好是两者能兼顾统一。拿Northstar盈富量化平台项目而言,项目本身是属于量化交易这个赛道。这个赛道本身对于求职者来讲,机会不多,门槛非常高。如果光想通过参与项目的开发,便期望这个经历对日后进入量化基金公司的可能性不大。然而,把项目当作一个研究平台,通过项目已有的框架,去研究如何把强化学习应用在交易领域,那么这个项目便可以简化研究过程中所需要搭建的基础工作。然后重点在是在于如何用,而不是如何造。再比如,有同学的职业规划是去造软件的,比如有志向去研发国产版本的CAD、EDA等软件的,那就应该去参考已有的开源项目,自己从零开始设计尝试,然后把项目开源以获得更多的用户反馈。
总之宗旨是,要躬身入局,而非志在参与。
ospp:如何帮助学生在项目结束后继续参与开源社区?
黄伟亮:在项目申请阶段,我就已经跟申请的同学明确地提出了我的期望:便是期望参与的同学,不要局限于这一次的活动。如今我也借这个机会,跟更多落选的同学说,眼光不要局限于开源之夏这活动。我们参与开源项目的动机应该是看重其带来的实践经验,从而丰富我们简历上面的项目经历。企业在招聘的时候,会重点关注同学们是否真的有深度参与相关项目的经历。拿Northstar盈富量化交易平台为例,正如前面提到的,同学们可以通过两种方式参与:一是把平台当作强化学习的研究平台,应用到交易场景,并把研究的过程做成视频来分享,这样能吸引更多做相关领域的同学,从而能形成一个圈子互相讨论学习、共同进步;二是参与到平台功能的优化,但这个方向能自主主导的机会并不多,除非是对交易场景有丰富的经验,否则比较难做出亮眼的成绩。
END
专栏编辑:大梦
校对:校大山、黄伟亮
制图:GoodWhite
