理想化的计算机科学知识体系

来源:互联网 发布:中商惠民员工被优化 编辑:程序博客网 时间:2024/04/28 07:00

http://bbs.byr.cn/#!article/SoftDesign/36586

来自北邮人论坛、

-∞.Theory 
    (Math, Number Theory, Graph, Automata, Geometry) 
-3.Hardware 
    (Processor Architecture, Memory Hierarchy, Cache,  System I/O) 
-2.Machine-Level Programming 
    (Assembly, Executable File Format, Linking & Loading) 
-1.Operating System  
    (Process & Thread, Memory Management, File System, I/O, Kernel & Drivers) 
  0.Programming Fundamentals  
    (Data Structure, Algorithms) 
+1.Programming Language 
    (Compilation, C is a must,; C++ Java recommended; C# Python JS, etc, optional) 
+2.Advanced Programming Frameworks and Libraries  
    (Windows Programming, Unix/Linux Programming; STL, MFC, Boost, TR1, Qt, GTK optional) 
+3.Programming Design and Software Engineering 
    (OOP Design Pattern is a must; Agile, RUP, Iterative, and other models are optional; Debugging and QA) 
+∞.Applications 
    (Computer Network, Database, Http & Web, Concurrent Programming, Distributed System ) 
  
理论是所有的基础 应用是最终的目标 
  
搞计算机科学的需要会[-∞, +∞] 
专注于软件开发的可以只管自然数 
刚入门的同学一般都从第1关开始玩 第1关以前的都是隐藏关 通几关以后你就会自然而然的想玩隐藏关了 
  
以下的是对应的书目(只限于我看过的 迫切需要大家补充) 
  
书名缩写: 
Advanced Programming in the UNIX Environment => APUE 
Computer System: A Programmer's Perspective => CSAPP 
The Art of Computer Programming => TAOCP 
Introductin to Algorithms, 2nd => CLRS 
The C Programming Language => K&R 
Design Patterns => GOF 
  
-∞.Theory 
    (《TAOCP》vol.1,ch.1) 
-3.Hardware 
    (《CSAPP》《Computer Architecture: A Quantitative Approach》) 
-2.Machine-Level Programming 
    (《CSAPP》,《Intel x86 Assembly Reference Manual》(工具书)《Linkers & Loaders》,有待补充) 
-1.Operating System  
    (《CSAPP》,《Modern Operating System》) 
  0.Programming Fundamentals  
    (《CLRS》,《TAOCP》vol1.ch.2) 
+1.Programming Language 
    (《Compilers》(龙书),《K&R》,《C++ Primer》,《Effective C++》,《Thinking in Java》,有待补充) 
+2.Advanced Programming Frameworks and Libraries  
    (《Programming Windows》, 《APUE》, 《深入浅出MFC》,有待补充) 
+3.Programming Design and Software Engineering 
    (《GOF》,知之甚少 有待补充) 
+∞.Applications 
    (《Computer Network》, 《TCP/IP 详解》《MySQL Manual》有待补充) 
  
感谢Lennon的补充 
  
后记 
1 纸上得来终觉浅,绝知此事要躬行 
   光看理论缺少实践就会变得跟包老师我一样只会忽悠, sigh~ 
   看低层就要动手写汇编和跟踪程序,看操作系统就要去读API的手册,学语言就要在实践中尽量把语言特性都用上 
  
2 无剑胜有剑 Thinking Beyond Languages 
   高级语言只是工具而已 作者这么设计必然是有他的道理的  
   不想当司机的厨子不是好裁缝 要像上帝一样去思考Know How, then Know Why 
  Concrete的书告诉你How Theoretical的书告诉你Why 
  
3 好记性不如烂笔头 看书不做笔记等于没看 
   这就好像是为每本书的内容做一个缓存 每次需要knowledge fetch的时候先查笔记cache  
   如果fault了就从书里把内容添加到笔记cache里 
  
4 美国一位海军将军在总结中途岛海战时说,对手所用的语言不够精确是他们失利的原因之一。 
   英语虽然没有汉语博大精深,但是在描述复杂问题上却可以化繁为简,避免语义模糊。 
   不信你用汉语和英语分别表述一下int (*(*func_ptr[10])(int, int))(int)看看 
   书尽量读英文版比较好 除非原书是中文写的 
------------------------------------------------------------------------------------------------------------------------

晚上和diyer的直系师弟聊了聊,后生可畏啊,我老了,呵呵。  
好书还是很重要的  
    
应要求,推荐几本书吧  
    
我看过的书有限,大家补充吧~~  
w最近不是看了很多好书么~~  
    
主要是一些基础方面的书  
    
1.《深入理解计算机系统》  
对于知识结构还没有建立起来的人,这本书再合适不过了。  
包括计算机组成,编译,汇编,操作系统等各方面内容,号称非CS专业必看。  
    
2.操作系统  
《现代操作系统》  
Andrew.Tananbaum 写的好书之一,相当不错,我看的就是这本  
《操作系统概念》  
计算机学院操作系统课程的教材,好书。  
    
3.计算机网络  
《计算机网络》  
Andrew.Tananbaum 写的好书之二,潘爱民翻译的,很赞。  
    
4.计算机组成和体系结构  
我是靠本院教材了解的,不过那些教材个人觉得很水。  
各位推荐一本这方面的?  
From  derkaiser: 《计算机体系结构-量化研究方法(4th)》  
From Birdman: 《Computer Organization and Design: Hardware/Software Interface》  
    
5.编译原理  
《编译原理》  
传说中的龙书,不二选择  
《Modern Compiler Implementation in C》  
虎书,在图书馆看到过。据说不错~  
    
6.数据库  
《数据库系统概念》  
帆船书,不二选择  
    
7.汇编  
《Intel 汇编程序设计》  
我看的,难度适中,适合像我这样希望熟悉掌握,当不打算精通的人看。书的习题也不错。附有光盘和程序库,刚入门的时候可以倚靠调用库函数来实现输出等功能,而不用调中断,或者自己写,容易上手。  
《Win32汇编程序设计》  
罗云彬的大作,C叔向我强力推荐过,可惜一直没有时间看。有空补上  
    
8.C++  
不用多说了。。。  
《C++ Primer》  
《The C++ Programming language》(《C++程序设计语言》)  
《Effective C++》  
《More Effective C++》  
听w说Exceptional系列也不错  
    
下面的书比较进阶了。  
From NE:  
Ruminations on C++   
Modern C++ Design   
    
From Windam:  
《C++语言设计与演化》(理解C++语言的发展历程)  
    
9.C  
《C专家编程》  
《The C Programming language》(《C程序设计语言》,又称 K&R C)  
在C标准问世前的事实标准,就是这本书。  
    
10.软件工程  
《人月神话》软件工程的鼻祖级著作  
《AGILE SOFTWARE DEVELOPMENT》ROBERT C. MARTIN 敏捷的经典  
    
FADETOBLACK:《Applying UML & Patterns 》  
    
11.算法  
《算法导论》  
也不用说了,博大精深,很多习题都值得思考  
《算法设计与分析基础》  
这本书好上手些,难度适中,适合入门或者复习用。  
《数据结构与算法分析——C语言描述》  
据说不错,我没看过。。  
    
From KajiRyouji :  
《编程之美(这个准备算法面试不错)》  
    
12.Linux  
    
From KajiRyouji :  
《APUE(UNIX环境高级编程)》  
POSIX API必备  
《深入理解linux内核》  
Linux内核必备  
《实战linux socket编程》  
    
13.JAVA  
From 小贝:  
《core java第一卷,第二卷 》  
《thinking in java 》  
《headfirst 设计模式》  
    
14.大杂烩,各种各样的好书~  
    
FROM PtwCJ:  
    
高效程序的奥秘<hacker's delight>   
编程珠玑(中文版一定要看第二版,第一版翻译很烂)   
程序设计实践(只有英文版)  
    
From Windam:  
    
科普类:《从一到无穷大》(对数学,科学,以及世界观的一次洗礼)   
重构代码方面:《修改代码的艺术》  Michael C. Feathers (对已有代码进行维护,修改的方法)  
    
From KajiRyouji :  
     
beautiful code(听说不错,读过其中两章,觉得还是等中文版)  
   

  

0 0
原创粉丝点击