读《编码》有感
2012-10-13 16:27
127 查看
去年在Stack Overflow上面看到一篇帖子,统计了计算机领域中最受好评的若干本书,其中就有这么一本《编码》。这本书的介绍让我印象很深,据说完全不懂计算机的人也能看懂,如今花了一个礼拜把这本书看完,发现确实如此。
当然,本书不完全讲的是冗长的编码。正如作者所说,本书并不是讲计算机“如何”工作的,这里的“如何”需要打上引号,原因是在这本书中讲述的过程不同于之前读过的任何一本专业书籍,书中也没有用到多少专业性的描述数据传递的插图,而是通过贴近生活的实际例子娓娓道来。从最初的编码到盲文再到二进制码,从手电筒的电学知识到电报机和继电器再到逻辑开关门电路,然后把这些知识拼接在一起,就组成了构造计算机最基本的一些要素。读此书的过程中,确实有种很神奇之感。
要我说,这本书虽然被描述为不懂计算机的人都能看懂,原因不在于这本书是极其浅显的通俗读物。相反,在本书中作者在暗地里介绍了很多专业知识,包括汇编语言,数字电路,计算机组成原理,操作系统等等,简直就是一个大杂烩。好在,作者凭借着他巧妙的写作方式,一个包袱一个包袱地把这些知识慢慢抛出,让之前完全没有听过这些东西的人也能够很容易理解。对我而言,尽管自己已经知道了这些,但还真是第一次发现原来这些知识之间衔接的如此紧密,自然受益颇多。
知识是需要成为体系的,只有这样才能够记住。我明白这句话的正确性。大学期间学习的课程,看上去每一门都是单独的,其实都含有一定的关联性,当然,作为学生没有发现这一点,一方面可以怪罪于老师的启发性不够,一方面要怪罪于自己没有努力去发现。在本科期间,我也是学好一门课算一门课,考试过了万岁,完全没有想到以后还需要用到。如今研究生开设了《矩阵分析》这门课,我才发现《线性代数》是多么的重要了。
上面扯得有点远了,显然,如果我在刚上大一的时候就读过这本书,也许能多少有点体会。构建一个人的知识体系结构的复杂程度显然不亚于构建一台计算机,一个个知识点正如那一个个晶体管,从零开始,成千上百万的组合在一起,最终就成为了神奇。
附:stack overflow统计截止后列出的完整表单--有些中文名就不翻译了
Code Complete (2nd edition) by Steve McConnell--代码大全
The Pragmatic Programmer--程序员修炼之道
Structure and Interpretation of Computer Programs--计算机程序的构造和解释
The C Programming Language by Kernighan and Ritchie--C程序设计语言
Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein--算法导论
Design Patterns by the Gang of Four--设计模式
Refactoring: Improving the Design of Existing Code--重构
The Mythical Man Month--人月神话
The Art of Computer Programming by Donald Knuth--计算机程序设计艺术
Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman--编译原理
G?del, Escher, Bach by Douglas Hofstadter--GEB集异壁之大成
Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin--代码简洁之道
Effective C++
More Effective C++
CODE by Charles Petzold--编码
Programming Pearls by Jon Bentley--编程珠玑
Working Effectively with Legacy Code by Michael C. Feathers--修改代码的艺术
Peopleware by Demarco and Lister--人件
Coders at Work by Peter Seibel--编程人生
Surely You're Joking, Mr. Feynman!--别闹了,费曼先生
Effective Java 2nd edition
Patterns of Enterprise Application Architecture by Martin Fowler--企业应用架构设计
The Little Schemer
The Seasoned Schemer
Why's (Poignant) Guide to Ruby
The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity--交互设计之路
The Art of Unix Programming--UNIX编程艺术
Test-Driven Development: By Example by Kent Beck--测试驱动开发
Practices of an Agile Developer--高效程序员的45个习惯
Don't Make Me Think
Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
Domain Driven Designs by Eric Evans
The Design of Everyday Things by Donald Norman
Modern C++ Design by Andrei Alexandrescu
Best Software Writing I by Joel Spolsky
The Practice of Programming by Kernighan and Pike
Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt
Software Estimation: Demystifying the Black Art by Steve McConnel
The Passionate Programmer (My Job Went To India) by Chad Fowler
Hackers: Heroes of the Computer Revolution
Algorithms + Data Structures = Programs
Writing Solid Code
JavaScript - The Good Parts
Getting Real by 37 Signals
Foundations of Programming by Karl Seguin
Computer Graphics: Principles and Practice in C (2nd Edition)
Thinking in Java by Bruce Eckel
The Elements of Computing Systems
Refactoring to Patterns by Joshua Kerievsky
Modern Operating Systems by Andrew S. Tanenbaum
The Annotated Turing
Things That Make Us Smart by Donald Norman
The Timeless Way of Building by Christopher Alexander
The Deadline: A Novel About Project Management by Tom DeMarco
The C++ Programming Language (3rd edition) by Stroustrup
Patterns of Enterprise Application Architecture
Computer Systems - A Programmer's Perspective
Agile Principles, Patterns, and Practices in C# by Robert C. Martin
Growing Object-Oriented Software, Guided by Tests
Framework Design Guidelines by Brad Abrams
Object Thinking by Dr. David West
Advanced Programming in the UNIX Environment by W. Richard Stevens
Hackers and Painters: Big Ideas from the Computer Age
The Soul of a New Machine by Tracy Kidder
CLR via C# by Jeffrey Richter
The Timeless Way of Building by Christopher Alexander
Design Patterns in C# by Steve Metsker
Alice in Wonderland by Lewis Carol
Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig
About Face - The Essentials of Interaction Design
Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky
The Tao of Programming
Computational Beauty of Nature
Writing Solid Code by Steve Maguire
Philip and Alex's Guide to Web Publishing
Object-Oriented Analysis and Design with Applications by Grady Booch
Effective Java by Joshua Bloch
Computability by N. J. Cutland
Masterminds of Programming
The Tao Te Ching
The Productive Programmer
The Art of Deception by Kevin Mitnick
The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan
Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp
Masters of Doom
Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas with Matt Hargett
How To Solve It by George Polya
The Alchemist by Paulo Coelho
Smalltalk-80: The Language and its Implementation
Writing Secure Code (2nd Edition) by Michael Howard
Introduction to Functional Programming by Philip Wadler and Richard Bird
No Bugs! by David Thielen
Rework by Jason Freid and DHH
JUnit in Action
相关文章推荐
- 情有千千劫,有感于程序编码的质量(一)
- 情有千千劫,有感于程序编码的质量(二)
- 外籍团队工作有感:2、关于编码规范
- 看百度提供的云推送服务端sdk代码有感面向对象和面向过程编码思维的区别
- 神奇的世界—读《编码-隐匿在计算机软硬件背后的语言》有感
- 情有千千劫,有感于程序编码的质量(三)
- 菜鸟有感:编码啊,编码!最终解决方案,不要再纠结!
- 编码的奥秘有感
- 做商品编码排序有感
- ANSI C的宽字节和汉字编码
- 几种图像显示的编码方式
- jsp Filter 实现编码过滤,和登录验证
- 读《马云创业启示录》有感
- 读30天自制操作系统有感,顺便回应米油兄
- 关于CocoStudio中AtlasLabel控件后台编码的一点备注
- 编码格式简介(ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE)(转)
- 修改linux下mysql的编码
- 编码:隐匿在计算机软硬件背后的语言(0)--前言
- 想接触音频、视频的编码以及相关的知识,不知有没有一些归纳好的知识点?——知乎大神
- java的编码和运行机