计算机
计算之魂 Goodreads 豆瓣
作者: 吴军 人民邮电出版社 2021 - 11
对计算机科学的掌握程度,决定了一个计算机行业从业者能走多远。在本书中,作者将人文历史与计算机科学相结合,通过一些具体的例题,分10个主题系统地讲解了计算机科学的精髓。这些例题是作者面试求职者时用到的考题,或是头部计算机公司和金融企业的面试题。
作者在书中结合自己对计算机工程师的五级分级标准,详细讲解了每类题目不同层次的解决方法、不同水平的人大约能思考到什么样的深度,深度阐述题目背后的计算机科学精髓。通过对比优化解题思路,读者不仅可以衡量自己的水平,在职业的发展道路上走得更快,更可以深刻理解并掌握计算机科学和计算思维,逐渐把握计算机科学这门艺术,获得重复性成功。
对于所有有志于了解或学习科技,特别是计算机科学的人来讲,本书不仅有助于了解计算机科学,更有助于了解 IT 产业的技术特点、培养一些特殊的思维方式、掌握信息时代特殊的做事方法,通过具体的例子,从“术”的层面获得“道”的层面的提升。
Computational Complexity 豆瓣 Goodreads
Computational Complexity
作者: Christos H. Papadimitriou Addison-Wesley 1993 - 11
This text offers a comprehensive and accessible treatment of the theory of algorithms and complexity - the elegant body of concepts and methods developed by computer scientists over the past 30 years for studying the performance and limitations of computer algorithms. Among topics covered are: reductions and NP-completeness, cryptography and protocols, randomized algorithms, and approximability of optimization problems, circuit complexity, the "structural" aspects of the P=NP question, parallel computation, the polynomial hierarchy, and many others. Several sophisticated and recent results are presented in a rather simple way, while many more are developed in the form of extensive notes, problems, and hints. The book is surprisingly self-contained, in that it develops all necessary mathematical prerequisites from such diverse fields as computability, logic, number theory, combinatorics and probability.
Graph Representation Learning 豆瓣
作者: William L. Hamilton Morgan & Claypool 2020 - 9
Graph-structured data is ubiquitous throughout the natural and social sciences, from telecommunication networks to quantum chemistry. Building relational inductive biases into deep learning architectures is crucial for creating systems that can learn, reason, and generalize from this kind of data. Recent years have seen a surge in research on graph representation learning, including techniques for deep graph embeddings, generalizations of convolutional neural networks to graph-structured data, and neural message-passing approaches inspired by belief propagation. These advances in graph representation learning have led to new state-of-the-art results in numerous domains, including chemical synthesis, 3D vision, recommender systems, question answering, and social network analysis.
This book provides a synthesis and overview of graph representation learning. It begins with a discussion of the goals of graph representation learning as well as key methodological foundations in graph theory and network analysis. Following this, the book introduces and reviews methods for learning node embeddings, including random-walk-based methods and applications to knowledge graphs. It then provides a technical synthesis and introduction to the highly successful graph neural network (GNN) formalism, which has become a dominant and fast-growing paradigm for deep learning with graph data. The book concludes with a synthesis of recent advancements in deep generative models for graphs--a nascent but quickly growing subset of graph representation learning.
Designing Data-Intensive Applications 豆瓣 Goodreads
9.4 (21 个评分) 作者: Martin Kleppmann O'Reilly Media 2017 - 4
Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?
In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications.
Peer under the hood of the systems you already use, and learn how to use and operate them more effectively
Make informed decisions by identifying the strengths and weaknesses of different tools
Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity
Understand the distributed systems research upon which modern databases are built
Peek behind the scenes of major online services, and learn from their architectures
Elements of Programming Interviews in Python: The Insiders' Guide 豆瓣 Goodreads
作者: Adnan Aziz / Tsung-Hsien Lee Createspace Independent Publishing Platform 2016 - 9
This is the
version of our book. See the website for links to the
and
version.Have you ever...
Wanted to work at an
?
thatcould have been solved in 15 minutes?
Wished you could study
?
If so, you need to read
(EPI).
EPI is your comprehensive guide to interviewing for software development roles.
The core of EPI is a collection of over 250 problems with detailed solutions. The problems are representative of interview questions asked at leading software companies. The problems are illustrated with 200 figures, 300 tested programs, and 150 additional variants.
The book begins with a summary of the nontechnical aspects of interviewing, such as strategies for a great interview, common mistakes, perspectives from the other side of the table, tips on negotiating the best offer, and a guide to the best ways to use EPI. We also provide a summary of data structures, algorithms, and problem solving patterns.
Coding problems are presented through a series of chapters on basic and advanced data structures, searching, sorting, algorithm design principles, and concurrency. Each chapter stars with a brief introduction, a case study, top tips, and a review of the most important library methods. This is followed by a broad and thought-provoking set of problems.
Operating Systems 豆瓣 Goodreads
10.0 (10 个评分) 作者: Remzi Arpaci-Dusseau / Andrea Arpaci-Dusseau Arpaci-Dusseau Books 2018 - 8
A book about modern operating systems. Topics are broken down into three major conceptual pieces: Virtualization, Concurrency, and Persistence. Includes all major components of modern systems including scheduling, virtual memory management, disk subsystems and I/O, file systems, and even a short introduction to distributed systems.
A Philosophy of Software Design 豆瓣 谷歌图书 Goodreads
8.9 (11 个评分) 作者: John Ousterhout Yaknyam Press 2018 - 4
This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first introduces the fundamental problem in software design, which is managing complexity. It then discusses philosophical issues about how to approach the software design process, and it presents a collection of design principles to apply during software design. The book also introduces a set of red flags that identify design problems. You can apply the ideas in this book to minimize the complexity of large software systems, so that you can write software more quickly
The Art of Doing Science and Engineering: Learning to Learn 豆瓣
作者: Richard R. Hamming CRC 1997
Highly effective thinking is an art that engineers and scientists can be taught to develop. By presenting actual experiences and analyzing them as they are described, the author conveys the developmental thought processes employed and shows a style of thinking that leads to successful results is something that can be learned. Along with spectacular successes, the author also conveys how failures contributed to shaping the thought processes.
Provides the reader with a style of thinking that will enhance a person's ability to function as a problem-solver of complex technical issues. Consists of a collection of stories about the author's participation in significant discoveries, relating how those discoveries came about and, most importantly, provides analysis about the thought processes and reasoning that took place as the author and his associates progressed through engineering problems.
The Sciences of the Artificial 豆瓣
作者: Herbert A. Simon MIT Press 1969 - 6
2017年4月26日 已读
非常structural-functional的取向,大概跟他在UChicago时受Rudolf Carnap的logical empiricism影响有关。视组织、生物体、计算机、人脑为等价的复杂系统,不知道Simon那时知不知道网络理论里对于scale-free的论述。看到他论述Computer Science作为一门学科存在的意义的时候,才感觉到计算机对那个时代的影响。最后一个章节论证等级系统作为复杂系统中的一类,有可分解特性因而正当化了还原论的研究取向...这还蛮神奇的
计算机
反欺骗的艺术 豆瓣
The Art of Deception: Controlling the Human Element of Security
6.4 (9 个评分) 作者: (美) 米特尼克(Mitnick, K. D.) 译者: 潘爱民 清华大学出版社 2014 - 7
凯文•米特尼克(Kevin D. Mitnick)曾经是历史上最令FBI头痛的计算机顽徒之一,现在他已经完成了大量的文章、图书、影片和记录文件。自从2000年从联邦监狱中获释以来,米特尼克改变了他的生活方式,成了全球广受欢迎的计算机安全专家之一。在他的首部将功补过的作品中,这位全世界最著名的黑客为“放下屠刀,立地成佛”这句佛语赋予了新的含义。
在《反欺骗的艺术——世界传奇黑客的经历分享》中,米特尼克邀请读者进入到黑客的复杂思维中,他描述了大量的实际欺骗场景,以及针对企业的社交工程攻击和后果。他将焦点集中在信息安全所涉及到的人为因素方面,解释了为什么防火墙和加密协议并不足以阻止一个聪明的攻击者入侵企业的数据库系统,也无法阻止一个愤怒的员工搞垮公司的计算机系统。他举例说明了,即使是保护最为严密的信息系统,在面对一个意志坚定的、伪装成IRS(美国国税局)职员或其他看似无辜角色的骗子老手时,也会变得不堪一击。《反欺骗的艺术——世界传奇黑客的经历分享》从攻击者和受害者两方面入手,分析了每一种攻击之所以能够得逞的原因,以及如何防止这些攻击。本书的叙述非常吸引人,有很强的可读性,仿佛是一部介绍真实刑事案例的侦探小说。
最为重要的是,米特尼克为了补偿他过去所犯过的罪,在《反欺骗的艺术——世界传奇黑客的经历分享》中提供了许多指导规则,让企业在开发安全行为规程、培训计划和安全手册的时候有所参考,以确保公司投入资金建立起来的高科技安全屏障不至于形同虚设。他凭借自己的经验,提出了许多防止安全漏洞的建议,并且希望人们不要忘了提防最严重的安全危险——人性。
The Art of Deception 豆瓣 Goodreads
9.3 (6 个评分) 作者: Kevin D. Mitnick Wiley 2003 - 10
The world's most infamous hacker offers an insider's view of the low-tech threats to high-tech security Kevin Mitnick's exploits as a cyber-desperado and fugitive form one of the most exhaustive FBI manhunts in history and have spawned dozens of articles, books, films, and documentaries. Since his release from federal prison, in 1998, Mitnick has turned his life around and established himself as one of the most sought-after computer security experts worldwide. Now, in The Art of Deception, the world's most notorious hacker gives new meaning to the old adage, "It takes a thief to catch a thief." Focusing on the human factors involved with information security, Mitnick explains why all the firewalls and encryption protocols in the world will never be enough to stop a savvy grifter intent on rifling a corporate database or an irate employee determined to crash a system. With the help of many fascinating true stories of successful attacks on business and government, he illustrates just how susceptible even the most locked-down information systems are to a slick con artist impersonating an IRS agent. Narrating from the points of view of both the attacker and the victims, he explains why each attack was so successful and how it could have been prevented in an engaging and highly readable style reminiscent of a true-crime novel. And, perhaps most importantly, Mitnick offers advice for preventing these types of social engineering hacks through security protocols, training programs, and manuals that address the human element of security.
社会工程 豆瓣
Social engineering:the art of human hacking
7.6 (9 个评分) 作者: 海德纳吉 (Christopher Hadnagy) 译者: 陆道宏 / 杜娟 人民邮电出版社 2013
本书首次从技术层面剖析和解密社会工程手法,从攻击者的视角详细介绍了社会工程的所有方面,包括诱导、伪装、心理影响和人际操纵等,并通过凯文 · 米特尼克等社会工程大师的真实故事和案例加以阐释,探讨了社会工程的奥秘。主要内容包括黑客、间谍和骗子所使用的欺骗手法,以及防止社会工程威胁的关键步骤。
本书适用于社会工程师、对社会工程及信息安全感兴趣的人。
七周七语言 豆瓣
Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages
8.8 (18 个评分) 作者: [美] Bruce A. Tate 译者: 巨成 / 戴玮 人民邮电出版社 2012 - 5
从计算机发展史早期的Cobol、Fortran到后来的C、Java,编程语言的家族不断壮大。除了这些广为人知的语言外,还涌现了Erlang、Ruby等后起之秀,它们虽被喻为小众语言,但因其独特性也吸引了为数不少的追随者。
Bruce A. Tate是软件行业的一名老兵,他有一个宏伟目标:用一本书的篇幅切中要害地探索七种不同的语言。本书就是他的成果。书中介绍了Ruby、Io、Prolog、Scala、Erlang、Clojure和Haskell这七种语言,关注每一门语言的精髓和特性,重点解决如下问题:这门语言的类型模型是什么,编程范式是什么,如何与其交互,有哪些决策构造和核心数据结构,有哪些独特的核心特性。
在这个飞速发展的信息时代,程序员仅仅掌握甚至精通一门语言是远远不够的。了解多门语言蕴涵的思维方式,在编码中互相借鉴,再挑出一两门对自己口味的语言深入学习,这些已经成为在软件行业中安身立命之本。从这个意义上说,每个程序员都应该看看这本书。
迷茫的旅行商 豆瓣
In pursuit of the traveling salesman:Mathematics at the limits of computation
7.2 (5 个评分) 作者: [美] William J. Cook 译者: 隋春宁 人民邮电出版社 2013 - 10
假设一名旅行商打算拜访一张城市列表中的所有城市,每座城市只去一次,最后回到出发地。要怎么走才能让路线最短呢?这就是旅行商问题,乍一听很简单,在应用数学界却是一道研究极其热烈的难题,时至今日仍无人能解。本书中,William J. Cook将带领读者踏上一场数学之旅,跟随旅行商的脚步,从19世纪初爱尔兰数学家W. R. Hamilton最初定义该问题开始,一路奔向当今最前沿、最顶尖的解题尝试。
作者追根溯源,回顾了旅行商问题的历史,探索了它的种种重要应用,比如基因组测序、设计计算机处理器、整理音乐乃至搜寻行星等。他分析了计算机如何抗衡规模宏大的旅行商问题,探讨了人类如何在不借助计算机的情况下独立破解难题。他一路穿越神经科学、心理学与艺术的王国,向读者下了战书:试试解决这道难题吧!旅行商问题价值百万美元——这是克雷数学研究所的悬赏金额,只要解出该题或证明该题不可解,就能得到这笔奖金。
《迷茫的旅行商》介绍了人类对于复杂性本质的理解与局限,将激励读者从此踏上求解这道迷人难题的漫漫征程。