网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 编程人生(15位软件先驱访谈录上卷)
分类 文学艺术-传记-传记
作者 (美)塞贝尔
出版社 人民邮电出版社
下载
简介
编辑推荐

世界顶尖的程序员是怎么走上编程道路的?

他们的编程工作创造和改变了人类历史,在这一过程中都有哪些经验和教训?

他们对计算机软件行业的过去、现在和未来有什么独到的看法和见解?

他们对培养、发现、选拔、面试优秀的程序员有什么建议?

放下手头的工作,听听这些软件先驱们的故事和建议,让眼界更开阔、思路更清晰、方向更明确、人生更精彩。

作者Peter Seibel(塞贝尔)采访了下面这15位世界级编程大师,整理了近80个小时的访谈录音后汇编为《编程人生(15位软件先驱访谈录上卷)》。中文版拆分为上下两册,上册介绍前8位大师,下册介绍后7位大师。

内容推荐

由塞贝尔著的《编程人生(15位软件先驱访谈录上卷)》是一本访谈笔录,记录了当今最具个人魅力的15 位软件先驱的编程生涯。包括Donald Knuth、Jamie Zawinski、Joshua Bloch、Ken Thompson等在内的业界传奇人物,为我们讲述了他们是怎么学习编程的,在编程过程中发现了什么以及他们对未来的看法,并对诸如应该如何设计软件等长久以来一直困扰很多程序员的问题谈了自己的观点。中文版分为上下卷,上卷介绍8位大师。

本书适合所有程序员,也适合所有对计算机行业、对软件开发感兴趣的人。

目录

第1篇 Jamie Zawinski

第2篇 Brad Fitzpatrick

第3篇 Douglas Crockford

第4篇 Brendan Eich

第5篇 Joshua Bloch

第6篇 Joe Armstrong

第7篇 Simon Peyton Jones

第8篇 Peter Norvig

参考书目

试读章节

Zawinski:过程不记得了。当然,编写自己回头还能理解的代码,这点至关重要。不过,我都快39了,而当时只有15岁,实在记不太清了。

Seibel:去CMU干活是从哪一年开始的?

Zawinski:不是1984年就是1985年。大概是从十到十一年级之间的那个夏天开始的。下午4点左右学校放学后,我会直接去那里,一直待到晚上八九点。好像不是每天都去,反正前前后后在那里待了很长时间。

Seibel:高中毕业后,你自然是去了cMu。

Zawinski:是的。事情是这样的,我讨厌高中,那是我生命中最糟糕的日子。所以临近毕业时,我去找Fahlman要一份全职工作,他回答说:“不大好办,不过我有几个朋友刚开了家公司,可以找他们谈谈。”那家公司叫Expert Technologies,也就是ETI。我猜他是董事之一。他们正在打造一个专家系统,可以自动给电话簿标页码。他们使用Lisp开发,我认识其中几个人,之前都在Fahlman的小组里待过。他们雇了我,一切顺风顺水,约莫过了一年,我开始惶恐不安:哦,天哪,得到这两份工作完全是撞大运,绝不会有下次了。一旦丢了这份工作,没有大学文凭的话,我就只能去打打零工了,看来我应该去拿张文凭。

我原本计划半工半读,一边到ETI上班,一边求学。结果却变成全工全读,前后持续了大概6个或9个礼拜。反正那段时间不短,以致我错过了退课截止期,最后学费一个子儿也没要回来。不过我上大学的时间又不够长,没拿到学分,因此要说我没真正上过大学,我也只能认了。

那段时间真的很糟。上高中时,所有人都自我安慰说:“净是些没完没了的老掉牙的标准化测试,上了大学,一切都会好起来的。”结果上大学第一年,跟高中毫无区别。“哦,放心,等你念了研究生,一切都会好起来的。”所以在我看来,大学和高中一样糟糕,换了时间而已,我可受不了。每天早上8点钟起床,就开始往脑子里塞东西。比如,有门叫做外设介绍的课还非上不可,这门课教你怎么用鼠标。我找到他们说:“我都在这所大学里工作了一年半,我知道鼠标怎么用。”但所有人都得上,概莫能外,“这是规定”。其他也都差不多,我实在无法忍受,索性退学了事。我觉得自己做得很对。

我在ETI干了大概4年,后来公司开始走下坡路。当时ETI用的Lisp机器是TIExplorer,那时我除了做专家系统的开发工作外,还把大块时间用在捣鼓用户界面上,还有那些Lisp机器的工作机制,我也从里到外学了个遍。我喜欢那些机器,我喜欢折腾操作系统,琢磨各个部分如何融为一体。

那时我已经写了不少代码,便找了个新闻组,发帖子找工作,还顺带提到自己写过不少代码。Peter Norvig看到帖子后安排了面试。我当时的女友已经搬到加州大学伯克利分校求学,我正好可以随她而去。

Seibel:Norvig当时在伯克利?

Zawinski:是啊。那份工作很奇特。他们有一大群研究生在做自然语言理解方面的研究,大家基本上都是语言学家,偶尔写些程序。因此他们打算找个人接手他们编写的那些零零碎碎的代码,并整合成真正能用的东西。

这活儿对我来说相当困难,因为我没有相关背景,无法理解他们到底在做些什么。因此常常碰到这样的情形:我盯着某样东西,但完全不知所措。我不理解那是什么意思,不知道下一步该做什么,也不了解要读些什么才能真正理解它。于是我跑去问Peter。他很礼貌地回应我:“你现在理解不了,这很正常,周二我有时间,到时给你讲解一下。”结果我就无所事事。于是我把大块时间都用在折腾窗口系统、摆弄屏幕保护程序以及之前出于好玩而捣鼓的那些用户界面之类的程序上。

就这么过了6个月或8个月,然后我意识到自己完全是在虚掷光阴。我什么都没为他们做,觉得自己就像在度假。后来有几次我真的忙得一塌糊涂,那种时候回想起在伯克利的那段日子,我就问问自己:“你怎么会放弃那份度假般的工作?不会是脑袋短路了吧?他们可是付钱让你写屏保的!”

最后我去了Lucid,当时仅存的两家Lisp环境开发商之一。我决定离开伯克利的主要原因是我觉得自己一事无成,那种感觉很糟。我周围的人都不是程序员。当然他们都不赖,我仍和其中几个人保持着友谊。只不过他们都是语言学家,比起解决实际问题来,他们对抽象的事物感兴趣得多。而我想做出点实际的东西,有一天就能指着某样东西说:“瞧,这活儿漂亮吧,是我干的。”

P4-5

序言

抛开Ada Lovelace(被誉为世界上第一位程序员,著名诗人拜伦之女,她为Charles Babbage未完成的分析机设计了算法)的工作不说,人类在计算机编程领域奋斗的时间还不及一个人的寿命长,从1941年Konrad Zuse完成z3电子机械计算机(首个可运行的通用计算机)算起,只有短短68年。曾有6位女性(Kay Antonelli、Jean Baltik、Betty Holberton、Marlyn Meltzer、Frances Spence和Ruth Teitelbaum)在美军的计算机部队工作,她们手工计算弹道数据表,后来被调去做ENIAC(首台通用电子计算机)最早的程序员。若从这时候算起,人类的编程历史则只有64年。在婴儿潮早期出生的人们以及他们的父母,很多至今仍然健在,他们出生时世界上还不存在计算机程序员。

当然,这些已经是历史了。现在世界上有很多程序员。劳动统计局在2008年对美国125万人进行了统计,大约每106个工作者当中就有1个是计算机程序员或软件工程师。这还没算美国之外的职业程序员、数不清的学生和业余编程爱好者,还有很多人从事其他正式工作,但却花费了一部分或很多时间来试图驯服计算机。虽然有数以百万计的人写过代码,虽然在编程出现后人们写过的代码没有数万亿行也有数十亿行,我们仍然不断地在这一领域进行创造。人们仍然在争论编程到底是数学还是工程,是工艺、艺术还是科学。我们仍然在(经常是带有强烈情绪地)争论编程的最佳方式,因特网上有无数的博客文章和论坛帖子来讨论这些问题。书店也摆满了各种论述新编程语言、新编程方法、新编程思想的书。

本书按照文学期刊《巴黎评论》(The Paris Review)的传统,采取了一种不同的方法来讲述什么是编程。这家期刊曾派了两位教授去采访小说家E. M. Forster,这次采访和随后的一系列问答式的采访后来辑录为Writers at Work一书。

我采访了15位成就斐然、经验丰富的程序员,其中有些人是系统黑客,如Ken Thompson(Unix的发明者)和Berhie Cosell(ARPANET早期实现者之一);有些人既有强大学术实力,本身又是著名黑客,如Donald Knuth、Guy Steele和Simon PeytonJones;有些人是业界的研究员,如IBM的Fran Allen,爱立信的Joe Armstrong,Google的Peter Norvig,以及曾在施乐帕克研究中心工作过的Dan Ingalls和L Peter Deutsch;有些人是Netscape的早期实现者,如Jamie Zawinski和Brendan Eich;有些人参与设计和实现了现在的万维网,如刚才提到的Eich,以及Douglas crockford和Joshua Bloch;还有Live Journal的发明人Brad Fitzpatrick(在伴随Web成长起来的一代程序员当中,他是一个当之无愧的典型)。

在采访中,我问他们有关编程的问题,问他们是怎么学习编程的,在编程过程中发现了什么,以及他们对未来的看法。而且我很用心地请他们多谈谈长久以来程序员一直在苦苦思索的那些问题:我们应该如何设计软件?编程语言在帮助我们提高生产力和避免错误方面扮演了什么角色?有什么办法可以更容易地查出难以发现的bug?

这些问题远远还没有解决,所以我的采访对象持有非常不同的观点也就不那么奇怪了。Jamie Zawinski和Dan Ingalls强调尽早让代码跑起来的重要性,而Joshua Bloch则描述了在实现之前,他如何设计API并测试它们能否支持要写的代码。Donald Knuth讲述了他在编写排版软件TeX的时候,怎样在敲代码之前先用铅笔在纸上完整地实现整个系统。Fran Allen大力批判近几十年来人们躺在C语言的脚下对计算机科学的兴趣越来越低,Bernie Cosell称之为“现代计算机最严重的安全问题”,Ken Thompson却认为安全问题是程序员而不是编程语言造成的,Donald Knuth也说C的指针是他所看到过的“最令人赞叹的记法改进之一”。一些受访者对“形式化证明可能有助于改善软件质量”这一观点嗤之以鼻,而Guy Steele则漂亮地展示了这种做法的优点和限制。

然而,仍然有一些主题是大家都认同的。几乎所有人都强调保持代码可读性是很重要的。大部分受访者都认为最难查找的bug出现在并发代码中。没有人认为编程问题已经完全解决了,他们大多数人仍然在寻找编写软件的更好办法,比如怎样自动分析代码,如何让程序员更好地协作,或者寻找(或设计)更好的编程语言。同时几乎所有人都认为多核cPu的大量采用将会给软件开发带来重大改变。

这些谈话发生在计算机发展史的一个特定时刻。因此,本书中讨论的一些话题在当前是紧迫问题,今后将不再是问题而变成了历史。但即使是像编程这种新兴领域,历史也能为我们提供很多教训。除此之外,我觉得我的受访者们可能有一些共识,包括什么是编程,如何更好地编程,等等,不仅现在的程序员会从中受益,未来几代程序员也将从中受益。

最后提一下本书的书名:coders at Work。这个书名与前面提到的《巴黎评论》出的Writers at Work系列以及Apress的Founders at Work(该书讲述如何创办技术公司,而本书讨论计算机编程)相呼应。我意识到编程涵盖的范围太广了,而“编码”(coding)则可以特指其中一个很窄的部分。我个人从不认为一个糟糕的程序员会是一个优秀的编码者,也不相信好的程序员会不是出色的设计者、沟通者和思考者。毋庸置疑,这些受访者都是优秀的编码者、程序员、设计者和思考者,而且还不仅仅如此。我相信接下来你在阅读他们的谈话内容时一定能够体会到这一点。希望你能喜欢这本书!

随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/3/1 17:38:03