Meet Chaos & Alexander - Statistical Programmer
在精鼎医药,与数据处理相关的职位是非常多元的,其中包含Data Management,Statistical Programming,Biostatistician等部门。在Statistical Programming部门里还有一个神秘的职位,叫做Application Programmer。这个职位可以说是可遇不可求,非常少人知道,但却在数据处理环节中扮演着极为重要的角色,今天我们请到上海的Chaos以及台北的Alexander来介绍这个极为神秘的角色。
上海 - Chaos
我所学专业为概率论与数理统计,在课程中接触统计软件SAS,并深深喜欢上了用此语言编程。
于2013年6月加入Parexel Statistical programmer team,后于2018年5月开始做Application Programmer的工作。
台北 - Alexander
我是学流行病学的,当时主要是做癌症研究。
后来在疾管署研检中心的工作过程中有接触到临床试验,因此对临床试验领域感到好奇,又刚好听说Parexel在招Statistical Programmer,所以也算是误打误撞加入这个产业。
Application Programmer的工作内容及日常工作是什么样的呢?
主要的工作内容是开发协助统计分析团队及研究团队日常工作所需要用到SAS macro或工具,当有任务进来的时候,指定的Application programmer(assigner)会跟问题提出方(reporter)合作,对涉及到的工具做出更新改善已确保问题能被妥善解决。比如:产出图表的SAS macro、QA检查工具、临床试验监管应用工具等。
可以将工作内容划分成以下几项:
- SAS macro开发及维护
- Script的开发及维护
- 应用平台的开发及维护
- 解决统计分析/研究团队在前述的工具中遇到的疑难杂症
通常当我们收到来自研究团队的需求后,我们会根据需求或问题开始编写/修改代码、撰写文件(document)、单元测试(unit test)。前述工作主要都由一个人负责,但会指派另一人一同讨论和给建议。待代码完成并通过使用者测试后(UAT),会进行对应的Git版本管控,并布署/发布代码至适当的环境中。
Application Programmer可以培养哪些能力?
- 对于每个工具的开发,都要严格符合完整的标准
- 编程语言能力会相当扎实
- 解决问题能力强(比如,短时间开发新工具,解决Macro的Bug,及支持新加功能)
- 工具的聚合能力(例如:一个新工具由多个子工具聚集在一起,一个APP有多种程序设计语言编写)
最常合作的部门有哪些?会有跨国合作的机会吗?
Application Programmer会跟各个国家的Study Team,CCG Team,CSM Team,Medical Coding Team紧密配合,支持并解决这些团队的需求或问题。当然我们团队中也有美国、英国、印度的同事,所以内部讨论就属跨国合作的范畴了。以内部流程来说,当我们有布署需求的话也需要和DevOps team接洽,也会向Data Science team学习他们开发的模式或方法。
担任Application Programmer最有挑战性以及最有成就感的事情?
- Chaos: 针对挑战的部分。我认为在一个应用程序中会包含多个小程序,Application Programmer需要确保各个程序集成在一起并良好运行,这会是一个很有挑战性的工作!但同时很高兴听到开发的工具可以顺利地工作,并帮助同事们提高了工作效率。
-
Alexander: 看到自己做的application/script/macro release to production并且被研究团队和统计分析团队使用的时候,会觉得自己做的事情是有意义的。
你觉得这个职位需要具备什么个性特质以及技能?
建议至少要熟悉除SAS外的任一种程序语言,并稍微了解Linux、Git版本管控、单元测试和布署的概念,甚至了解任一种网页框架,例如:R Shiny。除了可以比较了解工作内容,有了这些基础概念才有办法和其他co-worker沟通。我们比较像是“Engineer”,而不单单只是一个“Programmer”,你必须对你负责的Project有全局的视点和考察,从而对你的Project有个蓝图,最后才能可以像建房子似的从地基开始一步步将其完成。
除了程序语言之外,英文能力也相当重要,很多时候我们需要和提需求的人、co-worker沟通,良好的沟通可以帮助你厘清问题、归纳出需求并解决问题。
另外,撰写文件也是工作内容的一部分,好的语文能力有助于提升工作效率。
最后是细心,除了代码的格式外,在编写程序时你必须要能想到各种出错的可能,包括在写各种错误处理、单元测试等,能不能考虑到各种使用上的问题/情况也是很重要的。
在精鼎Application Programmer的同事有哪些可能的职业发展?
Application programmer的职业发展比较多元,可以发展成为Senior Application Programmer(高级应用程序程序员)、Software Consultant(软件顾问)、Technical Lead(技术负责人)等。
给未来新伙伴的建议?
在这个职位,你可以有机会和不同国家的人合作、对话、交流、沟通;有机会提升编程技能,目前我们会使用的程序语言有SAS,R,Python,bash,Perl,Javascript(React.js and Next.js)…
还有机会学习前后端程序设计、布署、版控、CI/ CD、单元测试等等;你可以有机会负责一个开发计划,实践如何做好项目管理;如何和不同部门沟通、如何和需求者讨论才能找出最佳的方案等等。因此可以先试着了解这些项目的概念。
彩蛋加更
由于Alexander是2022年刚转入这个组,小编也问他在准备内转的时候做了哪些准备,也不藏私地跟大家分享。
内转前需要的准备?跟Statistical Programmer工作的差别?
在内转之前,有被告知会使用到R做开发,所以事先复习了一下R语言。
这边的工作基本上和statistical programmer的工作不太一样,除了编写SAS macro外,可以说是完全不一样。这边的SAS编程主要以macro为主,比较不会有需要去编写创建SDTM、ADaM、TFL等等的工作,而且编写代码的规范及流程稍有不同。另外,我自己有负责在应用程序和Script的开发及维护,我相信这部分statistical programming team一般不会接触到这一块。
你是如何学习R语言与其他工作上会使用到的编程语言呢?
基本上会先从看该程序语言的文件开始,如果有不懂的再从网络上找资源或买书来研究,甚至有需要的话也会去坊间的课程进修。当然时间允许的话,研究别人写的code/project,自己试着做一遍也是很有帮助的。我在大学的时候曾经和资工系朋友一起修习C/C++和Python课程,所以对程序是相当有兴趣的,虽然后来选择往生医领域发展,有机会的话仍会去研究感兴趣的套件及框架。
转过来之后,跟想像中的一样吗?
对精鼎的数据处理职缺有兴趣吗? 现在就加入我们吧!
Explore Parexel
注册我们的人才社区
立即注册,当有符合您意向的职位时,我们将推送给您,并且定期与您分享公司最新动态。