`

读了《黑客与画家》(3)

阅读更多

第10章到第15章,解释黑客的工具(编程语言)和工作方法,这是黑客文化的基础核心。

> 编程语言解析

一个操作所需的代码越多,就越难避免bug,也越难发现它们

高级语言:使用更强大的命令开发程序,使程序更具可移植性

 

> 一百年后的编程语言

基本运算符是一种语言能否长期存在的最重要因素。

(买房:地段,地段,地段!)

公理越少越好。

冗余的代码导致更多冗余的代码。

内核最小、最干净的编程语言才会存在于进化的主干上。

(提高生活质量最有效的方法:定期扔东西)

$ 每一代人都在做上一代人觉得很浪费的事

提高编程语言效率的正确做法:将语言的语义与实现分离

一百年后的编程语言在理论上今天就能设计出来。

如果今天真能设计出这样一种语言,很可能现在就适合编程,并且能够产生更好的结果

 

> 拒绝平庸

(“接地气”是贬义词)

Lisp没有得到广泛使用的原因是因为编程语言是一种习惯性思维,非常难改变

(人类天性变化的速度大大慢于计算机硬件变化的速度,所以编程语言的发展通常比CPU的发展落后)

选择编程语言

一般应用程序 选择总体最强大、效率也在可接受范围内的编程
开发的程序必须与另一个程序紧密配合 选择后者的开发语言
只做一些很简单的事 选择比较靠近机器的底层语言
程序很短,只为特定场合一次性使用 根据目标问题,选择最强大函数库的语言

 

唯一洞悉所有语言优劣的人必然是懂得最强大的那种语言的人

在职位描述中大量使用IT词汇的公司不会构成威胁

能构成威胁的对手(威胁程度从低到高)

· 要求应聘者具有Oracle数据库经验的公司

· 招聘C++或Java程序员的公司

· 招聘Perl或Python程序员的公司

· 招聘Lisp黑客的公司

 

> 书呆子的复仇

(在高科技行业,只有失败者采用“业界最佳实践”)

$ 糟糕经理的特点:对技术一无所知且对技术有强烈的个人观点

(时刻提醒自己,千万不要越俎代庖)

选择不常用语言的缺点

程序无法和其它语言写的程序协同工作

如果能控制整个系统,且有各组成部分的源码,就能自己解决兼容性问题

找不到很多函数库

如果打算把开发的程序拿到市场上“卖”,说明规模够大,那么语言本身的编程能力比方便的函数库重要

不容易雇到程序员

雇佣黑客,使用高级语言,可以减少对程序员的需求

Lisp本质是数学。数学是不会过时的。

语言的编程能力越大,写出来的程序越短(独立的语法单位少)

如果想在软件业获得成功,就使用最强大的语言,用它解决最难的问题,等待竞争对手的经理做出自甘平庸的选择

程序的形式应该仅反映它所要解决的问题(功能应当决定形式)。

代码中其它任何外加的形式都表明对问题的抽象还不够。

 

> 梦寐以求的编程语言

(一种好的编程语言,是让黑客可以随心所欲使用的语言)

编程语言的最高境界:核心功能很少变化,函数库和开发环境等一直在发展。

$ 推广一种编程语言的方法:发展该语言早期的黑客用户。

用该编程语言开发一个杀手级应用,让黑客使用。

该语言有一个免费的好的实现。

为该语言找到一个依附的流行系统

· 可以导致“无法以一种语言本身的优缺点评判该语言”

· 只有当一种语言是某个系统的脚步语言时,它才能真正成为编程语言

一本介绍该语言的书

· 不能厚、文笔流畅、大量优秀范例、由O’Reilly出版发行

(有在线文档)

语法简洁

可编程性高

适合写一次性程序(容易装备、想用就用)

强大的函数库

· 优秀函数库的重要性将超过语言本身

方便性能调优(配套的性能分析器等)

长时间不断地推广

持续不断的再设计

对解决难题的可能性保持乐观,对当前解法的合理性保持怀疑

精选用户

单人完成设计(《人月神话》)。

(软件内部接口设计成垂直接口,层与层之间的接口完全由其中的一层控制。(感触不是非常深,求带))

 

> 设计与研究

设计追求好,研究追求新

交集:只有应用新的创意和理论,才会诞生超越前人的最佳设计;只有解决值得解决的难题(好的难题),才会诞生最佳研究。

$ 任何一个领域的最佳作品都不可能由对用户言听计从的人做出来

“用户需要的设计”不等于“用户要求的设计”

用户不了解所有可能的选择,经常弄错自己真正想要的东西

如果目标用户群体涵盖设计师本人,最有可能诞生优秀设计

先设定目标用户,才能评判设计。

评价一种语言的优劣,要看程序从无到有的那条完成路径是否漂亮

任何时候,代码都必须能够运行

画作永远没有完工的一天,只是不再画下去而已

$ 很难为低端用户设计出优秀产品(设计师没兴趣)

 

读了《黑客与画家》(1)
读了《黑客与画家》(2)

分享到:
评论

相关推荐

    《黑客与画家》电子书英文原版PDF

    ### 《黑客与画家》核心知识点解析 #### 一、书名解读:《黑客与画家》 《黑客与画家》这一书名本身就蕴含了丰富的意义。在这里,“黑客”并不是指那些非法入侵他人计算机系统的网络罪犯,而是指那些充满激情、极...

    MF1832132任贵杰-黑客与画家读后感1

    4.黑客与画家读后感 4.黑客与画家读后感 1. “建筑师决定做什么,工程师想出怎么做” 2. ”所以,在“计算机科学”的名下,数学家、物理学家、建筑师都不得不

    《黑客与画家》读书笔记_MF1632020_管登荣1

    《黑客与画家》是一本深入浅出的书籍,旨在让普通读者理解计算机时代的核心理念和黑客文化的内涵。作者通过自身的经历,揭示了黑客的成长过程、创新方式以及他们对世界的独特看法。书中的内容分为三个部分: 第一...

    黑客与画家

    根据提供的文件信息,“黑客与画家”是一本IT领域的书籍,主要围绕着计算机编程、软件开发以及创新思维等主题展开讨论。...无论你是对技术感兴趣的初学者还是经验丰富的专业人士,《黑客与画家》都值得一读。

    Hackers_and_Painters_-_Big_Ideas_from_the_Computer_Age

    保罗•格雷厄姆,《黑客与画家》一书的作者,硅谷创业之父。1964年,出生于匹兹堡郊区的一个中产阶级家庭。父亲是设计核反应堆的物理学家,母亲在家照看他和他的妹妹。青少年时代,格雷厄姆就开始编程。但是,他还...

    read-books:我读过的一些书的清单

    黑客与画家 富爸爸,穷爸爸 JavaScript高级程序设计(第3版) 彼得·林奇的成功投资 厚黑学 超越自卑 你不知道JavaScript(上卷) JavaScript语言精粹 2015: JavaScript权威指南 Web全栈工程师的自我修养 ECMAScript...

    软件人员一生必看的六十本书.rar

    8. **个人成长与领导力**:《黑客与画家》(Paul Graham)和《技术领导之路》(Nicolaj Larsen)等,关注软件人的思维拓展和领导力培养。 9. **前沿技术**:可能会包含有关AI、大数据、云计算、区块链等领域的最新...

    Linux之父林纳斯自传.pdf

    )事实上林纳斯也是不善于社交的,他把幼年的自己定位成书呆子(看完这本书和上周的《黑客与画家》我可丝毫不觉得书呆子是什么贬义词,有机会我也想成书呆子啊呵呵。)成天待在自己的小黑屋中摆弄着电脑,因此他母亲...

    Memory-Palace:记忆宫殿(对看过的优秀资料的整理,欢迎增删改)

    补充些内容: 《黑客与画家》、《编程珠玑》I和II、《台湾大学机器学习基石课程》&&《台湾大学机器学习技法课程》等update 2015/02/06这学期以来,可能每天 写论文/改论文 会占据大部分时间,导致有时候对写和读已经...

    在线matlab代码格式化-the-adventure-journey-of-a-programming-learner:一位土木专业编程爱好

    平日里读《黑客与画家》、《终极算法》,各位大神不断击垮我思维里的旧墙,带我领略墙外的新风景,自己备受鼓舞之后,心里不断冒出一个声音:做些什么吧,工作和生活都值得变得更好。我能想到自己完成第一份VB作业时...

Global site tag (gtag.js) - Google Analytics