빌 밀스, 물리학자이자 학제간 프로그래머

Bill Mills 사진
안녕하세요. 저는 빌 밀스(Bill Mills)입니다!

무슨 일을 하시나요?

요즘 저의 일은 좋은 프로그래밍, 사용자 인터페이스 및 사용자 경험의 산출을 이용하여 과학이 좀 더 빠르고 훨씬 더 재미있어지도록 하는 관한 것입니다! 저는 캐나다 국립 핵 물리학 연구소인 TRIUMF에서 GRIFFIN 실험을 위한 웹 기술 전문가이자 소프트웨어 프로젝트 관리자로 일합니다. GRIFFIN은 우리가 이전보다 원자의 핵에 대한 훨씬 더 자세한 사진을 얻을 수 있도록 방사선 입자에 대한 데이터를 이전 실험보다 훨씬 효율적이고 보다 높은 비율로 기록하도록 설계되었으며 2014년 후반에 TRIUMF 사이트에 올라간 최첨단의 새로운 감마선 분석기입니다.
GRIFFIN에서 저의 업무는 과학자들이 실험과 상호작용하는 방법을 현대화하는데 중점을 둡니다. 이 분야의 과거 실험은 실험하는 순간에 진행되는 일을 과학자들에게 전송하는 기본적인 디스플레이에 의존을 했습니다. 여러 장소에 퍼져 있는 수많은 표에 내포된 표에 정렬되어 있는 숫자의 목록을 생각해 보세요. 이것은 실험에 상대적으로 적은 수의 단순한 장치만 이용되었던 몇 십년전에는 괜찮았지만 현대의 실험에는 수천 개의 탐지기와 데이터 스트림(GRIFFIN 단독으로 매주 200 TB의 데이터를 산출합니다) 과 그 위에 막대한 지원 기반구조가 존재합니다.
우리의 실험은 너무 크고 너무 복잡해서 체계적이지 않은 인터페이스와 지나치게 단순한 보고서로는 관리할 수 없을 정도로 성장했습니다. 더 나쁜 경우에서는 수많은 팀의 과학자들이 GRIFFIN을 이용하고자 할 것입니다. 과학자들은 자신들의 실험을 수행하는 것 외에 추가로 복잡한 사용자 인터페이스를 배울 수 있는 대역폭이 없기 때문입니다. 결국, GRIFFIN에는 가능하면 세부 사항이나 기능을 유지하면서도 사용하기에 직관적이고 쉬운 사용자 인터페이스가 필요했습니다. 바로 이것이 지난 몇 년간 제가 JavaScript 커뮤니티가 구축한 좋은 아이디어와 기술로 과학자가 연구실에 도착했을 때 신속하게 실험을 시작하도록 돕는 사용자 인터페이지를 만는 이유입니다.
SPICE 탐지기의 첫 번째 온라인 테스트에서 GRIFFIN을 통해 구축한 대시보드의 개발 버전
펜과 종이를 이용한 계산을 대체한 GRIFFIN을 통한 웹 기반의 탐지기 효율 계산기와 자매 탐지기.
사용자 인터페이스 외에도 저는 과학자들이 실제 소프트웨어 개발자들이 사용하는 툴을 이용하여 코드를 작성하는 방법을 현대화하는 것을 돕고 있습니다. 오는날 많은 코드를 작성하지 않고는 물리학자가 될 수 없을 정도로 컴퓨팅은 이 분야 방법론의 중심이 되었습니다. 그러나 지금까지도 그랬지만 앞으로 물리학 커뮤니티는 좋은 컴퓨팅 교육과 기술을 따라 잡아야 합니다. 대부분의 물리학자들은 원하는 것을 (거의) 얻을 때까지 추측을 통해 프로그래밍을 배웁니다. 프로그래머들은 개발 과정을 간소화하기 위해 버전 제어와 오픈 소스 소프트웨어 협력과 같은 전략을 개발하였습니다. 만약 과학자들이 이러한 전략을 배울 수 있다면 연구 방법을 한 단계 발전시킬뿐 아니라 좀 더 개방적이고 재생성하게 할 수 있습니다. 모든 분야의 실험실에서는 외부의 신선한 아이디어를 가지고 과학적 기술을 계속해서 발전하고 진보시키는 사람이 필요하고 바로 그것이 현재 제가 물리학과 컴퓨팅 사이에 하고자 하는 것입니다.

프로그램을 어떻게 배우셨나요?

저는 프로그래밍을 CERN의 LHC에서 ATLAS 실험을 했던 대학원생일 때 시작했습니다. 그 당시에는 재앙이었습니다! 저는 학부 때 프로그래밍 수업을 정확히 하나 이수했습니다. 그리고 F를 받았죠. 저는 코딩에 대해 전혀 몰랐고 그것을 정말 못한다고 확신했습니다. 그런데 PhD 학생이 되고 나서 갑자기 저는 매일 코드를 작성했습니다. 5년 동안 저는 제 논문의 핵심을 구성하는 정교한 분석 패키지를 그럭저럭 작성해 냈습니다. 그러나 그 당시에는 정말로 프로그램을 배우지는 않았습니다. 저는 대학원에서 과학계가 프로그래밍과 관련해 얼마나 방향없이 표류하는지 경험했습니다. 그리고 올바르게 배운다면 엄청난 도약을 할 수 있을거라는 것도 말입니다.
제가 실제로 프로그램을 배운 때는 대학원 이후입니다. 많은 전문 학계의 경우와 마찬가지로 과학과 관련된 직장은 대학원 이후 흔치 않습니다. 제가 일자리를 찾을 때 밴쿠버 웹 개발 현장에서 유명한 웹 개발자인 제 파트너는 제게 자바스크립트를 배우고 지역 소프트웨어 모임 그룹에 참여하라고 제안했습니다. 그것은 훌륭한 조언이었습니다. 왜냐하면 밴쿠버에는 제가 웹 설계와 개발에 관한 기본적인 사항을 배울 때 저를 반겨주고 지원해 주는 활기찬 소프트웨어 스타트업 현장이 있었습니다 (그리고 지금도 여전히 있습니다). 밴쿠버 현장과의 인터랙션을 통해 저는 컴퓨팅 기술과 기법에 풍부한 문화가 존재한다는 것을 깨달았습니다. 그것은 과학 분야에서는 볼 수 없는 세련된 장인정신이 깃든 컴퓨팅이었고 전 이 두 분야를 합치기 위해 일해왔습니다.

일하지 않을 때는 무엇을 하시나요?

When I’m not programming, I’m probably teaching about programming! I’ve mentored for Ladies Learning Code, an educational outreach program to help break down barriers for women interested in learning to code, and I’m very excited to be almost finished my certification to teach for Software Carpentry, a bootcamp workshop program designed to teach coding to scientists. I’m also currently building InterdisciplinaryProgramming.com, a free service to match volunteer developers with scientists looking for coding mentorship, and am exploring the possibility of bringing the maker movement to lab by helping my colleagues in ecology and agriculture learn about Arduino electronics prototyping and other open hardware options for modernizing their experiments.
이에 더해, 가능하면 많은 컨퍼런스에 참석하여 과학을 좀 더 빠르고 낫게 만들기 위해 많은 프로그래머들이 협력해야 하는 것에 관해 이야기하려 합니다. 다음은 2013년 포루투칼 리스본의 LXJS에서 안젤리나 파브로(Angelina Fabbro)와 있는 저입니다. 여기서 저는 과학자와 프로그래머가 한 팀이 되어 협력하는 것에 관해 발표했습니다.
정말로 컴퓨터와 떨어질 땐 지역 환경 단체에서 자원봉사를 하고 있습니다. 저는 자연과 인간과의 관계를 바로 잡는 것에 대해 관심이 많고, 밴쿠버에서 SPEC를 위해 기고하고 있습니다.

처음 시작하는 프로그래머에게 어떤 충고를 해주실 건가요?

타고난 기술 같은 것은 없다는 것을 절대로 잊지 마세요. 물론 뛰어난 프로그래머들을 보고, 자신은‘진정한’ 프로그래머에 부합하지 못하거나 되기에 적합한 사람이 아닐거라고 생각할 수는 있겠지요. 그러나 저는 오늘날 웹 상에서 가장 훌륭한 프로그래머들을 일부 만날 수 있는 특권을 가졌고 그들 모두 똑같은 경험을 했습니다. 그들 모두 시작했을 때 모순을 느꼈고 그들 중 어느 누구도 지금의 결과와 상관없이 처음에는 쉽다고 생각하지 않았습니다. 여러분이 코드 한 줄을 작성했다면 여러분은 진짜 프로그래머입니다. 그리고 여러분이 계속해서 코딩을 하고 배운다면 어느 순간 달인이 될 것입니다.