黑客与画家摘录

作者:保罗.格雷厄姆

领域包括:哲学,计算机,艺术,绘画
做了一个叫Viaweb的软件,然后买给雅虎
后创立了YCombinator(简称YC)   \\早起针对大学生
其实Y Combinator是一个编程术语,意思是创造其他函数的函数

他的创业理念是:搭建原型  上线运营(别管bug) 收集反馈  调整产品  成长壮大
强调快速发布产品,关注用户需求,创始人的素质,小团队

书籍缘由

不喜欢大企业,离开了所在公司,经常发表文章,
本书就是文章的集合

书中的黑客

按照译者所说,黑客在本书的概念跟我们理解的不一样,书中的黑客是指
有专研创新,勇于攻克难题,编程水平高的程序员,如Linux的创始人

观点1:编程语言

编程语言带表着程序员的思维,
旅游网站Orbitz成功打入了竞争激烈的网络订房订票市场最主要的原因就是它
使用了一种更好的编程语言

观点2:书呆子

书呆子与学校体系,社会体系的关系,人性中带有黑暗的部分,小孩子更是,因为不受
成年人的待见,小孩子在学校创造出另外一个世界,里面有等级之分,有攻击与被攻击,欢迎与不受
欢迎,当其他小孩子都在关注欢迎与等级的时候,书呆子就想着其他更远的事情,

观点3:黑客与画家

黑客应该被列入哪一个职业类型???科学家?数学家?但在作者看来,黑客应该是与画家,作家,建筑师想类似,都是从事创作型的工作,比如说建造师跟构造师是同一个单词,所以要学好编程就
找跟其类似的学科研究

其二:在于程序设计,大公司都把软件的设计交给一个委员会,而不是交给一个黑客,但黑客更像是一个创作者,更设计者工作,所以面试程序员的时候,主要关注的事情就是看他们在业余时间写了什么软件

其三:画家在学习画画时,较好的学习方法就是临摹,相对与程序员来讲,更多的是去看优秀的源代码,而不是看他们的执行结果

其三:画家在画画是是先画一个大概的画像,然后再去添加细节,同理,编程也应该如此,当细节累计到一定程度时就会出现质变

其四:优秀的黑客还懂得换位思考,从用户的角度出发,软件的使用方式最好符合用户的直觉,别指望用户去读使用手册

观点4:不能说的话

不能说的话,作者在这一章主要提到几种不能说的话,其实这几种可以归纳为两种种,一种就是与主流观念相冲的话
比如说,在文化大革命里,你总不能说出某些话来,说出来就是反动,但是主流价值观(流行)不一定是对,大多数情况下都是错误的,第二种就是与某个组织相冲的话,(注:这个组织一般都是不太强也不太弱,太强就不怕你说闲话,太弱就不能不让你不说话),比如说广电,在引入外国的电影的时候就会做‘处理’,再比如旧世纪的教会等等,

如果你正好有这些不能说的话,那么作者的意见是,保持沉默,笑面相迎,远离人群,包持怀疑

而且你有这些‘不能说的话’,就相当于你拥有某些独特的思想,而这些思想可以成就一些伟大的事业

观点3:关于创业

要想迅速积累财富,唯一的入口就是可量化,可扩大性,小团队就表示可量化,而高科技就代表可扩大性

建议出售公司,管理公司跟创建公司不一样,出售可以确定百分百有收入,买家在意用户数量,换个角度来讲,要重视用户数量,这是一个重要的指标

开发过程不能过长,要“过早优化”,从用户那得到反馈,要让顾客满意

新技术是提供给所有人使用的,技术与使用者不能有太大差距,
要满足用户的需求

从经济学的角度来讲:创业公司就是让人加快工作的地方

观点4:关于设计

把品味说成个人偏好不正确,比如达芬奇的画和你女友画的画
好的设计是简单的设计,能够更直接的反映出核心问题
好的设计是永不过时的设计,就像数学的皆一样,千年过后还是美,直到被更好的取代
好的设计是解决问题的设计,生活上的一些设计
好的设计是启发性的设计,eg:蒙娜丽莎,引申到软件行业,就是可以给用户提供一些基本的模块,可以自由组合
好的设计是有点趣味性的设计
好的设计是艰苦的设计,但那是有益的艰苦,而不是无益的痛苦
好的设计是对称的设计(重复对称和递归对称),使问题变得简洁
好的设计是模仿大自然的设计(前提是达到了所要的条件)
好的设计是一种再设计:引申到产品设计的更新
好的设计是能够复制的设计:把事情作对比原创更重要,第一阶段:模仿,第二阶段:原创
好的设计是奇特的设计:eg计算机的Lisp语言
好的设计是大胆的设计:eg:爱因斯坦的相对论,不全面

总结:不要容忍丑陋的东西,其二要对某领域十分熟悉,优秀作品的秘诀就是:非常严格的品味,再加上实现这种品味的能力

功能应当决定形式:eg:鸟要飞翔,那么翅膀这形式不得不有,引申到开发来讲,如果开发艰难,那么形式分配的精力就少了
幽默性可以看做是一种力量的表现,拥有幽默感就代表你对厄运一笑了之
有时训练只是为了让身体养成下意识的反应,当面对难题时能更好的释放自己的直觉

观点5:关于编程

每个机器都有开关:比如说MP3的开机关机,下一首,暂停,等等;计算机也有自己的开关,那就是机器语言(二进制的0跟1)----》汇编语言(缺点:代码越多,越难避免bug)----》高级语言(优点:使程序更具有可植入性:比如:如果你是用汇编语言写的程序,那么你这程序只能在你的机器上运行,在别的机器上就运行不了,而高级语言就不一样)

编译器:把高级语言转化为计算机识别的机器语言,先将整个程序全部翻译成机器语言,然后运行

相对于编译器,还有一个是解析器

解析器:将代码解析成相应的机器语言,然后一行行运行

开发源码

编译器处理的高级语言代码又叫源码,
经过翻译的机器码就叫做目标码

开源软件:公开源代码的软件

编程语言的选择

抽象性:C语言是一种低层次语言,很接近硬件,几乎可称课移植的汇编语言(速度快)
        而Lisp语言的层次则相当高

静态语言:写代码时必须知道每个变量的类型

动态语言:可以把变量设置成任意类型的值

编程语言的文艺复兴,新语言的诞生

竞争中的语言选择

选择适合的语言可以快速开发产品,降低开发成本eg:Lisp,在商业竞争中使用Lisp会带来优势
如果不考虑其他因素的情况下,你不选择最强大的语言那你就是SB

作者在创业期间,对于了解竞争对手,有自己的一套,先是看看对方有没有试用版,然后就是比如说通过对手的招聘信息,招聘那个方面的人才用什么编程语言

业界的经理

不懂技术的经理(管理人员会顺从媒体上的意见,要求使用主流的语言,并认为语言都是差不多的)
但是各种编程语言的编程能力是不相同的,(比如新语言的诞生为了解决某些语言的不足)
编程语言现在的发展不过刚刚赶上了1958年Lisp语言的水平,
简单来说:编程语言的本质上不是一种技术,而是数学

Lisp语言的特别之处:9种新思想

不常用的语言(Lisp语言)也会有风险

衡量语言编程能力的最简单方法可能就是看代码数量:

语言的编程能力越大,写出来的程序就越短

总结:想要在软件业脱颖而出,就用强大的语言解决最难的问题,等待其他竞争对手经理随波逐流

关于黑客

在计算估计工业的历史上,新技术往往是由外部人员开发的,而且所占的比例可能要高于内部人员
eg:沃兹尼亚克在IBM外开发苹果一代

人们惊恐失措时采取的措施到头来产生了适得其反的效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值