这个列表包括了 100 多本经典技术书籍,涵盖:计算机系统与网络、系统架构、算法与数据结构、前端开发、后端开发、移动开发、数据库、测试、项目与团队、程序员职业修炼、求职面试 和 编程相关的经典书籍。
计算机系统与网络
《图灵的秘密:他的生平、思想及论文解读》
《计算机系统概论》
《深入理解Linux内核》
《深入Linux内核架构》
《TCP/IP详解 卷1:协议》
《Linux系统编程(第2版)》
《Linux内核设计与实现(第3版)》
《深入理解计算机系统(原书第2版)》
《计算机程序的构造和解释(原书第2版)》
《编码:隐匿在计算机软硬件背后的语言》
《性能之颠:洞悉系统、企业与云计算》
《UNIX网络编程 卷1:套接字联网API(第3版)》
《UNIX网络编程 卷2:进程间通信》
《Windows核心编程(第5版)》
《WireShark网络分析就这么简单》
《WireShark网络分析的艺术》
编程通用
《编程原本》
《代码大全》
《UNIX编程艺术》
《代码整洁之道》
《编程珠玑(第2版)》
《编程珠玑(续)》
《软件调试的艺术》
《编程语言实现模式》
《编写可读代码的艺术》
《精通正则表达式(第3版)》
《编译原理(第2版)》龙书
《重构:改善既有代码的设计》
《七周七语言:理解多种编程范型》
《调试九法:软硬件错误的排查之道》
《计算的本质:深入剖析程序和计算机》
《设计模式 : 可复用面向对象软件的基础》
算法与数据结构
《算法(第4版)》
《算法导论(原书第2版)》
《Python算法教程》
《算法设计与分析基础(第3版)》
《学习 JavaScript 数据结构与算法》
《数据结构与算法分析 : C++描述(第4版)》
《数据结构与算法分析 : C语言描述(第2版)》
《数据结构与算法分析 : Java语言描述(第2版)》
职业修炼与规划
《大教堂与集市》
《程序员的职业素养》
《程序员修炼之道:从小工到专家》
《软件开发者路线图:从学徒到高手》
《我编程,我快乐: 程序员职业规划之道》
《程序员的思维修炼:开发认知潜能的九堂课》
《高效程序员的45个习惯:敏捷开发修炼之道(修订版)》
大师访谈
《编程大师智慧》
《编程大师访谈录》
《编程人生 : 15位软件先驱访谈录( 上卷)》
《编程人生 : 15位软件先驱访谈录( 下卷)》
《奇思妙想 : 15位计算机天才及其重大发现》
《图灵和ACM图灵奖》
架构/性能
《微服务设计》
《大数据日知录》
《企业应用架构模式》
《Web性能权威指南》
《SRE:Google运维解密》
《发布!软件的设计与部署》
《高扩展性网站的 50 条原则》
《大型网站技术架构:核心原理与案例分析》
《恰如其分的软件架构:风险驱动的设计方法》
《软件系统架构:使用视点和视角与利益相关者合作(第2版)》
Web前端
《高性能 JavaScript》
《锋利的 jQuery(第2版)》
《JavaScript 忍者秘籍》
《编写可维护的 JavaScript》
《你不知道的 JavaScript(上卷)》
《你不知道的 JavaScript(中卷)》
《JavaScript 权威指南(第6版)》
《JavaScript 语言精粹(修订版)》
《JavaScript DOM编程艺术 (第2版)》
《JavaScript 高级程序设计(第3版)》
《JavaScript 异步编程:设计快速响应的网络应用》
《Effective JavaScript:编写高质量JavaScript代码的68个有效方法》
《HTML5 权威指南》
《HTML5 秘籍(第2版)》
《HTML5 与 CSS3 基础教程(第八版)》
《CSS 揭秘》
《CSS 设计指南(第3版)》
《CSS 权威指南(第3版)》
Java开发
《Java8 实战》
《Java并发编程实战》
《Java性能权威指南》
《Java程序员修炼之道》
《实战Java高并发程序设计》
《Java编程思想 (第4版)》
《深入理解Java虚拟机(第2版)》
《Effective java 中文版(第2版)》
《Java核心技术·卷1:基础知识(原书第9版)》
《Java核心技术·卷2:高级特性(原书第9版)》
.NET
《精通C#(第6版)》
《深入理解C#(第3版)》
《CLR via C#(第4版)》
Python
《集体智慧编程》
《笨办法学Python》
《Python基础教程》
《Head First Python》
《与孩子一起学编程》
《Python学习手册(第4版)》
《Python Cookbook(第3版)》
《Python参考手册(第4版)》
《Python核心编程(第3版)》
《Python科学计算(第2版)》
《利用 Python 进行数据分析》
《Think Python:像计算机科学家一样思考Python(第2版)》
《Python编程实战:运用设计模式、并发和程序库创建高质量程序》
《Python绝技:运用Python成为顶级黑客》
《Flask Web开发:基于Python的Web应用开发实战》
Android
《Android编程权威指南(第2版)》
《移动应用UI设计模式(第2版)》
iOS
《iOS编程实战》
《iOS编程(第4版)》
《Objective-C高级编程》
《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》
PHP
《Head First PHP &MySQL(中文版)》
《深入PHP:面向对象、模式与实践(第3版)》
C语言
《C和指针》
《C专家编程》
《C陷阱与缺陷》
《C语言接口与实现》
《C程序设计语言(第2版)》
C++
《C++标准库》
《C++编程思想》
《C++程序设计原理与实践》
《C++ Primer (中文第5版)》
《C++ Primer习题集(第5版) 》
《C++程序设计语言(第1-3部分)(原书第4版) 》
《Effective C++:改善程序与设计的55个具体做法(第3版)(中文版) 》
《More Effective C++:35个改善编程与设计的有效方法(中文版) 》
机器学习和数据挖掘
《数据之巅》
《矩阵分析》
《机器学习》
《统计学习方法》
《机器学习导论》
《推荐系统实践》
《机器学习实战》
《Web数据挖掘》
《深入浅出统计学》
《模式分类(第2版)》
《概率论与数理统计》
《统计学习基础(第2版) 》
《数据挖掘:概念与技术(第3版)》
《数据挖掘:实用机器学习工具与技术(原书第3版)》
《大数据:互联网大规模数据挖掘与分布式处理(第2版)》
数据库
《SQL应用重构》
《SQL Cookbook》
《高性能MySQL (第3版)》
《MySQL技术内幕 : InnoDB存储引擎(第2版)》
《深入浅出MySQL : 数据库开发、优化与管理维护》
测试
《探索式软件测试》
《有效的单元测试》
《Google软件测试之道》
项目与团队
《人月神话》
《快速软件开发》
《人件(原书第3版)》
《门后的秘密:卓越管理的故事》
《极客与团队:软件工程师的团队生存秘笈》
求职面试
《程序员面试金典(第5版)》
《编程之美 : 微软技术面试心得》
《金领简历:敲开苹果、微软、谷歌的大门》
《剑指Offer:名企面试官精讲典型编程题(纪念版)》
编程之外
《暗时间》
《数学之美》
《精益创业》
《批判性思维》
《世界是数字的》
《程序员的数学》
《程序员健康指南》
《禅与摩托车维修艺术》
《关键对话:如何高效能沟通》
《写作法宝:非虚构写作指南》
《黑客与画家 : 来自计算机时代的高见》
《软件随想录(卷1)》《软件随想录(卷2)》
《如何把事情做到最好》
大家有什么好书推荐欢迎在评论中留言。
注:本文转自伯乐在线。
因人而异
自学肯定也是可以的,最主要还是要看个人的学习能力,意志力,和自己的决心,
下面我就说一下,在自学时需要注意的一些误区和如何自学前端知识。
前端自学者存在的学习误区:
1、所学东西可能已过时
奉为经典的东西可能已经过时,或者已经有了更好的替代者,而你获取信息的渠道有限,消息滞后,导致学习的内容也相对滞后。
2、学习方法盲目。
看书看不懂就找视频类教程学习,觉得教程跟自己的口味不符就另寻他法,因为自己缺少对资源的辨识能力,总是在没有清晰规划学习线路的情况就盲目学习,导致无效学习时间过长而收获寥寥。
3、只有理论,缺乏真实项目锻炼。
对技术的理解停留在理论层次,而缺乏真实企业项目的历练,如果没有相关实习或工作经历,对前端岗位具体的责任划分和工作流程了解不充分。
如何自学前端知识:
自学方法:
1、作为一个初学者,你必须明确系统的学习方案,我建议一定有一个指导的人,全靠自己学,放弃的几率非常大,在你对于web前端还没有任何概念的时候,需要一个人领进门,之后就都靠自己钻研,第一步就是确定web前端都需要哪些内容,并且在多少时间内学完,建议时间6个月保底。
2、视频为主,书为辅。很多初学者在学习前端的时候非常喜欢去买书,但是最后的结果是什么?看来看去什么都不会写,所以在这里给大家提醒,书可以看,但是是在建立于你已经对于某个知识点有了具体操作的执行后,在用书去巩固概念,这样更加利于你对于知识的理解。
3、对于学习技术来讲,掌握一个学习方法是非常重要的,其实对于学习web前端来讲,学习方法确实很多都是相通的,一旦学习方法不对,可能就会造成“方法不对,努力白费”。其实关于这方面还是很多的,我就简单说个例子,有的人边听课边跟着敲代码,这样就不对,听课的时候就专心听,做题的时候就专心做题,这都是过来人的经验,一定要听。根据每个人的不同,可能学习方法也会有所出路,找到适合你自己的学习法方法是学习的前提。
4、不建议自己一个人瞎学,在我了解学习编程的这些人来看,从零基础开始学并且最后成功做这份工作的其实并没有几个,我觉得大部分原因就是因为他们都不了解web前端是干什么的,学什么的,就盲目的买书看,到处找视频看,最后看着看着就放弃了,所以我建议初学者在没有具体概念之前,还是找有经验的人请教一下,聊过之后你就会知道web前端具体是干什么的,该怎么学,这是我个人的小建议,可以不采纳。
学前端的话,书籍是必不可少的:
1、《JavaScript高级程序设计(第3版) 红皮书 》,适合有一定编程经验的Web应用开发人员阅读,也可作为高校及社会实用技术培训相关专业课程的教材。
2、《JavaScript权威指南(第6版)》 犀牛书,本书不仅适合初学者系统学习,也适合有经验的 JavaScript 开发者随手翻阅。
3、《JavaScript DOM编程艺术 (第2版)》,本书在简洁明快地讲述JavaScript和DOM的基本知识之后,通过几个实例演示了专业水准的网页开发技术,透彻阐述了平稳退化等一批至关重要的 JavaScript编程原则和最佳实践,并全面探讨了HTML5以及jQuery等JavaScript库。
4、《CSS权威指南(第三版)》,不管你是一个有经验的Web开发人员还是一个彻底的初学者,《CSS权威指南(第3版)》都是你的CSS学习源泉。
5、《JavaScript设计模式》,适合JavaScript初学者、前端设计者、JavaScript程序员学习,也可以作为大专院校相关专业师生的学习用书,以及培训学校的教材。
6、《你不知道的JavaScript(上中下卷) 》,本书既适合JavaScript语言初学者了解其精髓,又适合经验丰富的JavaScript开发人员深入学习。
7、《Vue.js权威指南》,该书内容全面,讲解细致,实例丰富,适用于各层次的开发者。
学习路线:
第1阶段:前端页面重构(4周)
内容包含了:(PC端网站布局项目、HTML5+CSS3基础项目、WebApp页面布局项目)
第2阶段:JavaScript高级程序设计(5周)
内容包含:(原生JavaScript交互功能开发项目、面向对象进阶与ES5/ES6应用项目、JavaScript工具库自主研发项目)
第3阶段:PC端全栈项目开发(3周)
内容包含:(jQuery经典交互特效开发、HTTP协议、Ajax进阶与PHP/JAVA开发项目、前端工程化与模块化应用项目、PC端网站开发项目、PC端管理信息系统前端开发项目)
第4阶段:移动端项目开发(6周)
内容包含:(Touch端项目、微信场景项目、应用Angular+Ionic开发WebApp项目、应用Vue.js开发WebApp项目、应用React.js开发WebApp项目)
第5阶段:混合(Hybrid,ReactNative)开发(1周)
内容包含:(微信小程序开发、ReactNative、各类混合应用开发)
第6阶段:NodeJS全栈开发(1周)
内容包括:(WebApp后端系统开发、一、NodeJS基础与NodeJS核心模块二、Express三、noSQL数据库)
视频教程:
网页链接