计算机科学
Fluent Python 豆瓣 Goodreads
作者: Luciano Ramalho O'Reilly Media 2015 - 8
Learn how to write idiomatic, effective Python code by leveraging its best features. Python's simplicity quickly lets you become productive with it, but this often means you aren’t using everything the language has to offer. By taking you through Python’s key language features and libraries, this practical book shows you how to make your code shorter, faster, and more readable all at the same time—what experts consider Pythonic.
Many programmers who learn Python basics fall into the trap of reinventing the wheel because of past experience in other languages, and try to bend the language to patterns that don't really apply to it. Author Luciano Ramalho, a Python Software Foundation member and Python programmer for 15 years, helps you drop your accent from another language so you can code Python fluently.
•Learn practical applications of generators for database processing
•Rethink some design patterns in a Python context
•Examine attribute descriptors and when to use them: the key to ORMs
•Explore Pythonic objects: protocols versus interfaces, abstract base classes and multiple inheritance
2021年9月16日 已读
读得差不多了,直接坐等第二版。
计算机科学
The Computer Book 谷歌图书 豆瓣
作者: Simson L. Garfinkel / Rachel H. Grunspan Sterling Publishing Company, Incorporated 2018 - 6
Part of Sterling's extremely popular Milestones series, this illustrated exploration of computer science ranges from the ancient abacus to superintelligence and social media.

With 250 illustrated landmark inventions, publications, and events--encompassing everything from ancient record-keeping devices to the latest computing technologies--this highly topical addition to the Sterling Milestones series takes a chronological journey through the history and future of computer science. Two expert authors, with decades' of experience working in computer research and innovation, explore topics including the Sumerian abacus, the first spam message, Morse code, cryptography, early computers, Isaac Asimov's laws of robotics, UNIX and early programming languages, movies, video games, mainframes, minis and micros, hacking, virtual reality, and more.
2023年3月29日 已读
详见长评。
2023年3月29日 评论 人月神话的历史背景以及踏踏实实的计算机科学理论工作 - 为了了解人月神话的历史背景而特地读此书,得出结论:本书作者是 IBM OS/360 的主要负责人,这操作系统差不多在六十年代中旬形成,当时贝尔实验室刚刚开发出 Unix 和 C,所以辈份要比 Unix 更老点,可以说 Fred Brooks 是计算机历史上真正开创软件工程和操作系统的第一人,怪不得后来得了图灵奖;那时大概连独立键盘和 CRT 都不存在,虽然已经有了高级编程语言 Fortran 和 COBOL,但它们最多只能进行科学计算,不能像 C 那样写出操作系统,可以说 IBM OS/360 不是用高级编程语言直接写出来的,怪不得花了五年多。 回到计算机历史本身,是编年史排版,每年若干独立条目,顺序读起来清晰。我意外发现很多现在看起来平淡无奇的发明或 CS 本科大一的 CSAPP 理论 ,放到当年却是能得到图灵奖且踏踏实实的原创工作,创新倒也没那么重要。此外很多发明出现得比大众想象的还要早,只是商业上的普及还需要好几年。 此外计算机企业史可以看吴军的《浪潮之巅》,值得一看。
计算机科学
Deep Learning 豆瓣
作者: Andrew Glassner No Starch Press 2021 - 6
A richly-illustrated, full-color introduction to deep learning that offers visual and conceptual explanations instead of equations. You'll learn how to use key deep learning algorithms without the need for complex math.
Ever since computers began beating us at chess, they've been getting better at a wide range of human activities, from writing songs and generating news articles to helping doctors provide healthcare.
Deep learning is the source of many of these breakthroughs, and its remarkable ability to find patterns hiding in data has made it the fastest growing field in artificial intelligence (AI). Digital assistants on our phones use deep learning to understand and respond intelligently to voice commands; automotive systems use it to safely navigate road hazards; online platforms use it to deliver personalized suggestions for movies and books - the possibilities are endless.
Deep Learning: A Visual Approach is for anyone who wants to understand this fascinating field in depth, but without any of the advanced math and programming usually required to grasp its internals. If you want to know how these tools work, and use them yourself, the answers are all within these pages. And, if you're ready to write your own programs, there are also plenty of supplemental Python notebooks in the accompanying Github repository to get you going.
The book's conversational style, extensive color illustrations, illuminating analogies, and real-world examples expertly explain the key concepts in deep learning, including:
• How text generators create novel stories and articles
• How deep learning systems learn to play and win at human games
• How image classification systems identify objects or people in a photo
• How to think about probabilities in a way that's useful to everyday life
• How to use the machine learning techniques that form the core of modern AI
Intellectual adventurers of all kinds can use the powerful ideas covered in Deep Learning: A Visual Approach to build intelligent systems that help us better understand the world and everyone who lives in it. It's the future of AI, and this book allows you to fully envision it.
Who Should Read This Book
You don’t need math or programming experience. You don’t need to be a computer whiz. You don’t have to be a technologist at all!
This book is for anyone with curiosity and a desire to look behind the headlines. You may be surprised that most of the algorithms of deep learning aren’t very complicated or hard to understand. They’re usually simple and elegant and gain their power by being repeated millions of times over huge databases.
In addition to satisfying pure intellectual curiosity, Glassner wrote this book for people who come face to face with deep learning, either in their own work or when interacting with others who use it. After all, one of the best reasons to understand AI is so we can use it ourselves! We can build AI systems now that help us do our work better, enjoy our hobbies more deeply, and understand the world around us more fully.
If you want to know how this stuff works, you’re going to feel right at home.
2023年3月7日 已读
去年十二月花了五百五十大洋买此书。名副其实的 A Visual Way,完全可视化理论教学!几乎没有数学公式。难度成功下降到了文科生也能读懂。虽然哆嗦但通俗易懂。也意外发现一些机器学习理论其实也没那么难。有得有失,有些理论在可视化后变得很好懂,但也有些理论也省去了数学推导,令人学得不踏实,所以这书只能快速入门用。不过也提供了不错的 references。
计算机科学
Python工匠 豆瓣
8.8 (12 个评分) 作者: 朱雷(@piglei) 图灵|人民邮电出版社
◎ 编辑推荐
☆本书基于作者的开源GitHub图书,广受读者喜爱,市面上难得的原创Python进阶图书。
☆写作方式别具一格,核心知识点通过三大板块来阐述:基础知识、案例故事、编程建议。
其中基础知识帮助大家快速回顾Python基础;案例故事由作者经历的编程项目与案 例改编而来,兼具实战性与趣味性;编程建议以大家喜闻乐见的条目式知识点呈现,短小精悍,可直接应用于自己的编程实践中。
◎ 内容简介
本书基于广受好评的“Python工匠”系列开源文章。
全书从工程实践角度出发,通过剖析核心知识、展示典型案例与总结实用技巧,帮助大家系统进阶Python,写好工程代码,做好实践项目。
本书共计13章,分为五大部分:变量与基础类型、语法结构、函数与装饰器、面向对象编程、总结与延伸,涵盖Python编程的方方面面。
2023年2月25日 已读
前面有一小半内容和 Fluent Python,Effctive Python 重复,编程语言语法讲解的深度也不如 Fluent Python。不过后面内容已经超出编程语言本身,结合了一些工程实践,比如 TDD,SOLID 原则,测试;也推荐了一些有用的开发工具。就中文原创性来说,这书难得的好。不过要论 Tutorial,我至今只认为官方的最好。这本书不太适合当入门书。
计算机科学
A Tour of C++ 豆瓣
作者: Bjarne Stroustrup Addison-Wesley Professional; 3rd edition (October 10, 2022) 2022 - 10
In A Tour of C++, Third Edition, Bjarne Stroustrup provides an overview of ISO C++, C++20, that aims to give experienced programmers a clear understanding of what constitutes modern C++. Featuring carefully crafted examples and practical help in getting started, this revised and updated edition concisely covers most major language features and the major standard-library components needed for effective use.

Stroustrup presents C++ features in the context of the programming styles they support, such as object-oriented and generic programming. His tour is remarkably comprehensive. Coverage begins with the basics, then ranges widely through more advanced topics, emphasizing newer language features. This edition covers many features that are new in C++20 as implemented by major C++ suppliers, including modules, concepts, coroutines, and ranges. It even introduces some library components in current use that are not scheduled for inclusion in the standard until C++23.

This authoritative guide does not aim to teach you how to program (for that, see Stroustrup's Programming: Principles and Practice Using C++, Second Edition), nor will it be the only resource you'll need for C++ mastery (for that, see Stroustrup's The C++ Programming Language, Fourth Edition, and recommended online sources). If, however, you are a C or C++ programmer wanting greater familiarity with the current C++ language, or a programmer versed in another language wishing to gain an accurate picture of the nature and benefits of modern C++, you won't find a shorter or simpler introduction.
2024年9月14日 已读
2022年11月12日 评论 C++ 为什么难? - A Tour of C++ 在二〇二二年十月终于出第三版了,已更新到 C++20 并有若干 C++23 内容。内容简洁,是给有编程经验的读者看的。通过这书我彻底理解了 object,variable,initialization,value 等的定义,也明白了 declaration,definition 和 initialization 之间的微妙关系,真是大道至简。 虽然这书很容易让读者变得对 C++ 胸有成竹,包括我。但我后来又意外发现,一旦语法细节叠加起来,就是编程难度上的指数爆炸,A Tour of C++ 就刻意不提这现象,虽然本来就无能为力且也没必要。Bjarne Stroustrup 说过他给自己对 C++ 的理解打分的话,七十分。 比如 int *a 和 int a[10] 一看就知道分别声明了 int 指针和 int 数组,但 int *a[10] 又声明了什么呢?A Tour of C++ 就没有讲,它只提及了 * , [] , & 是 declaration operators。但 "declaration operators" 这个看似正式,但并不是 C++ 标准的术语(大概),而且 Declaration 语法 本身就非常复杂,我都没想到声明时原来还有那么多东西可以塞进去,鬼知道怎么匹配它们之间的关系,显然理解难度等于 N 次方。C 业界甚至曾流传过错误的民间说法: The Spiral Rule 知乎上也有人说明了 当 move 语义,默认参数,模板等结合起来 C++ 就变得面目可憎 。 C++ 为了兼容 C,背上了很多历史包袱,与此又添加了改进这些历史包袱的现代语法。于是现代 C++ 就同时存在两种非正交的新旧语法,比如 NULL vs nullptr,const char * vs std::string,header file vs module,enum vs enum class,union vs std::variant,函数的返回类型声明在前 vs 函数参数后面用箭头声明的返回类型等。C++ 改进还特别慢,以三年为周期单位,搞笑的是 C++20 引入了 module,但还不能直接 import std,要到 C++23 才行。我估计 C++ 到死也没法 deprecate 那些该死的历史包袱了。我看了 LeetCode 上的 C++ solutions,绝大部分写的其实是 C,而不是 C++。 再次,C++ 同时支持多个编程范式:过程式编程,面向对象编程,泛型编程,元编程,函数式编程。再加上标准库编程(我胡诌的,也包括容器,算法等)和系统编程(包括 I/O,文件,网络等操作系统 API)。其中标准库编程产生了 Erase–remove idiom 这个诡异的奇技淫巧。多种编程范式叠加起来,再次爆炸。 最后,我发现 C++ 有太多 implication 了: int a = 1.2 ,后者会被 implicitly converted;base class 的某函数被声明为 virtual 时,所有 derived functions 也会被 implicitly 声明为 virtual,我在 r/cpp_questions 问了好多问题才 get 这语法; int a 看似一个 declaration,但也可能是 defination,即 initialiazed as zero implicitly;所有 class 的 special function members 应该会 be defined implicitly,除非定义其中一个 member function explicitly 或是 delete 它,于是看到若某人说某 class 没有 constructor,意思其实是没有 define constructor explicitly,或是没有 user-defined constructor(其实和前一子句同一个意思),或是故意声明为 =delete。此外这害得你很容易搞不清楚 declaration,initialization,definiation,implementation,user-defined 之间的关系,因为有些词语是 ambiguous, =delete 是一种 definition 吗, T a = T() 是 assignment,但也是 initialization 吗?上文提到的语法叠加灾难我还可以容忍,但这种 C++ implicit 语法让我出离愤怒!怪不得 Linus 要破口大骂。Crap! 所以,C++ 难。 Written with StackEdit .
c++ 计算机科学
C++ Templates(第2版 英文版) 豆瓣
C++ Templates
作者: [美] David Vandevoorde / [德] Nicolai M.Josuttis 人民邮电出版社 2018 - 5
本书是同名经典畅销图书的全新升级版本,针对C++11、C++14、C++17标准进行了全面更新,并对所有的新语言特性(包括可变参数模板、通用lambda、类模板参数推导等)进行了解释。
全书共28章。首先全面介绍了本书的内容结构和相关情况。第1部分(第1~11章)介绍了模板的基本概念,第2部分(第12~17章)深入阐述了模板的细节,第3部分(第18~28章)介绍了C++模板所支持的基本设计技术。附录A、附录B、附录C、附录D和附录E分别为一处定义原则、值类别、重载解析、标准类型实用程序和概念的相关资料。
本书适合对C++模板技术感兴趣的有一定经验的程序员阅读。
C++语言导学(英文版·第2版) 豆瓣
A Tour of C++ (Second Edition)
作者: Bjarne Stroustrup 2019 - 1
在本书中,C++的创造者Bjarne Stroustrup描述了现代C++语言的构成。这本简洁、自成体系的导论书籍包含C++语言大多数主要特性和标准库组件,当然,也并未深入介绍,而是给予程序员一个有意义的语言概述、一些关键的例子以及起步阶段的实用帮助。
在本书中,作者通过介绍编程风格(例如面向对象编程和泛型编程)引出支持它们的C++特性。从基本特性开始,延伸到更宽范围的进阶主题,包括很多C++17新特性,例如移动语义、一致初始化、lambda表达式、改进的容器、随机数以及并发。本书非常全面,甚至包含一些为C++20提出的扩展,例如概念和模块。本书最后讨论了C++语言的设计和演化。
这本C++导论书籍的主旨不在于教你如何编程(如果出于这一目的,请参阅本作者的《C++程序设计:原理与实践》(原书第2版)(分基础篇、进阶篇),已由机械工业出版社出版),它也不可能是你精通C++的唯一资源(如果出于这一目的,请参阅本作者的《C++程序设计语言》(原书第4版),已由机械工业出版社出版,以及推荐的在线资源)。但是,如果你是一名C或C++程序员,希望更加熟悉现在的C++语言,或者你是一名精通其他语言的程序员,希望获得有关现代C++语言本质和优点的精确描述,你不可能找到比这本导学书籍更短或更简单的介绍了。
2022年8月28日 已读
有一些空白排版错误;只适合有编程经验的人直接读;也有一些讲得不清楚的地方,害得我在 Reddit 上提了很多低级问题;作者在 C++ 历史章谈到 C++ 名字的起源和 1984 的 Newspeak 有关,神奇;直接面向 C++17,且含部分 C++20 内容;C++ 难在它的表达能力太强大了,融合了面向对象,泛型编程,元编程,函数式编程,系统编程,并发编程,数据结构与算法库等编程技术;看得比较囫囵吞枣,由于可能暂时用不到,泛型编程、元编程和并发编程就没怎么看;准备在 LeetCode 上重新练练 C++;坐等今年十月上市的第三版;上一次学 C++ 是在大学看 C++ Primer 5th 中文版的时候了,真怀念,那时候做的练习也很少,工作后看了一些 Effective C++,坑了;重拾 C++ 上路!
计算机科学
现代C++探秘 豆瓣
Discovering Modern C++: An Intensive Course for Scientists, Engineers, and Programmers
作者: Peter Gottschling 电子工业出版社 2017 - 4
如今科学工程项目越来越大、越来越复杂,许多项目都采用 C++编程语言来完成。《现代C++探秘:编码、工程与科研必修(基于C++ 14)(英文版)》深入介绍了基于 C++编程语言高级功能的复杂方法,旨在帮助您快速入门,实现如表达式模板之类的高级技术。您还将学习如何使用 C++编程语言的强大类库:标准模板库( STL)以及用于算法、线性代数、微分方程、图形的科学类库。《现代C++探秘:编码、工程与科研必修(基于C++ 14)(英文版)》演示了如何使用面向对象、泛型编程、元编程和过程技术来编写清晰明了、富有表达力的软件。当您学完《现代C++探秘:编码、工程与科研必修(基于C++ 14)(英文版)》,将掌握如何使用 C++编程语言来编写高质量、高性能的软件。