《黑客与画家》阅读笔记

选修了高级软件工程的课程,老师给推荐了基本课外书籍,如下:

  • 《人月神话》 Frederick Brooks
  • 《人件》 Tom DeMarco
  • 《第五项修炼》 Peter M. Senge
  • 《黑客与画家》 Paul Graham
  • 《构建之法——现代软件工程》邹欣

最近看了下《黑客与画家》,将其中的一些要点感想记录下。

《黑客与画家》内容简介:

  本书是硅谷创业之父Paul Graham 的文集,主要介绍黑客即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。书中的内容不但有助于了解计算机编程的本质、互联网行业的规则,还会帮助读者了解我们这个时代,迫使读者独立思考。

几点感受:

  1、作者首先为黑客们正名,将黑客与入侵者去分开来。

  大部分人对黑客的认识与了解,就是整天呆在暗无天日的黑屋子了里,利用高超的计算机技术,通过无所不在的互联网,入侵个人、企业、政府等的计算机,获取私密信息或者其他有价值的数据,从而谋取私利。我在没有读这本书之前,大概也是这么理解的,但是在看过《黑客与画家》这本书后,我对黑客这个词或者“职业”有了不同的认识。

  在这本书里,对于黑客的注解是完全不同于传统对于黑客的定义,黑客真正的意义是指专家级的程序员,而能称得上黑客的都是在软件领域或者说计算机领域的“书呆子”-是技术领域的艺术家,是能够使用自己无与伦比的技术改变自己影响世界的人。黑客不是入侵者、破坏者,而是创造者,就如同画家一样,他们通过计算机艺术来创造新颖的技术或者思想。黑客崇尚自由,不喜约束。

  2、经济、创业、设计方面的一些问题。

  • 人们都觉得做生意是为了赚钱,但是金钱其实只是一种中介,让大家可以更方便的获得自己需要的东西。
  • 财富是创造出来的,创造出有价值的东西就是财富。
  • 要致富,需要两样东西:可测量性和可放大性。你的职位产生的业绩应该是可测量的,否则你做的再多,也不会得到更多的报酬。除此之外,你还必须有可放大性,也就是说你作出的决策能够产生巨大的效应。 
  • 真正创业后,竞争对手决定了你到底要吃付出多少努力。
  • 好设计是简单的设计,是永不过时的设计,是解决主要问题的设计,是启发性的设计,是艰苦的设计,是看似容易的设计,是堆成的设计,是模仿大自然的设计,是一种再设计,是能够复制的设计,是奇特的设计,往往是大胆的设计。

  3、编程方面的问题。

  • 机器语言就是计算机操作命令的一个清单,就像电热水壶允许开和闭一样,所以机器语言是计算机可以直接识别的。 
  • 汇编语言是机器语言的基础上换了一种更加人性化的名字(不像机器语言那样噩梦般的01码了) 。
  • 虽然汇编语言比机器语言更人性化,更容易让人理解,但是其编程效率还是很低。所以还需要更加简介的编程语言,如此随着硬件的发展,高级语言便诞生了。这样只需一个足够强大的编译器,利用高级语言编程就会节省很大的人力,从而提高软件编写效率。
  • 其实最接近数学的语言是最优秀的语言,这方面,Paul认为直到今天,最高级的主流语言也只是刚刚接近Lisp的水平。
  • 一些黑客只喜欢自己用的语言,反感其他所有的语言。另一些黑客则说所有的语言一个样(其实编程语言不是重点,编程思想才是关键)。语言之间确实有差别,但是很难确定哪一种语言才是最好的。 
  •  作者在书中把编程语言的进化与生物物种的进化做类比,说明很多语言往往会进入进化的死胡同,我们需要理清编程语言进化的脉络从而抓住主干,而不是把精力放在细枝末节最终会被淘汰的编程语言上。 
  • 好的程序是调试出来的,是通过不断的调试修改完善出来的。
原文地址:https://www.cnblogs.com/blog-zuo/p/4098250.html