![]() |
相關閱讀 |
![]() |
>>> 技術話題—商業文明的嶄新時代 >>> | 簡體 傳統 |
Eric
Lippert是前微软C#编译器团队的首席开发师,从1996年起一直在微软开发部门任职,协助设计并实现VBScript、JScript、JScript
.NET、Windows Script Host、Visual Studio Tools for Office 和
C#。同时,他也是C#语言设计团队的成员之一。 本文是一篇fogcreek网站对Eric Lippert的专访,以下为采访摘译: 原文链接:dev.life – Interview with Eric Lippert 今天我们的嘉宾是Eric Lippert,Coverity的软件架构师,此前在微软C#编译器团队首席开发师,也是C#语言设计团队的成员之一。几个主要的编程着作:Essential C# 和 Visual Basic .NET Code Security Handbook
,在他的博客上有很多关于编程的文章,也常出没于 StackOverflow。 你是如何进入软件开发行业的? Eric Lippert:我六七岁时在学校图书馆接触到了Commodore PETs,PET有专门的校园版,而且还附带 Waterloo BASIC
芯片。 起初,我放学后就会去玩Dam
Buster,而且还玩到很晚,但我很快意识到可以编写自己的东西。我有一本可用来练习BASIC的书,所以我就在家里的图纸上写代码,然后在放学后去输入并看是否能运行——让一个火箭飞行在屏幕上。我小学图书馆的管理员允许我晚归,以及借阅一些关于编程和数学的书籍。后来我在LinkedIn联系到她,谈起过往的日子每每都很感动和暖心。 我十岁时,在别人的程序中发现了人生中的第一个bug。我的小学老师有一个数学闪存卡程序,有时候会输出错误的答案,老师问我看能不能解决这个问题。其实,这对于我是极大的挑战,心想这必然是一个极其复杂的程序,但我认为我需要去找到错误所在,至于是否真正意义上的理解是另外一回事。所以我开始读程序的每一行代码,并独立测试。我已经忘记了那个bug的具体细节了,但和这个类似: 1230 IF X > 10 THEN PRINT (X – 10) * Z 1240 IF Y > 10 THEN PRINT (X – 10) * Z 第二行出现了错误,X本应是Y。在现代的编程环境中,有人会认为这是由于复制粘贴产生的错误,可那个年代的编辑器是没有这个功能的,必然是谁在编写代码时分心所导致的。 我大概在1983年得到了我的第一台电脑——Commodore 64,在这里也要感谢我那伟大的妈妈。 我最值得骄傲的一个程序就是一个书籍数据库,让我可以追踪、管理我的书,那时我十一岁。之后,我还做了个比较靓的窗口管理器,可以在屏幕上实现打开、关闭窗口。 我没有接受过正式的编程训练,只是偶尔会去学校董事会建立的计算机实验室。即使到了高中,更多的也是自学。在高中暑假我去WATCOM(因编辑器和数据库出名)做实习生,他们教我用C语言编程、如何使用调试器、如何建立一个有限状态机……等到我拿到学位后还在WATCOM工作过一段时间。 我在University of Waterloo取得了双学位:应用数学和计算机科学,尽管其中的计算机科学和计算机编程区别还比较大。 你目前在做什么? Eric
Lippert:我是一名软件工程师,在Coverity从事C#代码分析,也就是Synopsys的新部门。而Coverity是做代码审查和检测软件的公司,比如找出C、C++、Java
和C#代码中的缺陷。 我一天的工作需要做的事情很多,包括一些管理方面的事情:review
bug报告、测试案例和代码等。我虽然不需要写大量的代码,但也有一些自己编程任务。与此同时,我还需要指导我的同事,他们是在Unix上写C
++的好手,可这与Windows上写C#有着很大的不同,我要给他们分析“The Microsoft Way Of
Thinking”与他们过去做法的不同。 我还有一些其它工作外的技术活动,例如Mark和我在编写C# 6.0的着作,其次是在O’Reilly上录制编程教学视频。 你在编程时才最开心吗? Eric
Lippert:我建议很多程序员在开始的时候,先去感受找出bug的喜悦,而不应该第一时间去编码。我从来都不知道快乐的源泉是什么,可至少我在调试我构建的代码时是开心的,经过一次又一次的调试让程序运行起来。 对于这个问题,首先我很享受编码,其次乐于通过构建subsystems 来解决一些问题。在Roslyn项目(微软公司开源的 .NET
编译器)工作时,需要重写C# 和 VB编译器,且很多工作始于一张白纸。 你的开发环境是是怎样的? Eric
Lippert:Coverity是一家有Unix的背景的公司,很多情况下都默认Unix开发环境,而我一直是在Windows设备上开发,所以使用Cygwin(小型的UNIX模拟环境)来获得基于UNIX的开发环境。我同事一直用的都是Ubuntu,只是在测试时用Windows。当然,对于那些基于C#的产品,我还是使用了Visual
Studio 2013 。 我使用的工具是ProcMon,在许多开发者的工具盒中应该是没有的。 另外,我在自己的小世界里编程时,音乐少不了,小清新居多,根据心情会听这些人的歌曲或这些歌:Stacey Kent、Glenn Gould、Goldberg
Variations、Diana Kral、Philip Glass、Daft Punk、Pink Floyd、Sondheim musicals…… 我有个怪癖,如果不使用Visual Studio,我就会用1990年版WATCOM VI。 你最喜欢什么开发书籍? Eric Lippert:你采访过Jared ,他现在微软做我以前的工作,他推荐的两本书很不错:《The Pragmatic Programmer
》和《Purely Functional Data Structures》。 我顺着再推荐一本书就是《The C# Programming Language》。 编写技术图书是我的一个爱好,对于最喜欢的书籍,只要是我编写或者参与编写的我都爱,最最喜欢就是 Jon Skeet的书《C# In
Depth》,因为这本书你几乎发现不到什么错误。很多让我推荐书籍,我通常处理这本还有就是《Essential C#》,只选其一的话肯定是前者。 你目前最想尝试的技术是什么? Eric Lippert:我昨天和Jon吃晚饭时,聊了很多Docker,在这方面没什么经验,会抽空去好好了解下。 不写代码时你喜欢做什么? Eric Lippert:Ricky Jay在电影《Spanish Prisoner 》(西班牙囚徒)中有段话非常好: where he says that when your hobbies interfere with your work, that’s great,
but when they interfere with each other, you’ve got a big problem. Boy, do I
know all about that. 我的爱好: 编写书和录制视频,但都与C#有关 写博客 帆船 修葺108岁的靠房子 做木工,对做家居等很有兴趣 在后院自己铸造金属工具 弹钢琴 在StackOverflow上回答问题 爱好很多,我喜欢让自己忙碌起来。 你会给刚进入开发领域的年轻人什么建议? 如果时光能够倒流,我会对年轻时的自己说:认认真真地去学习 Commodore 64
汇编程序,因为我很恐惧汇编语言,至今我读机器语言的能力还是很弱。 对于如今的年轻人,请你们从今天开始好好学习计算机编程,这可以让你学会如何写清楚非代码文档。一个好的开发者,写正确的代码是远远不够的,你还需要去教会别人如何使用它,并相信别人所做的一些改变和创新。 另外,沟通是关键。 话说回来,对于年轻人最实际的建议就是,找一些小的主题,尽可能的了解使用者的需求,并清楚、准确地写下来,或者针对小主题中出现的问题给出有说服力的回应。很快你就会成为这个主题领域的专家,自然而然地你也就会学到很多东西。 原文地址:http://geek.csdn.net/news/detail/30879
dotNET跨平台 2015-08-23 08:48:45
稱謂:
内容: