您的位置:首页 > 其它

读《编码》有感

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: