《程序员的咆哮》阅读总结
编程界的数学
学校的数学教育体系是错误的,因为这是数学领域的连续知识,但是在现实生活中很多没有实际用处。
学校不教,现实中很有用的数学:统计,代数——线性代数,数理逻辑,信息论和柯氏复杂性
运用数学的第一步是:界定问题。当一个问题在手却不知道如何下手的时候,是最花时间的。
编译原理是计算机科学第二重要的科学,很重要,因为他非常切实的将你学到的几乎所有东西都捏合在了一起。
编译原理3个领域:
-
解析,词法分析,语法分析生成解析树
-
类型检查
-
代码生成的正确性
Google的面试
- 细的马克笔
- 大O复杂度分析
- 知道排序是怎么回事,两个nlog(n)的排序算法,比如快排和归并排序
- 哈希表是人类已知的最重要的数据结构,一定要弄明白原理。
- 树,必须弄懂
- 图,内存中表示图的方法有3中(指针和对象,矩阵,邻接表) 每次遇到问题首先考虑的是图算法。他们是任何关系里最基本,最灵活的方法。
- 基本的离散数学
- 操作系统:线程,进程,并发这些概念,掌握锁的概念,
- 编程,对一门语言的细节有相当的了解