个人学习计算机知识的一点心得体会在此分享:
一. 基础知识
-
《计算机科学概论(第11版).(美)布鲁克希尔》(《Computer Science: An Overview》 J. Glenn Brookshear)
从总体上描述了计算机科学的各个内容,对计算机科学的总面貌有了解。 -
视频推荐(B站有):
哈佛大学公开课:计算机科学CS50 CS50 Live
十分钟速成课:计算机科学 Crash Course Computer Science -
最好有不错的数学基础知识(以下书籍都较难,不会的话用到再查…):
《离散数学及其应用》(《Discrete mathematics and its applications》
Kenneth H·Rosen)
《具体数学》(《Concrete Mathematics: A Foundation for Computer Science》Ronald L.Graham / Oren Patashnik / Donald E.Knuth)
《概率论与数理统计(陈希孺)》
《线性代数及其应用》(《Linear Algebra and Its Applications》
David C. Lay )
《高等数学引论(华罗庚)》
二. 基础语言
- 汇编:
《汇编语言》 王爽 - C语言:
《C语言程序设计现代方法》(《C Programming: A Modern Approach》 K. N. King )相对来说清晰明了,适合入门)
《C程序设计语言》
(《The C Programming Language》 Dennis
M.Ritchie&Brian W.Kernighan, C经典之作) - C++语言:
《c++ Primer(第5版)》(《C++ Primer, 5th Edition》
Stanley B. Lippman /Josée Lajoie / Barbara E. Moo, C++经典之作)
《C++程序设计语言》
(《The C++ Programming Language》
比雅尼·斯特劳斯特鲁普 Bjarne Stroustrup(C++之父))
Effective系列:对C++有更深的理解
《Effective C ++ 》 Scott.Meyers
《MoreEffective C++ 》Scott.Meyers
《Effective STL 》Scott.Meyers - Python语言:
《Python从入门到实践》 (《Python Crash Course》Eric Matthes)
《流畅的Python》(《Fluent Python》 Luciano Ramalho)
三. 进阶
(1) 算法与数据结构:
- 《数据结构(C语言版)].严蔚敏》 可配合严老师的视频学习
- 《算法导论》(《Introduction to Algorithms》 Thomas H.Cormen / Charles E.Leiserson / Ronald L.Rivest / Clifford Stein,较难可配合算法导论视频课程食用)
- 《计算机程序设计艺术》(《The Art of Computer Programming》 Donald.E.Knuth, 读过一点点,能读完的都是牛人)
(2)计算机组成原理/操作系统
这两块我认为息息相关,密不可分的。
- 《编码:隐匿在计算机软硬件背后的语言(美)佩措尔德》(《Code: The Hidden Language of Computer Hardware and Software》 Charles Petzold,语言诙谐幽默,比喻贴切,值得一读)
- 《深入理解计算机系统》 (《Computer Systems: A Programmer’s Perspective》 Randal E.Bryant / David O’Hallaron,读懂你就通计算机了)
- 《Linux内核设计与实现》 (《Linux Kernel Development》 Robert Love,深入Linux内核源码层一窥,期待能贡献出Linux内核代码…)
- 《程序员的自我修养—链接、装载与库》潘爱民(讲述了系统软件的运行机制和原理,让你明白软件运行的方方面面)
- 《UNIX环境高级编程》(《Advanced Programming in the UNIX Environment》W.Richard Stevens,Unix编程圣经)
- 视频推荐:哈工大的计算机组成原理;哈工大李志军的操作系统
(3)网络相关:
网络是操作系统的重要组成,也是普通人用电脑的最大需求
- 《计算机网络》Andrew S·Tanenbaum (原理性的书籍,介绍了各种概念,很理论)
- 《计算机网络 自顶向下方法》(《Computer Networking:A Top-Down Approach》James F.Kurose / Keith W.Ross,自顶向下讲述网络,个人认为更加清晰)
- 《TCP/IP详解》三卷(《TCP/IP ILLustrated》W.Richard Stevens,据说这是网络饭碗的碗底了)
- 《UNIX网络编程》二卷(《Unix Network Programming》W.Richard Stevens,又是Stevens大神)
- 《数据库系统概念》(《Database System Concepts》Abraham Silberschatz / Henry F.Korth / S.Sudarshan,介绍数据库原理)
- 《mysql必知必会》(《MySQL Crash Course》Ben Forta,轻松入门MySQL)
- 视频推荐:韩立刚的计算机网络,配合教材《计算机网络 谢希仁》
四. 更高层
站的高看的远,不拘泥于细节
- 《代码大全》(《Code Complete》 Steve McConnell,授之于渔的一本书,介绍了软件开发的方方面面)
- 《软件需求最佳实践:SERU过程框架原理与应用》徐峰(分析软件需求,无论是产品经理还是开发者都应该阅读)
- 《UML用户指南》(《The Unified Modeling Language User Guide》Grady Booch / James Rumbaugh / Ivar Jacobson,使用UML语言去分析去建模)
- 《设计模式:可复用面向对象软件的基础》(《Design Patterns: Elements of Reusable Object-Oriented Software》 Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides ,对23种设计模式进行了细致的讨论,实践中应多多体会)
- 《设计心理学》(《The Design of Everyday Things》 Donald Norman,日常用品的设计哲学,与软件是相通的)
五. 最后说两句
以上书籍都是个人阅读过觉得很不错的(英文书籍有能力推荐读原文),个人审美不要求普遍性。
推荐书籍都是总括性的,视频的话上B站即可。如果要学习具体的行业会有更加详细的书籍,比如图形学编程可以用opencv,opengl,人工智能用深度学习框架,通信需要学习802.11协议,Linux驱动要学习Linux内核等等。
还有重要的是要有健康的身体,这需要规律的饮食作息和锻炼,不妨再推荐一本《精准拉伸:疼痛消除和损伤预防的针对性练习 克里斯蒂安·博格》。就先这么多,以后再补充。