為什麼科學需要更多的研究型軟體工程師? - nature
2012年3月,一群志同道合的軟體開發人員聚集在英國牛津大學,參加他們所謂的合作研討會。他們有一個共同的職業--編寫程式碼以支援科學研究,但有不同的工作頭銜。而且他們沒有明確的職業道路。與會者創造了一個術語來描述他們的工作路線:研究型軟體工程師(RSE:research software engineer )。
十年後,RSE協會在英國、歐洲大陸、澳大利亞和美國興起。在英國,至少有31所大學有自己的RSE小組,這表明這個職業的重要性在不斷增加:
RSE是做什麼的?
從根本上說,RSEs建立軟體來支援科學研究。他們通常沒有自己的研究問題--他們開發計算機工具來幫助其他人做很酷的事情。他們可能為現有的軟體增加功能,清除錯誤,或者從頭開始建立一些東西。但他們並不只是坐在電腦前寫程式碼。他們必須是良好的溝通者,能夠將自己融入到一個團隊中。
他們從事什麼型別的專案?
幾乎所有的科學領域都是在軟體上執行的,所以RSE可以發現自己在做幾乎任何事情。在我的職業生涯中,我從事過癌細胞成像和行人交通建模的軟體。作為一個博士後,我從事計算神經科學的工作。我對這些特定的研究領域瞭解不多,所以我與腫瘤學家或神經科學家或其他什麼人密切合作,開發所需的軟體。
為什麼這麼多大學支援自己的RSE小組?
一些處於學術梯隊頂端的高權重研究人員有能力僱用自己的RSE。該工程師可能致力於維護一個已經存在了10年或20年的單一軟體。但是,大多數研究小組只是偶爾需要--或者能夠負擔得起--一個RSE。如果他們的大學有一個RSE小組,他們可以僱用一名內部工程師,每週一天,或一次一個月,或任何他們需要的東西。這樣一來,RSE小組就像一個核心設施。大學試圖確保該小組有一個穩定的工作流程,但這通常不是問題--不缺專案可做。
RSE還做什麼?
工作的很大一部分是提高對高質量軟體的重要性的認識。RSE可能會培訓一個博士後或研究生,讓他們自己開發軟體。或者他們可以舉辦一個關於良好軟體實踐的研討會。從理論上講,培訓50個人可能比在一個專案上工作更有影響力。在實踐中,因為忙於支援研究,RSE們往往很難抽出時間進行教學、指導和宣傳。
主要研究人員(PI)是否理解對RSE的需求?
這是很複雜的。在過去,研究人員並不總是被激勵去使用或創造好的軟體。但這正在改變。許多期刊現在要求作者發表程式碼,而且這些程式碼必須是FAIR:可查詢、可訪問、可互用和可複製的。最後一個詞非常重要:好的軟體是研究可重現性的一個重要組成部分。我們向首席科學家解釋,他們需要可靠的程式碼,這樣他們就不必在六個月後收回他們的論文。
誰應該考慮從事RSE工作?
許多RSE開始時是博士生或博士後,從事軟體工作以支援他們自己的專案。他們意識到,比起實際的研究工作,他們更喜歡這部分工作。RSEs當然有在工業界工作的技能,但他們在學術界的前沿科學環境中茁壯成長。
大多數RSE擁有博士學位--我有一個計算機圖形學的博士學位--但這不一定是一個要求。一些RSEs最終走上了終身職位;我最近被提升為教授。其他許多人作為實驗室技術人員或服務人員工作。我鼓勵任何對研究感興趣的有經驗的開發人員考慮將RSE作為一個職業。我還希望看到更多來自代表性不足的群體的人加入這個領域。我們需要更多的多樣性來發展。
你對有希望成為RSE的人有什麼建議?
試著在一個開源軟體上工作。如果可能的話,在一個合作的環境中做一些培訓。如果你有問題,可以和正在工作的RSE交談。考慮加入一個協會。英國研究性軟體工程協會很樂意為人們提供有關進入該領域或如何在工作申請中脫穎而出的建議。在美國的人可以聯絡美國研究軟體工程師協會。
如果你是一個博士生或博士後,給自己一個挑戰:試著說服你的導師或PI,他們真的需要接受好的軟體技術。如果你能改變他們的想法,那就說明你有成功的激情和動力。
你對這個行業在未來10年的發展有何設想?
我希望看到RSE在學術環境中是平等的。軟體貫穿整個研究過程,但教授們往往得到大部分的認可和聲望。一款軟體的影響力與某些研究論文一樣大,有些甚至更大。如果RSEs能夠得到他們應得的認可和獎勵,那麼這條職業道路就會更加明顯和有吸引力。
doi: https://doi.org/10.1038/d41586-022-01516-2
相關文章
- 軟體測試工程師需要學習什麼內容工程師
- 為什麼軟體工程師應該學習哲學?軟體工程工程師
- 優思學院|質量工程師需要學習什麼軟體?工程師
- Java 開發工程師需要學什麼?Java工程師
- Java開發工程師需要學什麼?Java工程師
- Web前端工程師需要什麼學歷Web前端工程師
- 前端工程師要做什麼?前端工程師需要什麼根本技能?前端工程師
- 為什麼前端工程師需要關注設計前端工程師
- Web前端工程師需要會什麼?Web前端工程師
- 學習Java需要什麼軟體呢?Java
- 為什麼軟體工程師或程式設計師脾氣暴躁? -Human Who Codes軟體工程工程師程式設計師
- 學Java需要下載什麼軟體?都有什麼作用?Java
- 什麼是軟體工程?軟體工程
- 學Python需要安裝什麼軟體呢?Python
- 為什麼軟體工程師找不到工作?我想分享四個“恐怖故事”軟體工程工程師
- Python學習系列之學Python需要什麼軟體?Python
- 軟體測試工程師需要具備哪些能力工程師
- 為什麼遊戲界需要更多像三上真司這樣的優秀導師?遊戲
- 作為一名軟體測試工程師,需要具備哪些能力?工程師
- 問答丨演算法工程師具體是做什麼的? 需要什麼樣的條件?演算法工程師
- 作為嵌入式/軟體開發工程師你需要知道的東西工程師
- 軟體測試培訓需要學習什麼
- 軟體測試需要學習什麼技術?
- 如何成為 10 倍軟體工程師軟體工程工程師
- Linux為什麼不需要防病毒軟體Linux
- 【招聘】前端軟體工程師、高階前端軟體工程師前端軟體工程工程師
- 成為一名大資料工程師,需要具備什麼技能?大資料工程師
- 月薪兩萬的Java工程師需要達到什麼水平?Java工程師
- 從軟體工程師轉型到資料科學家 我是這樣走的軟體工程工程師資料科學
- 高階軟體測試工程師,需要掌握哪些技能工程師
- 軟體測試工程師需要具備哪些素質?工程師
- 資料科學家最需要什麼技能?資料科學
- 什麼是Linux運維?Linux運維工程師需要做什麼?Linux運維工程師
- 開源科學工程技術軟體系列文章
- 軟體工程--為什麼軟體開發方法論讓你覺得糟糕軟體工程
- 阿里雲中介軟體首席架構師李小平:企業為什麼需要雲原生?阿里架構
- Java培訓分享:學習Java需要什麼軟體?Java
- 軟體測試工程師的待遇怎麼樣工程師