《黑客与画家》读书笔记三(完结)
一旦自己的财产有了保证,那些想致富的人就会愿意去创造财富,而不是去偷窃。
由此导致的新技术不仅被转化为财富,还被转化成军事力量。
只要懂得藏富于民,国家就会变得强大。
不管是战争还是政治斗争,本质上都是属于偷窃。
中产阶级主要通过创造财富谋生。逐渐形成于封建主对抗的力量。
17世界的英国很像今天的第三世界,当官是公认的发财职业。那个年代要赚大钱仍然主要通过贪污,而不是经商。
19世纪典型的富人不是宫廷朝臣,而是实业家。
曾经手表都是机械表,价格越贵,走时越准。现在石英表出现了,一块普通的石英表反而比几十万的名牌机械表走时更准。
如今,确实有很多人非常有钱,完全不必再去工作,他们之所以还在工作,不是因为感到社会压力,而是因为无所事事使人感到孤独和消沉。
(工作不仅仅是为了钱,更是一种需要)
如果参观雅虎、英特尔、思科的办公室,会看到每个人都穿着差不多的衣服,彼此直呼对方的名字,不加任何头衔或敬语。(这种氛围最好的,就该如此)
好设计是简单的设计,好设计是解决主要问题的设计。好设计通常有点乐趣。好设计是艰苦的设计。需要付出。
充满自信的人常常像燕子一样,以一种居高临下的姿态轻盈地看待周围的一切。(要做个自信的人)
所有机器都有一张操作命令清单,让你可以控制它。(认识到了本质,精辟)
计算机刚发明的时候,所有程序就是一条条机器语言的命令。没过多久,程序就改成使用汇编语言了。(发展历程)
一个操作所需的代码越多,就越难避免bug,也越难发现它们。
如果你有了一个助手,他可以帮你承担那些麻烦的脏活。你只要告诉它怎么做,
你的助手就会用汇编语言来实现这条命令(假定他不会产生bug),这个助手就是编译器。
编译器,本身就是一个程序,作用是将简便方式书写的程序转变为硬件可以理解的指令。
这种简便方式书写的程序所使用的语言就是高级语言(c,c++,java)
高级语言还有一个优点,就是可移植性。
编译器不是高级语言唯一的实现方法,另一种方法是使用解析器。(php,ruby,python)
它的作用就是实时地将代码解释为相应的机器语言,然后一行一行运行。
编译器则是将整个程序全部翻译成机器语言,然后再运行。
你自己不能修正Windows的bug,因为你没有源码。
绝大对数程序猿在绝大多数时候都使用高级语言编程。只有少数最关键的部分肯尼个还会用到汇编语言,
比如开发某个计算机游戏时,需要在微观水平控制硬件,使得游戏速度得到最大限度的终极提高。
高级语言比汇编语言更接近人类语言,而某些高级语言又比其他语言更进一步。
举例来说,C语言是一种低层次的语言,很接近硬件,几乎堪称可移植的汇编语言。
有人些认为编程语言应该防止程序猿干蠢事,另一些人则认为程序猿应该可以用编程语言干一切他们想干的事。
Java语言是前一个阵营,Perl语言是后一个阵营。
在面向对象编程方式中,计算圆面积和正方形面积的代码可能分散在不同的文件中。与圆形相关的代码放在一个文件中,与正方形相关的放在另一个文件中。(很形象的说明了,面向对象的本质。)
直到20世界80年代,只有大机构才买得起开发编程语言所需的硬件,所以大多数编程语言都是大公司的教授或者研究员开发的。(从历史的角度看计算机语言发展)
出现了一些“头重脚轻”的语言,它们的内核设计得并不好,但是却有着无数强大的函数库。
函数库反而比语言更重要。
浪费程序员时间而不是浪费机器时间的才是真正的无效率。(语言的发展)
自下而上的编程方法意味着要把软件分成好几层,每一层都可以充当它上面那一层的开发语言。
ruby,Python是开源原件,酷。
Linux也是开源软件,酷。
拉丁语无助于你找工作,但是它可以训练你的思维。(读书,文学亦是如此。兴趣爱好,大底都是如此。)
商场如战场,对手摸不透你,你的胜算就增加了。
我们是一家小创业公司,拼尽全力写代码,只是为了给竞争对手布下重重障碍,不让他们赶上来。
编程语言,与其说它是技术,还不如说是程序员的思考模式。
之所以要设计Java,就是想解决C++的一些弱点。
在黑客圈子里,Perl被公认比Java酷得多。
大多数编程任务可能只要写一些很小的“胶水程序”,然后再把这些小程序连起来就行了。
一种出色的工具到了真正优秀的黑客手里,可以发挥出更大的威力。