写点什么

在象牙塔里写代码:高学位、低收入,软件还必须“高质量”

  • 2022-06-05
  • 本文字数:2665 字

    阅读完需:约 9 分钟

在象牙塔里写代码:高学位、低收入,软件还必须“高质量”

整理|燕珊


2012 年 3 月,一群志同道合的软件开发者聚集在牛津大学并参加了一个研讨会,这群开发者的职业的共同之处是:通过写代码/开发软件来支持科学研究。但他们的职位各有不同,而且没有清晰的职业道路,于是这群人创造了一个术语来描述自己的工作:研究软件工程师(research software engineer,以下简称“RSE”)。


十年后的今天,RSE 社区已经遍布英国、欧洲、澳大利亚和美国。谢菲尔德大学 RSE 小组负责人、英国研究软件工程协会前任主席 Paul Richmond 在接受《自然》杂志网站采访时指出,尤其在英国,至少有 31 家大学拥有自己的 RSE 小组,这表明这一工作的重要性日益增加。


但从现实的角度看,在互联网高速发展的时代,作为 RSE 在学术界能赚到的钱,也往往不如在科技大厂里做一名码农来得多。《自然》的这篇内容也因此在 Hacker News 上炸出了好多 RSE 们现身说法。

RSE 是做什么的?

本质上,RSE 做的事情就是建立软件来支持科学研究。但他们通常没有自己的研究问题——他们是通过开发软件工具来帮助其他人做很酷的事情。因此,他们每个人做的事情并不绝对,比如为现有的软件增加功能,解决 bug,又或者从头开始建立一些东西。但他们并不只是坐在电脑前写代码,写代码只是 RSE 角色的一部分,他们必须是良好的沟通者,能够将自己融入到一个团队中。


按照 Richmond 的说法,几乎每一个科学领域都需要运行软件,因此 RSE 会发现自己几乎可以从事任何工作。在 Richmond 的职业生涯中,他一直致力于开发用于成像癌细胞和模拟行人交通的软件。作为博士后,他其实从事的是计算神经科学的工作。“我对这些特定的研究领域了解不多,因此我需要与肿瘤学家或神经科学家或任何人密切合作以开发所需的软件。”


最初许多 RSE 都是博士生或博士后,他们从事软件工作以支持自己的项目。但他们意识到,比起实际的研究工作,他们更喜欢这部分工作。因此,RSE 肯定具备在工业界工作的技能,但他们选择了在学术界的前沿科学环境中茁壮成长。


“当然,博士学位不是必要的。”Richmond 说,“我鼓励任何对研究感兴趣的有经验的开发人员考虑将 RSE 作为一个职业。”

缺乏相应的认可和奖励

RSE 工作的一个重点是开发高质量的软件。但 Richmond 坦言,在过去,研究人员并不被激励去使用或创造好的软件。好消息是,这个情况正在发生变化。“许多期刊现在要求研究人员公开软件代码,而且需要遵循 FAIR 原则:可查找、可访问、可互操作和可复用。最后一个词非常重要:好的软件是研究‘可复用’的一个重要组成部分。”


Richmond 强调,他希望可以看到 RSE 在学术环境中是平等的。软件贯穿整个研究过程,但教授往往才是获得大部分认可和声望的那个群体。实际上软件可以产生与某些研究论文一样大的影响,甚至是更重要的角色。如果 RSE 能够获得他们应得的认可和奖励,那么 RSE 这个职业将会更有吸引力。


Richmond 的这些话透露了 RSE 职业存在认可和奖励不足的现实问题。而在技术论坛上,不少人随之对学术界展开抱怨。


一名自称在生物科学领域有 10 年以上经验的研究工具开发者分享道,自己的实验室制造了最先进的显微镜、硬件和图像分析软件,他也觉得学术界的工作确实很棒,能与来自世界各地的非常有趣的人一起工作,对项目也拥有完全的创意控制权。但在薪酬、期望和福利方面,永远不会得到像软件行业那样的高回报,当超过 30 岁时,可能仍在支付进入这个领域所需的学生贷款,而且仍然住在同一个糟糕的公寓里。“学术界,至少在生物科学领域,仍然是一座象牙塔。”


有人直言,“在学术界工作的一个严重现实是,你基本上是以较低的报酬为业界工作,而他们有一天会转过身来,拍拍你的肩膀,然后以数百万美元的价格出售你的工作。”“说实话,你越是接近应用领域,情况就越糟糕。在那里,你已经跨越了你的更‘纯粹’(和收入较少)的同行所认为的‘科学界限’,但实际上做出的东西将使人们的生活更美好。由于这也更靠近能看到你的工作是如何使别人发财的地方,就会很难让人不想跳槽,去成为另一头赚得盆满钵满的人。说实话,这是个令人不安的情况。”


也有人认为是关于地位的问题,“RSE 总是被认为不如研究人员(研究科学家),他们据称提出了“大创意”,而 RSE 只是执行被告知要做的事情。实际上,这条线要模糊得多。没有想法的实施就没有创新和迭代,RSE 工作同样重要。但除非这种观点改变,否则没有人愿意成为 RSE。”

RSE 职业发展还任重道远

“离开学术界后,我工作量变少,得到的报酬更高。在一个人屈服之前,理想主义可以持续很长时间。”


不少观点均指出,从职业道路选择和竞争性薪酬的角度来看,RSE 这个职业很难有好的前景。“如果你拥有材料科学、物理学、化学、生物学等方面的博士学位……并且对 Python(或类似)有相当的了解,也许可以花一年的时间做博士后。在那一年之后,认真考虑转到一家科技公司。”


但也有人对学术界始终抱有憧憬:“我放弃了对对抗性算法和生成对抗性网络的研究生研究,因为我意识到我可以得到 6 位数的报酬来制作商业软件并利用空闲时间做任何我想做的事情。像许多其他潜在的有前途的学术软件工程师一样,我有一个家庭要抚养,我要过上自己的生活。科学确实需要更多的研究软件工程师,但在科学能够支付软件工程师至少基本的最低收入之前,这种情况不会改变。当这种情况发生变化时,我会考虑从我离开的地方再度开始。


另一方面,有观点不认为科学家需要研究软件工程师。“PI(首席研究员)通常喜欢承担项目中的任何角色,包括软件设计。他们不喜欢交出事情并让人们构建现代的最佳实践软件。你开始谈论源代码控制、包管理器、工业中使用的一种他们甚至从未听说过也不太关心学习的语言等等,然后你就会被问到‘为什么你不能直接用 Python 或 C 编写,因为这是我唯一熟悉的两件事,然后将其压缩并放在 USB 驱动器上’。”


学术界还是工业界,这个问题始终没有固定答案。不少人指责学术界普遍存在资金不足且官僚作风的问题,一位自称在学术界和工业界都待过的 PI(首席研究员)直言,前者可以通过拨款申请来解决,后者必须被容忍,直到政治家/活动家解决它。他进一步解释道:学术界的钱和奖励在大多数情况下不受 PI 的控制(例如在德国,这是政府层面的决定,每个人的报酬都是一样的),所以他们往往有两种选择:与普通人共事或找到既聪明且有理想主义的人......


同时,该 PI 在评论区顺带发布了一则 RSE 招聘,寻找愿意与之一起使用最佳实践(尤其是使用 Rust)构建研究软件(本地和 AWS 云)的人。一位用户随之留言打趣道,这很可能就是当前难以招到 RSE 的最佳证据。


参考链接:

https://www.nature.com/articles/d41586-022-01516-2


https://news.ycombinator.com/item?id=31577376

2022-06-05 18:183907
用户头像
罗燕珊 InfoQ中文站编辑

发布了 487 篇内容, 共 324.6 次阅读, 收获喜欢 794 次。

关注

评论

发布
暂无评论
发现更多内容

大佬总结的4条宝贵经验,送给初入职场的你,从此一飞冲天

爱好编程进阶

Java 程序员 后端开发

一文聊透 Netty IO 事件的编排利器 pipeline | 详解所有 IO 事件的触发时机以及传播路径

bin的技术小屋

网络编程 Netty java netty 5月月更

邀您填写调研问卷 | 2022中国 AIOps 现状调查全面启动!

博睿数据

AIOPS 博睿数据

讨论两种Redis中Token的存储方式

华为云开发者联盟

Token key 存储token userid

Hacker 资讯 | 5 月上旬区块链黑客松活动汇总

TinTinLand

区块链

《安全大讲堂》 第十四期|不破不立:软件供应链的威胁与方案

腾讯安全云鼎实验室

供应链 安全大讲堂

史上最全图解JVM,京东小哥带你了解性能提升100%背后的秘密武器

爱好编程进阶

Java 程序员 后端开发

编写自己的 WordPress 模板

海拥(haiyong.site)

WordPress 5月月更

KeyDB重量发布6.3.0开源版

华为云开发者联盟

redis 开源 多线程 分布式缓存 KeyDB

批量作业调度引擎 TASKCTL 安装与实例部署

敏捷调度TASKCTL

程序员 DevOps 分布式 ETL 自动化运维

这些年,使用缓存踩过的坑

鲸品堂

缓存

等保和分保的区别是什么?哪个更厉害?

行云管家

网络安全 等保 等级保护 分保

netty系列之:HashedWheelTimer一种定时器的高效实现

程序那些事

Java Netty 程序那些事 5月月更

vuejs中的默认插槽-具名插槽-作用域插槽三者的比较

itclanCoder

JavaScript Vue 前端开发

如何在缺乏商业项目经验的前提下成功通过面试,兼说我如何甄别非商业项目经验

爱好编程进阶

Java 程序员 后端开发

【刷题第十天】21. 合并两个有序链表

白日梦

5月月更

“超级计算机”——GPU云服务器

Finovy Cloud

gpu GPU服务器 GPU算力

HTTP请求转发那些事:你可能不知道的Hop-by-hop Headers和End-to-end Headers

华为云开发者联盟

HTTP 请求转发 web 容器 F5

小型企业需要CRM系统的理由

低代码小观

CRM 企业管理系统 中小企业 CRM系统 客户关系管理系统

极光笔记 | 极光基于元数据驱动数据治理浅谈

极光JIGUANG

数据治理 元数据

使用APICloud AVM多端框架开发企业移动OA办公的项目实践

YonBuilder低代码开发平台

企业应用 APP开发 APICloud 多端开发 avm.js

招募 | 加入DFINITY 进阶开发,人人都是下一个“张一鸣”

TinTinLand

区块链

开源生态在中国:播撒种子,待成雨林

科技热闻

JAVA-使用注解实现Excel表头多语言导出

JayJay

5月月更

AI简报-视频去交错(Deinterlance)

AIWeker

人工智能 深度学习 5月月更 去交错

云计算的云是指什么?最简单的解释是什么?

行云管家

云计算 云服务 私有云 混合云

第三代区块链DFINITY布局DeFi,开发者如何抓住机遇

TinTinLand

区块链

以太坊L2跨链明星——Arbitrum 为开发者带来区块链入门方案

TinTinLand

区块链

摆平各类目标检测识别AI应用,有它就够了!

华为云开发者联盟

计算机视觉 CANN 昇腾 目标检测识别 YoloV3

柏拉图会成为元宇宙风险标吗?PlatoFarm的机会很大

西柚子

vuejs中的普通方法/计算属性computed与监听属性watch四者的比较

itclanCoder

JavaScript Vue 前端开发

在象牙塔里写代码:高学位、低收入,软件还必须“高质量”_文化 & 方法_罗燕珊_InfoQ精选文章