Katie Miller 是红帽公司 OpenShift(开源平台即服务)的开发者倡导者,也是 Lambda Ladies 组织(面向函数式编程领域女性)的联合创始人。她对语言学充满热情,也热爱开源之道。
我的笔记本电脑上贴着一张红帽贴纸,上面只写着:分享更好。
在这次采访中,Katie 与我分享了她如何从新闻业转行到科技行业。以及她如何接触到函数式编程、Haskell 编程语言,以及开源如何成为她日常生活的一部分。
您是如何从记者转变为软件工程师的?
写作和技术都是我生活中长期存在的主题。高中毕业后,我考虑过新闻学和信息技术学位。我对语言学的热爱以及对自身技术技能缺乏信心,使天平倾向于新闻学。我不认为我当时意识到计算语言学是一个选择;它本应是完美的结合。这也是我参与各种活动以向年轻人宣传 IT 行业机会的原因之一,例如 Tech Girls are Superheroes 活动 和 IBM EXITE Camps 青少年女孩训练营。
我在新闻媒体工作了七年多,担任过各种职务。管理新闻网站帮助我意识到我有多么想念技术,我决定重返大学攻读 IT 硕士学位。我重新发现了对编程的长期热情,并开启了作为软件工程师的新职业生涯。去年,我获得了将沟通和工程技能结合起来的机会,担任红帽公司开源平台即服务 OpenShift 的开发者倡导者角色,鉴于我的背景,这似乎是一个完美的契合。
请向我们介绍一下 Haskell 编程语言和函数式编程的概念。
我对 Haskell 和函数式编程 (FP) 的兴趣是由我硕士期间一位充满激情的教授引发的。涵盖 FP 和逻辑编程的科目已从课程中删除,但这位讲师主动提出在校园图书馆的秘密课程中向热衷的学生教授该内容。大学毕业后,我加入了布里斯班函数式编程小组,并找到了另外六位 FP 新手,与他们一起从头到尾学习了这本精彩的书籍 Learn You A Haskell。
函数式编程是一种将计算视为纯粹的数学风格函数求值的范例。这种方法的一大优势在于,它允许您像推理数学方程式一样推理您的代码。Haskell 是一种学习 FP 概念的绝佳语言,因为它纯粹是函数式的并且是静态类型的。这意味着您可以花费大量时间与编译器争论,但一旦您的程序编译通过,它就很有可能正确。我认为这比花费时间在调试器中跟踪值并与您的老板争论该错误是如何进入生产环境的要好得多。
Katie Miller 在 Tech Girls are Superheroes 图书发布会上。照片由 David Ryan 拍摄。
让我们从 Haskell 和函数式编程跳到技术的未来。如果我说未来掌握在我们的孩子手中,您会同意吗?
CoderDojos 和其他类似 Europe Code Week 的项目是否足够?或者我们是否应该做更多的事情来教我们的孩子数字技能?
编码能力使您有权选择计算机为您做什么,而不是依赖他人创建的界面。我认为所有儿童都应该通过编程课程获得这种能力。CoderDojo 和许多其他志愿者主导的项目在这方面做得非常出色,但我真正希望看到的是将编程引入学校课程。我同意我们的未来掌握在我们的孩子手中,我认为我们应该让他们有能力成为未来技术的发明者和主人,而不仅仅是用户。爱沙尼亚和英国已采取行动在学校引入编程教育,我希望看到澳大利亚和其他国家也这样做。并非每个孩子都会成为软件开发人员,就像并非每个孩子都会成为科学家或数学家一样,但我认为编程应该成为生活中教授的技能组合的一部分。
请与我们分享开源是如何与您结缘的?您喜欢开源的哪些方面?
我第一次接触开源是在大学里,在那里我也接触到了 Linux。开源之道对我来说很有意义,这也是在一个大致在 Java 和 .NET 之间平分秋色的城市中,我选择将我的研究生工作定为 Java 职位的主要原因。我的第一家 IT 雇主是一家金融机构,在开源方面相当进步,这个职位让我有机会使用多个 FOSS 项目。当我决定去红帽公司工作时,我刚刚开始在我的个人笔记本电脑上运行 Fedora 并构建了我的第一个自定义内核。
我喜欢开源文化将来自世界各地的各种人聚集在一起,以改变世界的方式。它让每个人都有机会分享他们的想法并做出真正可以产生重大影响的贡献。在红帽公司工作使我有机会将参与全球协作作为我日常工作的一部分,这是一种了不起的特权。当我编写代码时,无论是在工作还是娱乐中,默认始终是开源,值得庆幸的是,我无需经历任何繁琐的步骤即可做到这一点。当有人 fork 我的代码并提交补丁,或者我的 pull request 被接受时,我仍然会感到兴奋。我的笔记本电脑上贴着一张红帽贴纸,上面只写着:分享更好。这对我来说概括了一切。
您能向我们透露一下您在 OSCON 2014 上的演讲内容吗?
我尝试让我的会议演示文稿充满乐趣,这次也不例外。我将尝试在短短三分钟内解释一系列函数式编程爱好者常用的术语,这将是一个严峻的挑战。我将演讲命名为 Coder Decoder:函数式程序员行话解释,附带图片,但我不太擅长绘画,所以即使什么都没有,人们也可以来欣赏一下那些有点奇怪的插图。
1 条评论