与 Dan Mohl 的程序员访谈





5.00/5 (9投票s)
欢迎来到我们持续进行的 Code Project 开发者访谈系列。在这个系列中,我们采访开发者,了解他们的背景、项目、兴趣和个人厌恶。在本期中,我们找到了 Microsoft F# MVP Dan Mohl。
欢迎来到我们持续进行的 Code Project 开发者访谈系列。在这个系列中,我们采访开发者,了解他们的背景、项目、兴趣和个人厌恶。在本期中,我们聚焦于 Dan Mohl。Dan 是一个“红发代码猴”和 Microsoft F# MVP。继续阅读,了解更多关于他丰富的编程经历。
你是谁?
我叫 Daniel Mohl,和我的妻子及女儿一起住在 田纳西州富兰克林,就在 纳什维尔 郊外。我从 8 岁就开始写代码,从 1998 年开始全职从事这项工作。
白天,我是一名架构师,负责各种平台和解决方案。业余时间,我积极参与开发社区。我 定期写博客,活跃在 Twitter 上,为一些开源项目做贡献,在各种用户组和会议上发表演讲,最近还在 MSDN 杂志上发表了一篇题为《Authoring an F#/C# VSIX Project Template》(创作 F#/C# VSIX 项目模板)的文章。
您做什么?
到目前为止,我已向 Visual Studio Gallery 贡献了 14 个项目和项模板,并向 NuGet Gallery 贡献了近十几个 NuGet 包。我创建这些模板和包的主要目的是缩短使用 F# 功能创建解决方案所需的初始化时间。这些模板还可以作为很好的学习工具。
此外,我很自豪能在 FsUnit 和 FSharpx 等开源项目中做出不同程度的贡献。像这样的开源项目不断重塑我以及许多人创建软件解决方案的方式,它们常常有助于推动整个软件开发的未来。
您的开发环境是什么?
和许多硬核技术爱好者一样,我使用多台机器(虚拟和物理)以及开发环境。我偏爱的硬件是 MacBook Pro。我目前使用的是一台配备 2.66 GHz Intel Core i7 处理器和 8 GB RAM 的机器。我运行着 VMware Fusion 4.0.1,其中包含运行各种 Windows 操作系统版本(Windows XP、Windows 7、Windows Server 2008 R2、Windows 8 Developer Preview)和 Visual Studio 版本(包括 VS2010 Professional、VS2010 Ultimate、VS2010 Shell 和 VS2011 Developer Preview)的多个虚拟机。在 Mac OS 上,我偶尔使用 MonoDevelop、MacVim 和 WebStorm。
我接触过很多语言,但我目前最喜欢的包括 F#、C#、JavaScript、CoffeeScript 和 Erlang。我同样非常喜欢探索各种框架和库。我比较熟悉的几个包括 ASP.NET MVC、jQuery、WPF、Silverlight、WCF、WP7 和 WIF。
您对哪些新工具、语言或框架感兴趣?
自从 Visual Studio 11 Developer Preview 发布以来,我大部分的业余时间都用来探索 F# 3.0 的新功能。F# 类型提供程序机制非常有趣,它将改变数据访问和处理的方式。正如 Don Syme 在他宣布 F# 3.0 Preview 时所说:“这为简化我们信息丰富的世界中的编程奠定了基础。”我也花很多时间研究 JavaScript 及其相关的工具/语言/框架。这个领域近期的进步确实令人惊叹。CoffeeScript 和 Node.js 是我对此感到兴奋的两个例子。
您最讨厌的编码习惯是什么?
我最大的个人厌恶是不一致。无论有多少人共同努力实现一个目标,最终的解决方案都应该看起来像是出自一人之手。虽然我当然有偏好的约定和标准,但在必要时为了实现一致性的目标,牺牲这些偏好是值得的。
至于我的偏好,这很大程度上取决于语言和/或框架。我非常赞成“约定优于配置”的原则,并且经常选择支持这种方法的框架所定义的默认约定。我发现这使得其他开发人员能够更快地加入一个项目。我并不反对创建自定义约定的想法;然而,这样做需要有令人信服的理由。
此外,每种语言都有略微不同的最佳实践、标准和约定。我喜欢在特定语言的社区中寻找领导者,阅读他们的代码,并采纳他们的建议。通过阅读他们的代码,我的思想不仅能接触到该语言的最佳实践、标准和约定,还能获得新的想法,从而推动我所使用的其他语言的最佳实践和/或标准的改进。
您是如何开始编程的?
1985 年,我的父母带回家了我们的第一台家用电脑:一台 IBM PC。它附带了一些绿屏游戏和几本厚厚的说明手册。我立刻被这台设备迷住了,并开始通过阅读厚重的说明手册来学习 BASIC,以便修改游戏的源代码来更改高分。在小学时,我有一位老师做过一些编程。他慷慨地帮助我在 Commodore 64 上编写了一些简单的游戏。我继续在高中期间玩电脑,并决定将编程作为职业。在我大学的前几年,我学习了几种不同的语言,包括 Pascal、COBOL、BAL 和 Visual Basic。1998 年,我找到了我的第一份全职编程工作,用 QBasic 编写汽车保险软件。之后是 Delphi、C# 等等。
开发者社区是如何影响您的编码的?
我活跃于许多在线资源,例如 Twitter、G+、LinkedIn 和 GitHub。开发者社区反复改进了我的开发实践并挑战了我的想法。我每天都会通过 Twitter 上的链接或通过探索 GitHub 上的代码发现新东西。我还发现 fssnip.net、tryfsharp.org 以及 CoffeeScript 的主页等网站非常有用。
您会对一个新兴的程序员提供什么建议?
不断寻求进步。绝不自满。这是我认为始终学习新框架、语言、模式、方法等非常重要的原因之一。即使某些东西似乎与您当前的情况不相关,通过学习新知识所获得的知识也可能在意想不到的方面有所助益。
有无数种方法可以寻求进步。我最喜欢的一些方法包括用户组、技术会议、技术杂志、博客、Twitter、书籍、播客、代码练习(code katas)、冥想(koans)和 GitHub。我还发现,向他人解释概念有助于您改进或更深入地理解某事。因此,我经常鼓励有抱负的程序员选择一个焦点领域并开始写博客。