If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

Bill Mills,物理学家和跨学科程序员

Bill Mills的照片
你好,我是比尔·米尔斯!

你的工作是什么?

这些天来,我的工作涉及可以帮助科学更快发展,变得更有趣的很多好的编程,用户界面和计算用户体验! 我为加拿大核物理国家实验室TRIUMF工作,是GRIFFIN实验的网络技术专家和软件项目经理。 GRIFFIN是一种最先进的新型伽玛射线能谱仪,旨在可以比以前的任何实验更有效,更快速地记录有关放射性粒子的数据,使我们能够比以往更详细地了解原子核。
对于GRIFFIN,我的工作重点是使科学家与他们的实验互动的方式现代化。 在我的领域过去的实验依赖于基本的显示器,来向科学家传达他们的实验目前正在发生的事情;想象一下列在多个表格中的表格中,排列的长数字列表,分散在很多不同的地方。几十年前,当一个实验可能只涉及相对较少的简单设备时,这是很好的 —— 但现代实验可以有 数千个探测器和数据流(仅GRIFFIN每周就会产生 200 TB的数据 ),以及一个巨大的支持基础设施。
我们的实验变得太大而且太复杂,无法通过无序的界面和简单的报告进行管理。如果这还不够糟糕,不同的科学家团队将一直使用GRIFFIN —— 除了进行实验之外,他们没有足够的带宽来学习复杂的用户界面。因此,GRIFFIN必须具有尽可能直观且易于使用的用户界面,而不会牺牲细节或能耗;这就是为什么在过去的一年里,我一直在使用JavaScript社区构建的所有很酷的想法和技术来建立一个用户界面,让科学家们在到达实验室时尽快开始做科学。
我为GRIFFIN构建的仪表板的开发版本,来自SPICE探测器的首次在线测试。
基于网络的探测器效率计算器,用于GRIFFIN及其姐妹探测器,取代了笔芯纸(!)的计算方法。
除了我的用户界面工作之外,我还试图帮助科学家通过让他们使用真实软件开发人员使用的工具来改进他们编写代码的方式。计算已经成为我们方法论的核心,如果不编写大量代码,你今天就不可能成为一个严肃的物理学家 —— 但到目前为止,物理学界还没有追赶上良好的计算机教育和技术。大多数物理学家通过简单的猜测来学习编程,直到他们得到某种(某种程度的)有效的东西。程序员开发了版本控制和开源软件协作等策略,以简化开发过程;如果科学家能够从这些策略中学习,我们不仅可以增强我们科学的方式,还可以使其更加开放和可重复。所有领域的实验室都需要那些能够从他们通常的领域之外引入新思想的人,这样科学技术才能不断发展和革新,而这正是我今天在物理学和计算之间所做的。

你如何学习编程?

我开始编程是作为一名研究生开始,在CERN的LHC上进行ATLAS实验 —— 这真是一场灾难!作为一名本科生时,我在编程课程中只有一门课 —— 而且我还挂科了。我对编码一无所知,并且确信我很怕它 —— 然后突然作为一名博士生,我需要全职编写代码。五年来,我通过编写一个复杂的分析软件包而形成了我论文的核心 —— 但实际上并不是我真正学会了编程。我从毕业学校的经历中学到的是,在优秀计算机文化方面,专业科学是如何迷失和失落的 —— 如果我们学会了正确的话,我们可以做出巨大的飞跃。
毕业后是我真正学会编程的时候。 就像许多专业学者的情况一样,毕业后的科学工作很少而且很远。在我寻找工作的同时,我的合作伙伴,温哥华网络开发领域的着名网络开发人员,建议我自学一些JavaScript,并开始向城镇周边的本地软件聚会小组展示。这是一个很棒的建议,因为事实证明,温哥华已经(并且仍然拥有)一个充满活力的软件创业公司,我张开双臂欢迎我,支持我,因为我自学了网页设计和开发的基础知识。通过与温哥华场景的互动,我意识到不仅有计算技术,还有技术,这是一种非常丰富的文化。正是这种精致的工艺在科学计算中不见了,从那以后我一直在努力将这两个世界融合在一起。

当你没有编程时都做些什么?

当我不编程时,我可能正在教授编程! 我为女士学习代码提供指导,这是一项教育推广计划,旨在帮助打破有兴趣学习编码的女性的障碍,我很高兴几乎完成了 教授Software Carpentry的认证,这是一个训练营研讨会计划,旨在向科学家传授编码。 我目前还在构建InterdisciplinaryProgramming.com,这是一项免费服务,旨在将志愿者开发人员与寻找编码指导的科学家进行匹配,并且正在探索通过帮助生态和农业领域的同事了解Arduino电子原型设计和实验,将制造商运动带到实验室的可能性。 其他开放硬件选项,用于实现现代化。
我还尝试尽可能多的会议,与程序员讨论如何共同努力使科学变得更快更好 -—— 2013年我在葡萄牙里斯本的LXJS与杰出的Angelina Fabbro一起谈论科学家和程序员合作:
可汗学院视频播放器
当我真正离开电脑时,我会抽出时间在我的社区中与环保团体一起做志愿者;我热衷于纠正我们与大自然的关系,并在一段时间内为SPEC在温哥华写了内容和研究。

你会为新程序员提供什么建议?

永远不要忘记,没有天生的技能。很容易看到优秀的程序员,感觉非常遥远,就像你永远不会成长或成为一个“真正的”程序员。但我今天有幸与网络上的一些最伟大的程序员见面,而且他们都有相同的经历 —— 当他们刚开始的时候,他们都觉得自己像假货和冒名顶替者一样,没有人认为一开始就很容易 ,不管他们现在看起来多么轻松。如果你已经写了一行代码,那么你就是一个真正的程序员 —— 如果你继续编码和学习,你有一天也会成为一名大师。

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.