70z

《天才程序员》Epub+Pdf+Mobi+Txt+Azw3 下载在线阅读

 《天才程序员》Epub+Pdf+Mobi+Txt+Azw3 下载在线阅读


出版年份: 2022-05

豆瓣评分:8.0

今天,程序员为我们构建了一个由代码创建的新世界。在本书中,作者从人类学角度反思了程序员的世界:他们是谁?他们怎么想?你的世界有什么了不起的?什么能让他们停下来思考?程序员是当今世界上具有影响力的人群,他们的文化丰富了人类文明。

通过详细的描述,本书让读者更接近世界上最优秀的程序员,包括Facebook News Feed和谷歌人工智能等开发团队的成员。从天才程序员到新手程序员,从后端开发到前端设计,Thompson 在采访中发现,—— 的行业独特精神结合了对逻辑的忠诚、对效率的痴迷、对解谜的热爱和对挫折的出色容忍度。

本书不仅生动地描绘了互联网时代天才程序员的群像,还深入挖掘了互联网的精神内核。进一步推动人类文明进步的,也是永恒的热血程序员永无止境的探索创新精神。

epubooks.top站是一个下载优质电子书的网站,书籍种类非常多,每个类目下的书籍资源都非常丰富,支持kindle、epub、mobi、azw3、pdf格式下载。以及在线阅读-epub,kindle,mobi,azw3,pdf格式!


一個下載優質電子書的網站,書籍種類非常多,每個類目下的書籍資源都非常豐富,支持kindle、epub、mobi、azw3、pdf格式下載。以及在線閱讀-epub,kindle,mobi,azw3,pdf格式!


=======================================================



记得收藏本站哟!每天都会更新

资源收集不易,还请帮忙点一点,是我的动力谢谢!!!!!!!!!!

如果有什么书本站没有,你也可以在评论处留言。我会第一时间去的!

收藏本站每日更新更多书籍!

资源地址: Epub版-----网盘密码1122

  MOBI版-----网盘密码1122

            PDF版------网盘密码1122

                  TxT版------网盘密码1122

    azw3版------网盘密码1122

=======================================================

部分简介:

四代程序员

The Four Waves of Coders

玛丽·艾伦·威尔克斯从未想过要成为软件工程师。早在20世纪50年代,年少的威尔克斯生活在马里兰州,当律师才是她的梦想。少年时期的威尔克斯就展露出她严谨缜密的逻辑推理能力。1951年,威尔克斯还在读初中,有一天地理老师突然对她说:“玛丽·艾伦,长大后你应该成为一名计算机程序员!”

啊?威尔克斯根本不知道老师在说什么,她不知道什么是程序员,甚至也不太清楚计算机是什么。其实在那个年代,大部分美国人都还不知道新奇的“数字化大脑”到底长什么样,是怎么运转的。当时距离第一批数字计算机的建成不过10年,这些机器都集中在大学和政府的实验室里,跟今天的计算机基本上没有相似之处。当时的计算机就是高能耗的计算器,科学家和军方用它来破解敌军的加密信息或计算炸弹的轨迹。后来,威尔克斯去了韦尔斯利学院攻读哲学本科学位,地理老师的那番话也被她深藏于脑海了。

4年后,威尔克斯快要毕业了,她意识到自己追求法律职业的道路可能极其艰难。1959年,法律界的性别歧视依旧很严重,极少有女性能够成为出庭律师。老师们的建议如出一辙:不要申请法学院。她回忆当时老师们的话:“申请也没用,你不会被录取的。就算真的被录取了,将来也很难毕业,就算真的毕业了,也很难找到工作。”就算她真的在法律界谋得一份工作,也无法成为出庭律师,也许只能去法律图书馆做管理员,也许去做法务秘书,处理信托或房产方面的事务。威尔克斯说:“我想成为出庭律师,然而在20世纪60年代,这是不可能实现的。”

这时,她想起初中老师关于编程的那番话。在大学里,她对计算机有了一些了解,据说这些机器会成为通往未来世界的钥匙。她也知道麻省理工学院(MIT)有一些计算机,于是在毕业之后的某一天,她让父母开车送她去麻省理工学院校园,然后她走进了招聘办公室,问道:“你们有计算机程序员的岗位吗?”

当然有啊,而且麻省理工学院聘用了她。是的,对于这名在计算机编程上毫无经验可言的求职者,这名突然晃荡到招聘办公室的求职者,麻省理工学院满心欢喜地录用了她。

在1959年,大家的计算机编程经验都极为有限。这门学科在当时还不能算正式建立,大学课程基本没有涉及,更别说有相关的大学专业了。(斯坦福大学直到1965年才建立计算机科学系。)那时,编程工作才刚刚开始朝着今天我们所知道的编程范式发展。从本质上说,计算机就是一个二进制开关的巨大集合,每个开关都代表一位(又叫1比特),可能是1,表示开,可能是0,表示关。比特聚在一起就可以做一些好玩的事情。把几个比特排列在一起就可以以二进制格式代表一些数字,如1101就代表13。还可以通过建立逻辑语句帮助程序员做出决策。例如,与门:开关1和开关2都是“开”,那就会开启第三个开关。或门:如果开关1或开关2为“开”,那么会开启第三个开关。把这些逻辑门连接在一起,电脑就会快速地进行加减法,还可以进行复杂的推理运算。为了更好地掌握这些二进制的机器,计算机科学家在20世纪50年代晚期开发了诸如Fortran、COBOL等编程语言,这样程序员就可以用更像英语的语言编写程序了。威尔克斯正是在这场革命的开端进入编程世界的。

无巧不成书,威尔克斯的哲学专业背景成为她的优势。在大学中,她学习了符号逻辑,也就是通过连接逻辑符号来表达不同的论述和推断,和“与门”“或门”的逻辑连接极其相似。这种思维方式可以追溯到亚里士多德,并在逻辑学家乔治·布尔和戈特弗里德·莱布尼茨的推动下得到发展。

很快,威尔克斯就对程序编写驾轻就熟了。她最先使用的是IBM 704,麻省理工学院最大的计算机之一。写代码的工作需要使用“汇编语言”,特别晦涩难懂,比如,“LXA A,K”——就是获取位于计算机内存位置A上的数字,然后加载到“索引寄存器”K上。在IBM 704上运行程序本身就非常麻烦。因为IBM 704可不像现在的计算机,它既没有键盘,也没有屏幕。威尔克斯要在纸上写下程序,交给打字员,打字员把每个命令打到打孔卡上,然后卡片被传给计算机操作员,他们把一堆卡片放入读卡器,之后计算机会执行程序,最终的输出结果会被打印机打出来。

更麻烦的是实验室计算机的“运行拥堵”。麻省理工学院的林肯实验室只有一台IBM 704,每台计算机一次只能运行一个程序。所以程序员就要排着队,轮流去运行自己写的程序,要是别人在用机器,那就只能等着。威尔克斯发现,编程工作真的非常需要耐心。她交了代码之后,还要几小时才能拿到结果,她正好可以休息一下,而庞大的IBM 704就在隐秘之处悄悄运转。程序员基本上见不到藏在深处的计算机,这个庞大的机器由专职技术人员日夜看护,他们时刻准备着在计算机零部件被烧毁时迅速进行更换。另外,计算机被放置在独立的房间里,也是为了隔离其产生的巨大热量。那个时候,计算机机房是麻省理工学院为数不多安装了空调的地方,要是没有制冷设备,计算机主板很快就会被烧毁。

威尔克斯静静等待自己的程序结果,当听到打印机咔嗒咔嗒仿若突然苏醒时,她终于能检查自己的成果了。当然,代码成果时常会和她预期的不一样。她可能犯了错,不小心弄出一个程序漏洞,整个计算过程被完全打乱。这个时候,她需要仔仔细细逐行审阅代码,力图推断出到底哪里出了问题,她恨不得把每一行代码都印进自己的脑子里,把自己的大脑当成IBM 704,想象这台大机器是如何运转这一行行代码的。然后她要重写代码,制作出新的打孔卡,再次放到计算机里,继续等待,如此循环往复。日积月累,威尔克斯学会了在写代码的时候不仅要精确,而且要俭省。那个时候,大部分计算机的运算能力都十分有限,IBM 704的内存一次只能处理4 000个单词。写代码就像写俳句或十四行诗,出色的程序员必定字斟句酌,写出的程序简洁而优雅,他们就像是用比特来作诗的文人。

威尔克斯回忆道:“那时的工作就像解逻辑谜题,而且是特别庞大而复杂的逻辑谜题。”她非常喜欢这份工作对精确度的要求,编程契合了她一丝不苟的个性。“我真的非常挑剔,可能都有点儿过分了。墙上的画挂歪了我一定会注意到……我想有一些人的思维就是这样的吧。”

谁的思维会是这样的呢?在20世纪60年代,大多数女性的思维都是这样的。今天说来可能有很多人不相信,在60年代,麻省理工学院林肯实验室的大部分专职程序员都是女性。而且,在那个时候,女性通常被认为拥有编程天赋。在当时,女性编程已经有了一定的传承:二战期间,英国布莱切利园是破译密码文件的重地,第一批用于密码破译的实验计算机有一部分就是由女性操作的;在美国,用于计算弹道轨迹的ENIAC计算机也是由女性来编程的。

当然,威尔克斯还是发现了性别差异。在那个时候,很多男性之所以不是全职的程序员,是因为大家的焦点一般都集中于硬件的搭建。工程师认为,硬件才是真正的挑战,才是获得合同和资金的关键。如何设计出更快读取内存的计算机?如何缩小计算机的尺寸?如何减少计算机的能耗?解决这些问题的工程师会得到麻省理工学院“研究员”的头衔,薪水更高,假期也更多。而机器的编程——指示机器如何工作——则被视作一种附属活动。因此,在林肯实验室,男性总是更希望参与新型计算器的电路设计。他们当然也能编程,也需要编程,但这并不是他们的人生目标。专职程序员不属于研究员序列,他们是为后者服务的。

即便如此,威尔克斯也非常享受实验室男女同事之间友好礼让的氛围,她喜欢和知识分子共事。她说:“我们都是沉迷于计算机的人。我们都是书呆子,穿得也像书呆子。”(这句话在20世纪60年代依旧意味着女生必须穿高跟鞋和半身裙,但是她可以选择更简单的衬衫,而且不需要穿西装外套。)“我和团队里的男性相处得很好,而且我的工作也比当秘书有意思多了。”

………

1961年,林肯实验室的负责人指派威尔克斯参与一个重要项目——帮助设计和建造LINC,这是一次大胆的尝试,目的是开发全球第一台真正意义上的个人计算机。项目的创意来自威斯利·克拉克,这名年轻的计算机设计师独具慧眼但狂傲不羁,他曾经因为不服从指示被麻省理工学院开除了两次,但每次都被重新聘用。他对晶体管的出现非常感兴趣,晶体管与真空管可以实现同样的效果——形成逻辑电路,成为计算机的核心,但是晶体管体积更小,能耗更低,不容易出现过热问题,启动速度也更快。克拉克希望打造世界上第一台真正的“个人计算机”,一台可以被放进办公室或实验室的机器。这样,科学家就不需要再排长队等待了,每个人都能拥有自己的机器进行运算。

克拉克尤其关注生物学家,因为他知道,生物学家需要在实验过程中处理大量数据。在那个时候,如果生物学家使用IBM(国际商业机器公司)大型计算机,就要到计算机实验室中去排队等待。如果他们的实验室里有自己的计算机,岂不美哉?他们可以及时进行运算,及时调整实验。而且,个人计算机还有键盘和屏幕,不需要打孔卡,也不需要打印机,编程的速度会大大加快。总之,这个计算机会使人类智慧与机器智慧交融共生,或者,如威尔克斯所说,这就是掌握了和LINC“对话的渠道”:输入代码,马上就会看到反馈结果。

克拉克知道自己和团队可以设计出硬件,但是他需要威尔克斯帮忙,创造出计算机的运行系统,这样就可以让用户实时掌控硬件。而且运行系统不能太复杂,最好让生物学家通过一天左右的培训就能上手。

在之后的两年中,威尔克斯和团队成员废寝忘食地投入项目,每天盯着流程图,思考着电路系统如何运行,思考人类要如何与计算机对话。她回忆道:“那时我们没日没夜地工作,吃的食物也很糟糕。”当他们终于有了一个原始的样机时,克拉克马上将其投入真实的生物学研究进行测试。他和同事查尔斯·莫尔纳把LINC计算机运到神经学家阿诺德·斯塔尔的实验室中。当时在斯塔尔的实验中,他需要记录猫在听到声音后的大脑神经信号,然而实验屡屡失败。斯塔尔将电极植入猫的大脑皮质,却无法准确分辨自己需要记录的神经电信号。莫尔纳花了几个小时写出程序——LINC会从扬声器中发出声音,可以准确记录电极每次受到的刺激,还可以将猫对声音的反应平均值显示在屏幕上。程序成功运行!数据在屏幕上滚动起来,几位科学家“在机器旁高兴得手舞足蹈”。

1964年,威尔克斯在欧洲各地旅游了一年。刚回到美国,克拉克就邀请她继续为LINC编写操作系统。不过那个时候,实验室已经搬到了圣路易斯,威尔克斯不愿意搬去那里。于是双方达成一致,她可以远程工作,他们把一台LINC计算机运到巴尔的摩她父母家中,就安装在二楼楼梯旁的起居室里,在那里人们仿佛窥见了一个非常奇怪的未来:来自《2001太空漫游》的人工智能电脑HAL降临美国城郊。计算机由几个大部件组成:一个高高的箱柜位于楼梯旁的桌子上,里面的磁带嗡嗡作响,一个比面包大不了多少的电脑屏幕闪动着数据,不远处还有一个冰箱大小的盒子装满了晶体管电路。在夹在硬件之间的桌子前,威尔克斯时常写代码写到凌晨,跟许多程序员一样,她也是个夜猫子。威尔克斯成为全世界最先在家庭中使用个人计算机的人之一。

她很快就完成了LINC的操作系统编写工作,还为新手编写了使用指南,解释了如何对它进行编程。(这又是一大开拓性的举动,在此之前,很少有人为毫无经验的新手撰写编程指南,因为没有计算机是面向新手设计的。)

威尔克斯现在已深深扎根于编程的世界。在这个大多数人都感到陌生的新领域中,她已经是经验丰富的专家了,全美各地不断有计算机公司成立,陆续向她发出了邀请。

然而,最初的梦想依然萦绕心间,威尔克斯依然想成为一名律师。她告诉我:“我终于也有了顿悟的那一刻,感觉自己的余生不想在编程中度过。”计算机方面的工作虽然能激发脑力,但缺乏社会关系的互动。威尔克斯说:“我可能需要具有更多人际交往的工作,不想在余生中的每一天都盯着流程图。”

于是,她向哈佛大学法学院提交了申请,而她的简历也激起了很多人的好奇心:这位30岁的女性会给奇怪又新潮的计算机编程,她到底是谁?她如愿被哈佛大学录取,几年后顺利毕业,在之后的40年中,如她最初所愿,她在法律界耕耘,包括参与庭审,在哈佛大学教授法律课程,也和米德尔塞克斯地区检察官办公室有合作。每次出庭前,她都会无微不至地做好准备工作,逐一思考庭审中可能出现的质询,一如她曾经仔仔细细地思考每一行代码。她说:“我真的很喜欢这个工作。”而且,她的业务专长之一就是科技法。

现在,大家对程序员的印象依旧停留在《硅谷》或《黑客军团》等电视剧塑造的形象上:穿着连帽卫衣或格子衫的年轻男性。在美国,程序员大多是白人,还有少量的印度裔或亚裔,他们基本上都不善交际。他们中的一些人隐隐带有反对传统权威的情绪,还有一些人就是为了快速赚到100万美元。

但在现实世界中,程序员的特点随着时间的推移也在不断变化。在计算机行业发展的不同阶段,能够成为程序员的人不尽相同,他们形成了几代截然不同的程序员群体。玛丽·艾伦·威尔克斯属于第一代程序员,当时他们并不认为编程是一种职业,他们是庞大团队的一部分。计算机设备都处于各类机构的管辖范围,所以真正能够操作计算机的人都是机构内的成员。

下一代程序员是20世纪60年代和70年代初出现的“黑客”。他们将自己视作叛逆者——将计算机编程带离古板而拘束的传统机构。

这种文化的诞生很大程度上源于麻省理工学院,因为当时AI(人工智能)实验室获得了威尔克斯设计的一些早期实时机器。这些计算机(如PDP-1)配备了输出屏幕和键盘,白天AI项目的研究生经常要使用它们,到了晚上,它们就空闲下来,有兴趣的人可以来找这些“对话”机器。

很快,实验室就聚集了一批痴迷于计算机的人。其中一位是清瘦的数学天才比尔·高斯珀,他时常花好几个小时在计算机上设计算法,解答数学或几何问题。(他早期的成就之一是写了一个破解独立钻石棋游戏的程序。)还有邋邋遢遢的瑞奇·格林布拉特,后来成为高产的编程专家,以及史蒂夫·拉塞尔,他沉迷于在计算机上设计交互式游戏。实验室中都是男性,他们的数量在不断增加,他们会彻夜待在那里。熄灯之后,伴着机器射出的诡异光线他们继续钻研。

与计算机直接展开高智商对话,这种感觉让他们着迷。在史蒂文·利维的《黑客》一书中,高斯珀表示,与计算机交流就像“键盘在手中有了生命,计算机能以毫秒的速度回应你的每个举动”。他们会有一个想法,编成代码,然后马上见到结果。之后不断推敲打磨,亲眼见证每个构思在屏幕上被生动地呈现出来。当他们开始新一轮的编程时,时间静止了。高斯珀说:“能够昼夜不停地工作让我很骄傲,日升日落不是我关心的事情。”格林布拉特的编程采用30小时轮班制,这导致他无法正常上课,最终因为考试不及格被麻省理工学院退学。(之后,他就在附近的城镇找了一份编程工作,晚上经常去麻省理工学院的AI实验室。)

有一点值得关注,那就是他们的编程不受任何人指使,他们是第一批能够利用计算机随心所欲进行创作的程序员。他们通过编程让计算机的震动扬声器以不同频率打开和关闭,形成有节奏的音乐。他们通过编程计算国际象棋的走法,其中有一个程序最终击败了人类棋手。拉塞尔创造了世界上第一款图像电子游戏《太空大战》——两名玩家各自操作一艘太空船,在黑洞附近互相射击以消灭对方。对当时的计算机制造公司来说,用价值12万美元的机器来玩游戏荒谬至极。但是麻省理工学院的黑客们认为,他们将编程从单纯的计数和解决科学问题的乏味历史中解放出来。在他们看来,编程本身就是一种充满乐趣的艺术行为。

这一代程序员正在建立利维所描述的“黑客道德”。他们认为自身担负着重要的责任,让世界上的所有人都可以与计算机直接互动。他们对代码也抱有更激进的开放态度:如果你写的代码很有用,那么你一定要与人分享。(这种开放精神延伸到了现实,当时麻省理工学院的领导层把计算机及相关设备锁在箱子里,于是程序员研究了开锁技能,把设备取了出来。)因此,程序员对权威与官僚体系非常不信任,那些人穿西装、打领带、剪短发,还把计算机锁了起来,这真让他们恼火。

相反,他们欣赏的是出色的代码,哪怕它们出自无名之辈之手。实验室里可不缺少年,团队中甚至还有12岁的孩子。有一位少年是戴维·席尔瓦,他14岁退学加入这个团队,专门研究黑客工作,后来成为实验室机器人编程方面的专家。当然,这也惹恼了人工智能专业的研究生,他们更看重理论研究,认为最重要的事情就是有一套诠释智能如何运行的理论,他们不觉得编码有趣。但席尔瓦与他们截然不同,他和其他黑客一样,更关心代码的运行。他认为,一个好的程序关键是要呈现实际效果。有一次,他让一个机器人把一个钱包推到房间另一头的球门里。在利维对他的访谈中,席尔瓦说:“这让他们很抓狂。因为我只是随便玩了几个星期,然后就可以让计算机做出他们之前很久都不能弄出来的事情。……他们总是在将所有东西理论化,我就是直接撸起袖子干。这在黑客中很常见。”

同时,黑客的世界也强烈反对商业化的世界。他们认为,代码是一种艺术表达形式,但不是那种申请版权并从中赚钱的艺术形式。相反,对于每一个好奇如何编程的人,他们应该免费提供代码,展示代码。这不就是大家学习的方式吗?而且,这也能让他们的发明与创作传播到世界的每一个角落。这种道德意识后来转变为“自由开源软件”行为,即公开发布自己的代码,允许所有人做出回应,对其加以利用。理查德·斯托曼等著名的麻省理工学院黑客都非常不满企业对代码实行保密的行为。有一次,某家生产LISP计算机的公司卖了一批产品给麻省理工学院,结果程序员发现,公司不愿意公开分享代码。这让斯托曼大为恼火,于是他发起了自由软件运动,同时他开始建立完整的运行系统,以确保每个人都享有检查和修改代码的权利,并为此搭建合法机制。黑客们其实不太关心传统意义上的党派政治,大多数人也仅仅是对越南战争的激辩有一些模糊的兴趣。然而,软件行业出现的政治现象引发了他们强烈的反应,至少斯托曼并不孤单。

不过,他们也是第一代将女性赶出这个行业的程序员。麻省理工学院实验室中常见的景象与威尔克斯之前工作的场景已经大不相同:基本上都是男性,谈吐生硬,过着“单身汉模式”的生活。正如他们自己所言,除了同类,他们没有兴趣和其他人交往。他们一心一意投入编程,仿若一场终身修行,心中再无他事。利维发现,“黑客工作甚至已经取代了生活中的性行为”。格林布拉特不爱洗澡还特别邋遢,最终被当地基督教青年会(YMCA)赶出了住所。越来越多的男性黑客晚上就睡在实验室里,编程的环境越来越像男生宿舍。

黑客们喜欢捣鼓代码,而麻省理工学院的计算机科学家需要利用机器完成重要的实验工作,两种不同的文化也产生了冲突。玛格丽特·汉密尔顿是当时麻省理工学院的程序员,她后来参与了美国国家航空航天局(NASA)的重要项目,其中包括帮助阿波罗计划安全登陆月球。在麻省理工学院实验室的时候,有一次,汉密尔顿要运行一个气象模拟模型,但是程序总是崩溃。后来她才知道,那是因为黑客们重新调整了计算机的汇编程序来满足自己的需求,之后没有调回原来的模式。他们想要摆弄漂亮的细胞自动机,汉密尔顿想要完成气象实验。但前者并没有考虑自身行为对他人工作造成的影响。

黑客们对彼此非常友善,但基本上不会谈论自己或他人的个人生活。有一名黑客后来叹了口气说:“我像机器人一样行走,像机器人一样说话,和一群机器人交流。”

到了20世纪80年代,计算机的性质再次发生改变。计算机设备的价格越来越低,新一代制造商决定向大众普及计算机。1976年在硅谷,斯蒂夫·沃兹尼亚克创造出第一代苹果计算机,这是首批拥有全新设计元素的计算机之一:可以直接接入普通电视机,开机后可以马上开始编程,就像坐在麻省理工学院实验室里的黑客一样。很快,其他制造商也追随苹果的脚步推出产品,价格一降再降,计算机开始走入中产阶级家庭。1981年,康懋达推出了VIC-20,一款价格仅为300美元的即插即用型计算机。当年始于威尔克斯的革命现在迅速地向美国家庭蔓延,尤其是青少年人群。

突然,青少年只要能攒到钱,就能很快进入编程的世界。其中就有詹姆斯·埃弗林厄姆。

埃弗林厄姆在宾夕法尼亚州的杜波依斯长大,非常靠近以电影《土拨鼠之日》闻名的旁苏托尼。1981年,15岁的埃弗林厄姆突然被朋友拽进了当地的蒙哥马利·沃德百货商店。原来,那时VIC-20刚上市不久,他的朋友想去看看。朋友在那些米色大块机器前喃喃自语,埃弗林厄姆却搞不明白那些机器到底有什么魔力,他抱怨说:“我是真的不懂,为什么有人想要这些计算机?你能用它干什么?”



发表评论

0 评论