在你自学计算机的路上，哪些书籍对你的帮助最大?
这个问题里隐含了一个假设，那就是学计算机要先读书。这个假设是错的。很多学科都要从读书学起。但计算机不同，读书是最后一步。 学习游泳，如果如果老师不让你先下水，反而用语言向你描述胳膊腿该怎样动，你应该会非常抓狂。编程是强实践学科，通过读书来自学计算机与此没什么区别。 学游泳，应该先掌握基本动作，先能游起来。然后教练一点点优化你的动作，让你越来越快。教练不会一股脑的把全部要点都罗列给你。而那些计算机的大厚书也同理。它们让起步阶段承载太多不必要的难度。 这个问题下推荐的书我基本都读过或翻过。不读书看起来政治错误，但不是空穴来风。开始的时候你很容易纠结哪本书能带给我需要的知识。不是这样的，自学的过程你最缺乏的不是找不到信息源，而是坚持不下去。觉得读完这本书我就是大神，这是个幻觉，只是个寄托。 好，这个普遍的误区我已经纠正了。后面说说该怎么自学。 要先实践。实践过程中你会有很多成就感，这给你动力进一步探索。探索过程中你会遇到瓶颈，当StackOverflow无法满足你，这时候再去查阅书籍。 为了你的实践，你可以跟一些网课，那里有设计好的练习作为你实践的内容。什么实践好呢？那种有反馈，有清晰的答案和要求的实践最有效。如果没有清晰的目标和答案，你就没有一个参考去纠正自己，最后只训练了打字速度。在实践的过程中，攻略、总结、W3School这种内容更易读，更容易上手。我自己上过https://www.lynda.com的网课，觉得很精良。近年似乎也有优秀的中文网课出现。 如果没有想法，我这里给个例子。你不妨试着写一个扫雷游戏。下面的代码是我几年前写的，里面还有自学时看的视频课链接。通过重复这个练习，你就能体会到那种逐步知道事情该怎么做的过程，这将大大超过读书所得。 我们再回到读书。有两种情况还是需要读书的。第一种是学理论。计算机虽然找工作大多是编程，但理论也是必备的。比如算法与数据结构、计算机组成原理、编译原理、操作系统，这些不太能通过实践学到，就是需要读书和上课。但书里面普遍细节过多，超过了必备的部分，即使科班出身也记不住大部分细节。必备的部分主要在大学课程的PPT里。第二种是前面提到的入门之后的深入拔高阶段。这时候搜索引擎的内容已经无法满足要求。它们能快速解决问题但并不深入。比如，StackOverFlow会让你查查是不是某个参数用错了，而书里可能会讲某个语法的全部用法和注意事项。这时候读书才能继续提高。工作后，选定了技术路线，就应该开始读书，但初学阶段不太需要。 现在有些国内的作者也会出一些比较易读的书，比如xxx从入门到精通一类。这类书也蛮适合入门，一定程度和网络教程很类似。而计算机经典书籍就不同了。你想想技术更迭如此迅速，那些书之所以成为经典，就一定是非常抽象和全面的。也因此必然与日常所需有较大的跨度。