这本书是访谈了四位一线软件工程师,个个都是大牛:

  • 郄(qiè)小虎,腾讯公司副总裁。用吴军老师的话说,“谷歌中国历史上最好的工程师,没有之一,当属郄小虎。”
  • 陈皓老师,是软件工程师圈子里出了名的“皓叔”,“左耳朵耗子”,从业20多年,堪称“骨灰级程序员”,也相当了不得。
  • 陈智峰,谷歌大脑的首席工程师。
  • 鲁鹏俊,唯品会联席CTO。

本书讲述如何从码农到专家的实用性指导,这里我列出他们的推荐书单。

1 零基础入门

· [美]Warren Sande, Carter Sande: 《与孩子一起学编程》 (Hello World! Computer Programming for Kids and OtherBeginners),人民邮电出版社2010年版。
推荐理由:这本书通过Python语言教你如何写程序,是一本老少咸宜的编程书。它会教你编一些小游戏,还会帮你了解基本的编程知识,相当不错。

·[美]Al Sweigart: 《Python编程快速上手》 (Automate the Boring Stuff with Python: Practical Programming for TotalBeginners),人民邮电出版社2016年版。

· [美]Eric Matthes: 《Python编程:从入门到实践》 (Python Crash Course),人民邮电出版社2016年版。
推荐理由:如果你想比较系统地学习Python编程,推荐你阅读上面两本书。它们是零基础入门非常不错的图书,里面有大量实用的示例和项目,可以快速给你正反馈。

2 正式入门

·[美]Steve McConnell: 《代码大全(第2版)》 (CodeComplete),电子工业出版社2006年版。
推荐理由:编程路上,这本书可以陪你走很久,每隔一段时间读都会有不同的收获。它虽然有点过时了,而且厚到可以垫显示器,但绝对是一本经典书。

· [美] Cay S. Horstmann: 《Java核心技术·卷I(原书第10版)》 (Core Java Volume I-Fundamentals),机械工业出版社2016年版。
推荐理由:这本书除了能让你了解Java的语法,还会让你了解面向对象编程是个什么概念。

[美]Craig Walls: 《Spring Boot实战》 (Spring Boot inAction),人民邮电出版社2016年版。
推荐理由:既然学习Java了,那就一定要学Java的框架Spring。作为新手,这本书里可能会有很多你从来没听过的东西,比如IoC、AOP等,能看懂多少就看多少。

鸟哥: 《鸟哥的Linux私房菜:基础学习篇》 ,人民邮电出版社2010年版。
推荐理由:这本书会让你对计算机和操作系统,以及Linux有一个非常全面的了解,让你能够管理或操作好一个Linux系统。当然,这本书里有比较多的专业知识,新手可能会看不懂,没关系,暂时略过就好了。

[英]Ben Forta: 《MySQL必知必会》 (MySQL Crash Course),人民邮电出版社2009年版。
推荐理由:如果你想学习或使用数据库,可以看看这本书。
在学习专业的软件开发知识之前,你需要看看软件工程师修养类的图书。有修养的程序员才有可能成长为真正的工程师和架构师。

[美]Martin Fowler: 《重构:改善既有代码的设计》 (Refactoring:Improving the Design of Existing Code),人民邮电出版社2010年版。
推荐理由:这本书的意义不仅在于指导你识别代码的坏味道,改善既有代码的设计,更在于帮你从一开始构建代码的时候避免不良代码风格。

[美]Michael C.Feathers: 《修改代码的艺术》 (Working Effectively with Legacy Code),人民邮电出版社2007年版。
推荐理由:继 《重构》 后探讨修改代码技术的又一里程碑式著作,不仅可以帮你掌握最顶尖的代码修改技术,还能大大提高你对代码和软件开发的领悟力。

[美]Robert C. Martin: 《代码整洁之道》 (Clean Code),人民邮电出版社2020年版。

推荐理由:这本书提出了一种观念——代码质量与其整洁度成正比。阅读这本书有两个理由——第一,你是个软件工程师;第二,你想成为更好的软件工程师。
· [美]Robert C. Martin: 《代码整洁之道:程序员的职业素养》 ing:Improving the Design of Existing Code),人民邮电出版社2010年版。

推荐理由:这本书的意义不仅在于指导你识别代码的坏味道,改善既有代码的设计,更在于帮你从一开始构建代码的时候避免不良代码风格。

[美]Michael C.Feathers: 《修改代码的艺术》 (Working Effectively with Legacy Code),人民邮电出版社2007年版。

推荐理由:继 《重构》 后探讨修改代码技术的又一里程碑式著作,不仅可以帮你掌握最顶尖的代码修改技术,还能大大提高你对代码和软件开发的领悟力。

[美]Robert C. Martin: 《代码整洁之道》 (Clean Code),人民邮电出版社2020年版。

推荐理由:这本书提出了一种观念——代码质量与其整洁度成正比。阅读这本书有两个理由——第一,你是个软件工程师;第二,你想成为更好的软件工程师。

[美]Robert C. Martin: 《代码整洁之道:程序员的职业素养》 (The Clean Coder:A Code of Conduct for Professional Programmers),
人民邮电出版社2016年版。

推荐理由:编程大师Bob大叔(Robert C. Martin)40余年编程生涯的心得体会,为你讲解成为真正专业的软件工程师需要什么样的态度、原则,需要采取什么样的行动。

[美]Andrew Hunt, David Thomas: 《程序员修炼之道(第2版):通向务实的最高境界》 (Pragmatic Programmer:From Journeyman to Master),电子工业出版社2020年版。

推荐理由:这本书相当经典,是一本教你如何务实的书,教你成为高级软件工程师。

[美]Jeff Atwood: 《高效能程序员的修炼:软件开发远不只是写代码那样简单……》 (Effective Programming: More Than WritingCode),人民邮电出版社2013年版。

推荐理由:这本书是杰夫·阿特伍德(Jeff Atwood)的博文选集,记录了他在软件开发过程中的所思所想、点点滴滴。

[美]Frederick P. Brooks. Jr.: 《人月神话》 (The Mythical Man-Month),清华大学出版社2002年版。

推荐理由:这本书针对管理复杂项目提供了颇具洞察力的见解,可能有点过时,但还是经典。

[美]Charles Petzold: 《编码:隐匿在计算机软硬件背后的语言》 (Code: The Hidden Language of Computer Hardware andSoftware),电子工业出版社2010年版。

推荐理由:帮你理解计算机工作原理,这种理解不是抽象层面上的,而是具有一定深度的。
·
[美]Paul Graham: 《黑客与画家:硅谷创业之父Paul Graham文集》 (Hackers and Painters: Big Ideas from the Computer Age),人民邮电出版社2011年版。

推荐理由:这本书介绍了黑客(即优秀软件工程师)是如何工作的,带你了解他们的爱好、动机、工作方法,不仅有助于你理解计算机编程的本质和互联网行业的规则,还能帮你理解我们所处的时代。
·
[美]Gerald M. Weinberg: 《完美软件:对软件测试的各种幻想》 (Perfect Software: and Other Illusions about Testing),电子工业出版社2009年版。

推荐理由:这本书讨论了与软件测试有关的各种心理问题、表现和应对方法,有助于开发人员就软件测试的目的和实现过程进行更好的沟通。

[美]James A. Whittaker等: 《Google软件测试之道:像 Google一样进行软件测试》 (How Google Tests Software),人民邮电出版社2013年版。

推荐理由:从内部视角告诉你,谷歌这家公司是如何应对21世纪软件测试的独特挑战的。

3 专业进阶

(1)编程语言

· Joshua Bloch, Effective Java, Addison-WesleyProfessional,2018.

推荐理由:一本非常不错的书,基本上都是经验之谈,值得一读。

· [美]Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer,David Holmes, Doug Lea: 《Java 并发编程实战》 (Java Concurrencyin Practice),机械工业出版社2012年版。

推荐理由:一本完美的 Java 并发参考手册。·[美]Scott Oaks: 《Java 性能权威指南》 (Java Performance:The Definitive Guide),人民邮电出版社2016年版。

推荐理由:看完这本书,你可以大幅度地提升性能测试的效果。

· 周志明: 《深入理解Java虚拟机(第2版)》 ,机械工业出版社2013年版。

推荐理由:如果看完上一本书你还有余力,想了解更多底层细节,那么你有必要读读这本书。

· [美] Bruce Eckel: 《Java 编程思想(第4版)》 (Thinking in Java),机械工业出版社2007年版。

推荐理由:一本透着编程思想的书,让你从一个宏观角度了解Java。但这本书的信息密度比较大,读起来非常耗大脑,因为它会让你不断思考。

· 陈雄华等: 《精通Spring 4.x:企业应用开发实战》 ,电子工业出版社2017年版。

推荐理由:这本书对Spring技术的应用与原理讲得很透彻,对IoC和。·[美]Scott Oaks: 《Java 性能权威指南》 (Java Performance:The Definitive Guide),人民邮电出版社2016年版。

推荐理由:看完这本书,你可以大幅度地提升性能测试的效果。

· 周志明: 《深入理解Java虚拟机(第2版)》 ,机械工业出版社2013年版。

推荐理由:如果看完上一本书你还有余力,想了解更多底层细节,那么你有必要读读这本书。

· [美] Bruce Eckel: 《Java 编程思想(第4版)》 (Thinking in Java),机械工业出版社2007年版。

推荐理由:一本透着编程思想的书,让你从一个宏观角度了解Java。但这本书的信息密度比较大,读起来非常耗大脑,因为它会让你不断思考。

· 陈雄华等: 《精通Spring 4.x:企业应用开发实战》 ,电子工业出版社2017年版。

推荐理由:这本书对Spring技术的应用与原理讲得很透彻,对IoC和AOP也分析得很棒。不足之处是内容太多导致书很厚,但并不影响它是一本不错的工具书。

· [美]Erich Gamma等: 《设计模式:可复用面向对象软件的基础》 (Design Patterns: Elements of Reusable Object-Oriented Software),机械工业出版社2000年版。

推荐理由:面向对象设计的经典书籍,被誉为有史以来最伟大的软件开发书之一。

· [美]Brian W. Kernighan, Dennis M. Ritchie: 《C程序设计语言》 (The C Programming Language),机械工业出版社2004年版。

推荐理由:著名科学家布莱恩·柯林汉和“C语言之父”丹尼斯·里奇合作的圣经级教科书。它很轻薄,简洁不枯燥,躺在床上看也不会睡着。

· [美]K. N. King: 《C 语言程序设计现代方法》 (C Programming:A Modern Approach),人民邮电出版社2007年版。

推荐理由:一本非常经典的C语言的书,书里都是干货。

· [美]Andrew Koenig: 《C陷阱与缺陷: C语言调试指南》 (C Traps and Pitfalls),人民邮电出版社2008年版。

推荐理由:帮你发现C语言在泛型编程上的各种问题。

· [美] Stanley B. Lippman等: 《C++ Primer中文版(第5版)》 (C++Primer),电子工业出版社2013年版。

推荐理由:一本久负盛名的C++经典教程。

· [美]Scott Meyers: 《Effective C++:改善程序与设计的55个具体做法》 (Effective C++: 55 Specific Ways to Improve Your Programs and Designs),电子工业出版社2006版。

· [美]Scott Meyers: 《More Effective C++:35个改善编程与设计的有效方法》 (More Effective C++:35 New Ways to Improve YourPrograms and Designs),电子工业出版社2011年版。

推荐理由:C++中两本经典得不能再经典的书。也许你觉得 C++复杂,但这两本书带来的对代码稳定性的探索方式让人受益,因为这种思维方式同样可以用在其他地方。

· [美] Stanley B. Lippman: 《深度探索C++对象模型》 (Insidethe C++Object Model),电子工业出版社2012年版。

推荐理由:看完这本书,C++对你来说就再也没有秘密可言。但它非。

· [美] Stanley B. Lippman等: 《C++ Primer中文版(第5版)》 (C++Primer),电子工业出版社2013年版。

推荐理由:一本久负盛名的C++经典教程。

· [美]Scott Meyers: 《Effective C++:改善程序与设计的55个具体做法》 (Effective C++: 55 Specific Ways to Improve Your Programs and Designs),电子工业出版社2006版。

· [美]Scott Meyers: 《More Effective C++:35个改善编程与设计的有效方法》 (More Effective C++:35 New Ways to Improve YourPrograms and Designs),电子工业出版社2011年版。

推荐理由:C++中两本经典得不能再经典的书。也许你觉得 C++复杂,但这两本书带来的对代码稳定性的探索方式让人受益,因为这种思维方式同样可以用在其他地方。

· [美] Stanley B. Lippman: 《深度探索C++对象模型》 (Insidethe C++Object Model),电子工业出版社2012年版。

推荐理由:看完这本书,C++对你来说就再也没有秘密可言。但它非常难啃,你可以挑战一下。

· Brian W.Kernighan, Alan Donovan, The Go Programming Language, Addison-Wesley Professional,2015.

推荐理由:C语言太原始,C++太复杂,Go语言是不二之选。有了C语言和C++的功底,学习Go语言非常简单。

(2)理论学科

· [美]Robert Sedgewick, Kevin Wayne: 《算法(英文版·第4版)》 (Algorithms),人民邮电出版社2012年版。

推荐理由:算法领域的经典参考书,不但全面介绍了关于算法和数据结构的必备知识,还给出了每位软件工程师应该会的50个算法。·[美]Aditya Bhargava: 《算法图解》 (Grokking Algorithms: Anillustrated guide for programmers and other curious people),人民邮电出版社2017年版。

推荐理由:如果觉得算法书枯燥的话,这本比较有趣。

· [美]Thomas H. Cormen等: 《算法导论(原书第3版)》 (Introduction to Algorithms),机械工业出版社2012年版。

推荐理由:美国高校的本科生教材,也应该是中国计算机专业学生的教材。·[美]Jon Bentley: 《编程珠玑(第2版)》 (ProgrammingPearls),人民邮电出版社2008年版。

推荐理由:一本经典的算法书,作者是世界著名计算机科学家乔恩·本特利(Jon Bentley), 被誉为影响算法发展的十位大师之一。·[美]Mark Allen Weiss: 《数据结构与算法分析》 (Data Structures and Algorithm Analysis in C),机械工业出版社2004年版。

推荐理由:这本书曾被评为20世纪顶尖的30部计算机著作之一,作者在数据结构和算法分析方面卓有建树。

· [美]Donald E. Knuth: 《计算机程序设计艺术》 系列(The Art ofComputer Programming),人民邮电出版社。

推荐理由:包含一切基础算法的宝典,是它教给了一代软件开发人员关于计算机程序设计的绝大多数知识。

· [美]Abraham Silberschatz等: 《数据库系统概念》 (DatebaseSystem Concepts),机械工业出版社2006年版。

推荐理由:数据库系统方面的经典教材之一。国际上许多著名大学,包括斯坦福大学、耶鲁大学等都采用本书作为教科书。·[美]Andrew S·Tanenbaum: 《现代操作系统》 (Modern Operating Systems),机械工业出版社2009年版。

推荐理由:操作系统领域的经典之作,书中集中讨论了操作系统的基本原理,包括进程、线程、存储管理、死锁等。

· [美] James F. Kurose , Keith W. Ross: 《计算机网络(第4版):自顶向下方法》 (Computer Networking: A Top-Down Approach),机械工业出版社2009年版。

推荐理由:这本书采用了独创的自顶向下方法,即从应用层开始沿协议栈向下讲解计算机网络的基本原理,强调应用层范例和应用编程接口,内容深入浅出,是一本不可多得的教科书。

· [美]Harold Abelson等: 《计算机程序的构造和解释(原书第2版)》 (Structure and Interpretation of Computer Programs),机械工业出版社2004年版。

推荐理由:MIT计算机科学系的教材,主要介绍了很多程序是怎么构造出来的,以及程序的本质是什么。经典中的经典,必读。[美] Alfred V. Aho: 《编译原理:原理、技术与工具》 (Compilers: Principles, Techniques&Tools),机械工业出版社2008年版。

推荐理由:这本书又叫“龙书”,全面、深入地探讨了编译器设计方面的重要主题。

(3)系统知识

· [美]Randal E. Bryant, David O’Hallaron: 《深入理解计算机系统(原书2版)》 (Computer Systems: A Programmer’sPerspective),机械工业出版社2011年版。

推荐理由:这本书的英文版久负盛名,被众多专业人士称为“最伟大的计算机教材之一”,透彻讲述计算机系统的扛鼎之作。

· [美]W.Richard Stevens, Stephen A. Rago: 《Unix环境高级编程(第2版)》 (Advanced Programming in the UNIX Environment),人民邮电出版社2006年版。

· [美]W. Richard Stevens, Bill Fenner, Andrew M. Rudoff: 《UNIX 网络编程 卷1:套接口 API(第3版)》 (Unix Network Progr。[美] Alfred V. Aho: 《编译原理:原理、技术与工具》 (Compilers: Principles, Techniques&Tools),机械工业出版社2008年版。

推荐理由:这本书又叫“龙书”,全面、深入地探讨了编译器设计方面的重要主题。(3)系统知识

· [美]Randal E. Bryant, David O’Hallaron: 《深入理解计算机系统(原书2版)》 (Computer Systems: A Programmer’sPerspective),机械工业出版社2011年版。

推荐理由:这本书的英文版久负盛名,被众多专业人士称为“最伟大的计算机教材之一”,透彻讲述计算机系统的扛鼎之作。

· [美]W.Richard Stevens, Stephen A Rago: 《Unix环境高级编程(第2版)》 (Advanced Programming in the UNIX Environment),人民邮电出版社2006年版。

· [美]W. Richard Stevens, Bill Fenner, Andrew M. Rudoff: 《UNIX 网络编程 卷1:套接口 API(第3版)》 (Unix Network Programming, Volume 1: The Sockets Networking API),人民邮电出版社2006年版。

· [美]W. Richard Stevens: 《UNIX 网络编程卷2:进程间通信》 (UNIX Network Programming, Volume 2:Interprocess Communications),人民邮电出版社2009年版。

· [美]W. Richard Stevens: 《TCP/IP详解 卷1:协议》 (TCP/IPIllustrated Volume 1: The Protocols),机械工业出版社2000 年版。

推荐理由:美国计算机科学家理查德·史蒂文斯 (Richard Stevens)参与编写的四本经典书。它们可能不容易读,一方面是比较厚,另一方面是知识密度太大了,所以读起来有点枯燥和乏味,但没办法,你得忍住。

· 宋劲杉: 《Linux C编程一站式学习》 ,电子工业出版社2009年版。

· [韩]尹圣雨: 《TCP/IP网络编程》 ,人民邮电出版社2014年版。

· [日]竹下隆史等: 《图解TCP/IP(第5版)》 ,人民邮电出版社2013年版。

· [美]Charles M. Kozierok: 《TCP/IP指南(卷1):底层核心协议》 (The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference),人民邮电出版社2008年版。

推荐理由:如果你觉得之前几本理查德·史蒂文斯的经典书比较难啃,可以试试这四本通俗易懂的(当然,如果读得懂之前的,这四本也就不需要读了)。

· [美]Chris Sanders: 《Wireshark数据包分析实战》 (PracticalPacket Analysis: Using Wireshark to Solve Real-World Network Problems),人民邮电出版社2013年版。

推荐理由:学习网络协议只看书还不够,你最好用个抓包工具看看这些网络包是什么样的。这本书结合一些简单易懂的实际网络案例,图文并茂地演示使用Wireshark进行数据包分析的技术方法,可以帮我们更好地了解和学习网络协议。

· [德] Michael Kerrisk: 《Linux/UNIX系统编程手册》 (The LinuxProgramming Interface: A Linux and UNIX System ProgrammingHandbook),人民邮电出版社2014年版。

· [美] Robert Love: 《Linux 系统编程(第二版)》 (Linux System Programming),东南大学出版社2014年版。

推荐理由:看完 《Unix环境高级编程(第2版)》 后,你可以趁热打铁看看上面这两本书。

(4)软件设计

· [美] Eric Evans: 《领域驱动设计:软件核心复杂性应对之道》 (Domain-Driven Design: Tackling Complexity in the Heart of Software),人民邮电出版社2016年版。

推荐理由:这本书是领域驱动设计方面的经典之作,全书围绕着设计和开发实践,结合项目案例,阐述了如何在真实的软件开发中应用领域驱动设计。·[美]Eric S. Raymond: 《Unix编程艺术》 (The Art of UNIX Programming),电子工业出版社2006年版。

推荐理由:介绍了UNIX系统领域中的设计和开发哲学、思想文化体系、原则与经验,改变你对编程的认知和理解。·[美]Robert C. Martin: 《架构整洁之道》 (CleanArchitecture),电子工业出版社2018年版。

推荐理由:一本很不错的架构类图书,对软件架构的元素、方法等讲得很清楚。书里的示例都比较简单,并带一些软件变化历史的讲述,很开阔视野。

4 高手精进

· [美]Andrew S. Tanenbaum, David J. Wetherall: 《计算机网络(第5版)》 (Computer Networks),清华大学出版社2012年版。

推荐理由:这本书和前面推荐的 《计算机网络(第4版):自顶向下方法》 不一样,前一本偏扫盲,这一本有很多细节,是国内外使用最广泛、最权威的计算机网络经典教材。

· [美]David Gourley, Brian Totty: 《HTTP权威指南》 (HTTP:TheDefinitive Guide),人民邮电出版社2012年版。

推荐理由:这本书有点厚,可以当参考书来看,可以让你了解HTTP协议的绝大多数特性。

· [美] Thomas Kyte: 《Oracle Database 9i/10g/11g编程艺术》 (Expert Oracle Database Architecture: Oracle Database Programming 9i, 10g, and 11g Techniques and Solutions),人民邮电出版社2011年版。

推荐理由:关系型数据库最主要的两个代表是闭源的Oracle和开源的MySQL。如果你要玩Oracle,推荐你看这本书。这本书的作者是Oracle的技术副总裁,他也是世界顶级的Oracle专家。

· [美] Baron Schwartz: 《高性能MySQL(第3版)》 (High Performance MySQL),电子工业出版社2013年版。

推荐理由:这本书是MySQL领域的经典之作,拥有广泛的影响力,不但适合数据库管理员(DBA)阅读,也适合开发人员参考学习。

· 姜承尧: 《MySQL技术内幕:InnoDB存储引擎(第2版)》 ,机械工业出版社2013年版。

推荐理由:如果你对MySQL的内部原理有兴趣的话,可以看看这本书。

· [美]Tapio Lahdenmaki, Michael Leach: 《数据库索引设计与优化》 (Relational Database Index Design and the Optimizers),电子工业出版社2015年版。

推荐理由:这本书对于索引性能进行了非常清楚的估算,不像其他书只是模糊的描述。

· [美] Nick Dimiduk, Amandeep Khurana: 《HBase实战》 (HBase in Action),人民邮电出版社2013年版。·[美]Lars George: 《HBase权威指南》 (HBase: The DefinitiveGuide),东南大学出版社2012年版。

推荐理由:关于HBase,推荐你看这两本书,第一本是偏实践的,第二本书是偏大而全的手册型的。

· [美]Andrew S. Tanenbaum: 《分布式系统原理与范型(第2版)》 (Distributed Systems: Principles and Paradigms),清华大学出版社2008年版。

推荐理由:这本书是分布式系统方面的经典教材,介绍了分布式系统的七大核心原理,并给出了大量的例子。但它不是一本指导“如何做”的手册,仅适合系统性地学习基础知识。

· 《Kubernetes Handbook——Kubernetes 中文指南/云原生应用架构实践手册》 , https://jimmysong.io/kubernetes-handbook/。

推荐理由:这是一本开源的电子书,记录了作者从零开始学习、使用Kubernetes的心路历程,着重于经验总结和分享,同时也会有相关的概念》** (HBase in Action),人民邮电出版社2013年版。·[美]Lars George: 《HBase权威指南》 (HBase: The DefinitiveGuide),东南大学出版社2012年版。

推荐理由:关于HBase,推荐你看这两本书,第一本是偏实践的,第二本书是偏大而全的手册型的。

· [美]Andrew S. Tanenbaum: 《分布式系统原理与范型(第2版)》 (Distributed Systems: Principles and Paradigms),清华大学出版社2008年版。

推荐理由:这本书是分布式系统方面的经典教材,介绍了分布式系统的七大核心原理,并给出了大量的例子。但它不是一本指导“如何做”的手册,仅适合系统性地学习基础知识。

· 《Kubernetes Handbook——Kubernetes 中文指南/云原生应用架构实践手册》 , https://jimmysong.io/kubernetes-handbook/。

推荐理由:这是一本开源的电子书,记录了作者从零开始学习、使用Kubernetes的心路历程,着重于经验总结和分享,同时也会有相关的概念解析。

· Christopher Bishop, Pattern Recognition and Machine Learning, Springer,2007.

推荐理由:这本书是机器学习领域的经典之作,也是众多高校机器学习研究生课程的教科书。·[美]Ian Goodfellow: 《深度学习》 (Deep Learning:AdaptiveComputation and Machine Learning series),人民邮电出版社2017年版。

推荐理由:深度学习领域奠基性的经典教材。

· Aurélien Géron, Hands-On Machine Learning with Scikit-Learnand TensorFlow, O’Reilly Media,2017.

推荐理由:一本以TensorFlow为工具的机器学习入门书。

· [美]Jason Fried, [丹]David Heinemeier Hansson: 《重来:更为简单有效的商业思维》 (Rework),中信出版社2010 年版。

推荐理由:每一个梦想着能拥有自己事业的人必读。

· [美]Peter Thiel, Blake Masters: 《从0到1:开启商业与未来的秘密》 (Zero to One: Notes on Startups, or How to Build theFuture),中信出版社2015年版。

推荐理由:一本把普通人变成创业者的进化指南。除了这些书以外,软件工程师还需要多看文档,多读论文,多关注大公司的技术动态。毕竟这是一个以终身学习为刚性要求的职业,祝你学有所成。

总结

除了这些书以外,软件工程师还需要多看文档,多读论文,多关注大公司的技术动态。毕竟这是一个以终身学习为刚性要求的职业。

参考

  • 《这就是软件工程师》值得入手的一本书

《这就是软件工程师》里的推荐书单相关推荐

  1. 笔记 | 这就是软件工程师(一)

    一:新手上路 1.1基本储备:入门必学的语言和工具 ①入门推荐语言: Python  JavaScript 这些语言的语法比较简单,有大量的库和语法糖 ②入门必学工具: 操作系统Windows  编程 ...

  2. 《这就是软件工程师》- 每位软件工程师值的看的一本书,尤其是刚刚步入IT行业的年轻人

    文章目录 第一部分|行业地图 1.现实:为什么会有996? 1)行业处于特定的发展阶段 2)公司组织管理问题 2.进阶:软件工程师的四大台阶 1)新手阶段[执行力] 2)进阶阶段[设计能力] 3)高手 ...

  3. 《这就是软件工程师》读书笔记

    第一部分  行业地图 选择:一线和次一线城市机会巨大 1.北京 2.上海.深圳.杭州 3.成都.广州.南京.厦门 4.福州.苏州 软件工程师的四大台阶: 阶段 能力 1 新手阶段 执行力 2 进阶阶段 ...

  4. 高级软件工程师必备的五大技能

    具备什么样的素质的人才能成为一名高级软件工程师?作为高级软件工程师,你不仅要具备娴熟的技能,更重要的,还要具备与人合作的能力.只有能够领导和提升他人的软件工程师,才是真正的高级软件工程师.Israel ...

  5. 我敢说,没人能超过这份产品经理推荐书单(40本)!

    产品经理要博览群书. 博览群书以便接受通识教育,要懂用户.懂设计.懂开发.懂底层架构.懂抓包 SQL.俗称,中关村活字典.互联网百晓生. 最近三年,我在以每年60本的进度看书.可以说互联网领域内外的经 ...

  6. 软件工程师的自白:真希望自己从没学过编码

    全文共2137字,预计学习时长6分钟 图源:unsplash 真正的软件工程不仅仅是一门技术,更是一种生活方式.我靠写代码谋生,连帽衫.乒乓球.随处可见的零食和饮料,这就是我的真实生活.尽管从事这一领 ...

  7. J2EE高级软件工程师面试题集

      第一章:J2EE高级软件工程师面试题集 --JAVA基础部分 1.面向对象的特征有哪些方面1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不 ...

  8. 程序人生:为什么软件工程师是更好的CEO?

    原文:https://iism.org/article/so-why-are-software-engineers-better-ceos-60 翻译:36kr 神译局 比较长,非常推荐逐字读完, 从 ...

  9. 听说你想做一个汽车软件工程师?(下)

    在这个系列的第一篇文章 木城:听说你想做一个汽车软件工程师?(上)里,我们讨论了汽车软件工程师都有哪些职位.但是,就算是同样一个职位,比如"诊断工程师"吧!你给ADAS系统做诊断, ...

最新文章

  1. 看完 50000 张专辑封面后,AI 设计师疯狂输出
  2. centos命令行控制电脑发出滴滴声
  3. 【Python】青少年蓝桥杯_每日一题_6.27_输出符合要求的10个自然数
  4. 【杂谈】GAN对人脸图像算法产生了哪些影响?
  5. api文档 luci_研究LuCI - 技术手札 - OSCHINA - 中文开源技术交流社区
  6. 大对象简介+大对象的4种类型+lob类型的优点+lob的组成
  7. 牛客网_PAT乙级_1013组个最小数 (20)
  8. dropbox_Google的新存储定价与Microsoft,Apple和Dropbox相比如何
  9. Java之品优购部署_day01(8)
  10. 十大经典排序算法(附代码、动画及改进方案)
  11. 5.27 indeed 第三次网测
  12. matlab中怎么设置母线,Matlab绘图教程
  13. 车辆故障码api DTC查询
  14. 【手把手】教你MySQL调优
  15. 书到用时方恨少,绝知此事要躬行--谈TCP/UDP编程
  16. VS2008 Pocket PC 2003 SE仿真程序上网设置
  17. sk_buff 剖析
  18. 基于闪存存储原理的U盘数据安全测试和U盘数据保护软件
  19. CSS3——2D变形(CSS3) transform
  20. java eden区_请说明一下eden区和survial区的含义以及工作原理?

热门文章

  1. 服务器如何做好数据备份
  2. Everything-文件查找工具
  3. ips版面与tn的区别
  4. vue动态渲染图片,引用路径需要注意的地方
  5. 「数据密集型系统搭建」原理篇|数据类型不怕精挑细选
  6. 对如何学习Java的一点点看法
  7. ​IC ESD测试方法​
  8. 0805封装电容谐振频率
  9. PS 滤镜——素描算法(二)
  10. 极域脱控破解分析+代码实现(杀死和重启,挂起和恢复,解除全屏按钮限制,获取极域安装路径,极域密码破解)