计算机科学
编码 豆瓣 Goodreads
Code: The Hidden Language of Computer Hardware and Software
9.5 (8 个评分) 作者: Charles Petzold 译者: 左飞 / 薛佟佟 电子工业出版社 2012 - 10
本书是一本讲述计算机工作原理的书。不过,你千万不要因为“工作原理”之类的字眼就武断地认为,它是晦涩而难懂的。作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。更重要的是,你会因此而获得对计算机工作原理较深刻的理解。这种理解不是抽象层面上的,而是具有一定深度的,这种深度甚至不逊于“电气工程师”和“程序员”的理解。
不管你是计算机高手,还是对这个神奇的机器充满敬畏之心的菜鸟,都不妨翻阅一下本书,读一读大师的经典作品,必然会有收获。
Code Complete 豆瓣 Goodreads
Code Complete
作者: Steve McConnell Microsoft Press 2004 - 6
在线阅读本书
Widely considered one of the best practical guides to programming, Steve McConnells original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practicesand hundreds of new code samplesillustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinkingand help you build the highest quality code. Discover the timeless techniques and strategies that help you: Design for minimum complexity and maximum creativity Reap the benefits of collaborative development Apply defensive programming techniques to reduce and flush out errors Exploit opportunities to refactoror evolvecode, and do it safely Use construction practices that are right-weight for your project Debug problems quickly and effectively Resolve critical construction issues early and correctly Build quality into the beginning, middle, and end of your project
点击链接进入中文版:
代码大全(第2版)
LaTeX Cookbook 豆瓣
作者: Stefan Kottwitz Packt Publishing 2015 - 10
About This Book
• Work with modern document classes, such as KOMA-Script classes
• Explore the latest LaTeX packages, including TikZ, pgfplots, and biblatex
• An example-driven approach to creating stunning graphics directly within LaTeX
Who This Book Is For
If you already know the basics of LaTeX and you like to get fast, efficient solutions, this is the perfect book for you. If you are an advanced reader, you can use this book's example-driven format to take your skillset to the next level. Some familiarity with the basic syntax of LaTeX and how to use the editor of your choice for compiling is required.
What You Will Learn
• Choose the right document class for your project to customize its features
• Utilize fonts globally and locally
• Frame, shape, arrange, and annotate images
• Add a bibliography, a glossary, and an index
• Create colorful graphics including diagrams, flow charts, bar charts, trees, plots in 2d and 3d, time lines, and mindmaps
• Solve typical tasks for various sciences including math, physics, chemistry, electrotechnics, and computer science
• Optimize PDF output and enrich it with meta data, annotations, popups, animations, and fill-in fields
• Explore the outstanding capabilities of the newest engines and formats such as XeLaTeX, LuaLaTeX, and LaTeX3
In Detail
LaTeX is a high-quality typesetting software and is very popular, especially among scientists. Its programming language gives you full control over every aspect of your documents, no matter how complex they are. LaTeX's huge amount of customizable templates and supporting packages cover most aspects of writing with embedded typographic expertise.
With this book you will learn to leverage the capabilities of the latest document classes and explore the functionalities of the newest packages.
The book starts with examples of common document types. It provides you with samples for tuning text design, using fonts, embedding images, and creating legible tables. Common document parts such as the bibliography, glossary, and index are covered, with LaTeX's modern approach.
You will learn how to create excellent graphics directly within LaTeX, including diagrams and plots quickly and easily.
Finally, you will discover how to use the new engines XeTeX and LuaTeX for advanced programming and calculating with LaTeX.
The example-driven approach of this book is sure to increase your productivity.
Style and approach
This book guides you through the world of LaTeX based on over a hundred hands-on examples. These are explained in detail and are designed to take minimal time and to be self-compliant.
LaTeX入门 豆瓣
作者: 刘海洋 电子工业出版社 2013 - 6
LaTeX 已经成为国际上数学、物理、计算机等科技领域专业排版的实际标准,其他领域(化学、生物、工程、语言学等)也有大量用户。本书内容取材广泛,涵盖了正文组织、自动化工具、数学公式、图表制作、幻灯片演示、错误处理等方面。考虑到LaTeX 也是不断进化的,本书从数以千计的LaTeX 工具宏包中进行甄选,选择较新而且实用的版本来讲解排版技巧。
为了方便读者的学习,本书给出了大量的实例和一定量的习题,并且还提供了案例代码。书中的示例大部分来自作者多年的实际排版案例,读者不断练习,肯定能掌握LaTeX 的排版技能。
本书适合数学、物理、计算机、化学、生物、工程等专业的学生、工程师和教师阅读,也适合中学数学教师。此外,本书还适合对LaTeX 排版有兴趣的人员。
2020年1月18日 已读
可能是当前最好的中文LaTeX教程书
唯一的问题就是有点标题欺诈: 这书其实不太适合纯新手入门——我已经写了大半年LaTeX了, 还是在本书中学到不少, 比如关于LaTeX发行版、LaTeX历史, LaTeX编译过程, 和非常简单的编写宏包和模板的指引等(这也是我读本书的目的 虽然最后还是靠LaTeX2e官方文档)。
作者本人是水木清华TeX版版主milksea, 也是CTeX的贡献者之一, 对于LaTeX可谓十分熟悉。能感到书的确是作者自己“写”出来的,意图广泛又深入浅出地介绍LaTeX的种种特性。书籍精美绝伦的排版本身就是LaTeX的最好宣传工具。最棒的是为了中文用户特别了增添很多关于在LaTeX中写中文的技巧和要点,这是他对于中国用户来说远胜出于其他外国经典教材的一点(不过我用不到)
LaTeX 程序设计与开发工具 计算机科学
The Elements of Statistical Learning 豆瓣 Goodreads
9.8 (9 个评分) 作者: Trevor Hastie / Robert Tibshirani Springer 2009 - 10
During the past decade there has been an explosion in computation and information technology. With it have come vast amounts of data in a variety of fields such as medicine, biology, finance, and marketing. The challenge of understanding these data has led to the development of new tools in the field of statistics, and spawned new areas such as data mining, machine learning, and bioinformatics. Many of these tools have common underpinnings but are often expressed with different terminology. This book describes the important ideas in these areas in a common conceptual framework. While the approach is statistical, the emphasis is on concepts rather than mathematics. Many examples are given, with a liberal use of color graphics. It is a valuable resource for statisticians and anyone interested in data mining in science or industry. The book's coverage is broad, from supervised learning (prediction) to unsupervised learning. The many topics include neural networks, support vector machines, classification trees and boosting---the first comprehensive treatment of this topic in any book. This major new edition features many topics not covered in the original, including graphical models, random forests, ensemble methods, least angle regression & path algorithms for the lasso, non-negative matrix factorization, and spectral clustering. There is also a chapter on methods for "wide" data (p bigger than n), including multiple testing and false discovery rates.
Pattern Recognition and Machine Learning 豆瓣 Goodreads
Pattern Recognition and Machine Learning (Information Science and Statistics)
9.8 (19 个评分) 作者: Christopher Bishop Springer 2007 - 10
The dramatic growth in practical applications for machine learning over the last ten years has been accompanied by many important developments in the underlying algorithms and techniques. For example, Bayesian methods have grown from a specialist niche to become mainstream, while graphical models have emerged as a general framework for describing and applying probabilistic techniques. The practical applicability of Bayesian methods has been greatly enhanced by the development of a range of approximate inference algorithms such as variational Bayes and expectation propagation, while new models based on kernels have had a significant impact on both algorithms and applications.
This completely new textbook reflects these recent developments while providing a comprehensive introduction to the fields of pattern recognition and machine learning. It is aimed at advanced undergraduates or first-year PhD students, as well as researchers and practitioners. No previous knowledge of pattern recognition or machine learning concepts is assumed. Familiarity with multivariate calculus and basic linear algebra is required, and some experience in the use of probabilities would be helpful though not essential as the book includes a self-contained introduction to basic probability theory.
The book is suitable for courses on machine learning, statistics, computer science, signal processing, computer vision, data mining, and bioinformatics. Extensive support is provided for course instructors, including more than 400 exercises, graded according to difficulty. Example solutions for a subset of the exercises are available from the book web site, while solutions for the remainder can be obtained by instructors from the publisher. The book is supported by a great deal of additional material, and the reader is encouraged to visit the book web site for the latest information.
Deep Learning 豆瓣 Goodreads
Deep Learning
9.7 (7 个评分) 作者: Ian Goodfellow / Yoshua Bengio The MIT Press 2016 - 11
"Written by three experts in the field, Deep Learning is the only comprehensive book on the subject." -- Elon Musk, co-chair of OpenAI; co-founder and CEO of Tesla and SpaceX
Deep learning is a form of machine learning that enables computers to learn from experience and understand the world in terms of a hierarchy of concepts. Because the computer gathers knowledge from experience, there is no need for a human computer operator to formally specify all the knowledge that the computer needs. The hierarchy of concepts allows the computer to learn complicated concepts by building them out of simpler ones; a graph of these hierarchies would be many layers deep. This book introduces a broad range of topics in deep learning.
The text offers mathematical and conceptual background, covering relevant concepts in linear algebra, probability theory and information theory, numerical computation, and machine learning. It describes deep learning techniques used by practitioners in industry, including deep feedforward networks, regularization, optimization algorithms, convolutional networks, sequence modeling, and practical methodology; and it surveys such applications as natural language processing, speech recognition, computer vision, online recommendation systems, bioinformatics, and videogames. Finally, the book offers research perspectives, covering such theoretical topics as linear factor models, autoencoders, representation learning, structured probabilistic models, Monte Carlo methods, the partition function, approximate inference, and deep generative models.
Deep Learning can be used by undergraduate or graduate students planning careers in either industry or research, and by software engineers who want to begin using deep learning in their products or platforms. A website offers supplementary material for both readers and instructors.
Concrete Mathematics Goodreads 豆瓣
作者: Ronald L. Graham / Donald E. Knuth Addison-Wesley Professional 1994 - 3
This book introduces the mathematics that supports advanced computer programming and the analysis of algorithms. The primary aim of its well-known authors is to provide a solid and relevant base of mathematical skills - the skills needed to solve complex problems, to evaluate horrendous sums, and to discover subtle patterns in data. It is an indispensable text and reference not only for computer scientists - the authors themselves rely heavily on it! - but for serious users of mathematics in virtually every discipline. Concrete Mathematics is a blending of CONtinuous and disCRETE mathematics. "More concretely," the authors explain, "it is the controlled manipulation of mathematical formulas, using a collection of techniques for solving problems." The subject matter is primarily an expansion of the Mathematical Preliminaries section in Knuth's classic Art of Computer Programming, but the style of presentation is more leisurely, and individual topics are covered more deeply. Several new topics have been added, and the most significant ideas have been traced to their historical roots. The book includes more than 500 exercises, divided into six categories.Complete answers are provided for all exercises, except research problems, making the book particularly valuable for self-study. Major topics include: *Sums *Recurrences *Integer functions *Elementary number theory *Binomial coefficients *Generating functions *Discrete probability *Asymptotic methods This second edition includes important new material about mechanical summation. In response to the widespread use of the first edition as a reference book, the bibliography and index have also been expanded, and additional nontrivial improvements can be found on almost every page. Readers will appreciate the informal style of Concrete Mathematics. Particularly enjoyable are the marginal graffiti contributed by students who have taken courses based on this material. The authors want to convey not only the importance of the techniques presented, but some of the fun in learning and using them. 0201558025B04062001
Computer Systems: A Programmer's Perspective (3rd Edition) 豆瓣 Goodreads
作者: Randal E. Bryant / David R. O'Hallaron Pearson 2015 - 3
For Computer Organization and Architecture and Computer Systems courses in CS and EE and ECE departments. Developed out of an introductory course at Carnegie Mellon University, this text explains the important and enduring concepts underlying all computer systems, and shows the concrete ways that these ideas affect the correctness, performance, and utility of application programs. The text's concrete and hands-on approach will help students understand what is going on "under the hood" of a computer system.

Few students studying computer science or computer engineering will ever have the opportunity to build a computer system. On the other hand, most students will be required to use and program computers on a near daily basis. 'Computer Systems' introduces the important and enduring concepts that underlie application programs.
2019年11月27日 已读
绝对是世界上最好的计算机体系结构教材,非常适合自学,非常深入浅出,学得非常非常非常快乐,习题也好玩,lab更是好玩到爆表了。当然也是因为这课我遇到一个非常非常热情认真负责的教授就是了。比起主动找这本书来看的帽老婆我积极性还是差了些x
说到这门课,虽然期中考汇编时候掉血debuff加持+心态崩了考得一塌糊涂大概才排到中间=_=,但期末考CPU架构和虚拟内存是班级top10ᕙ( ͡° ͜ʖ ͡°)ᕗ作为外系的小垃圾考过了一堆计算机系学生还是有点骄傲的(说起来我还觉得我汇编学得更好一点啊= =难道是其他人硬件学得太烂了?)
(Nov28 2019 Update) 读完了 还得反复看几遍
C 教材 英文原版 计算机原理与操作系统 计算机科学
Computer Networking 豆瓣 Goodreads
9.2 (8 个评分) 作者: James F. Kurose / Keith W. Ross Pearson 2012 - 3
Computer Networking continues with an early emphasis on application-layer paradigms and application programming interfaces (the top layer), encouraging a hands-on experience with protocols and networking concepts, before working down the protocol stack to more abstract layers.
This book has become the dominant book for this course because of the authors’ reputations, the precision of explanation, the quality of the art program, and the value of their own supplements.
Visit the authors’ blog for information and resources to discuss the newest edition, as well as valuable insights, teaching tips, and discussion about the field of Computer Networking http://kuroseross.com
Structure and Interpretation of Computer Programs - 2nd Edition (MIT) 豆瓣 Goodreads
9.6 (19 个评分) 作者: Harold Abelson / Gerald Jay Sussman The MIT Press 1996 - 7
Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula over the past decade. This long-awaited revision contains changes throughout the text.
There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the course at MIT since the first edition was published.
A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises.
In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.
C++ How to Program Goodreads 豆瓣
作者: Paul Deitel / Harvey Deitel Prentice Hall 2011 - 3
For Introduction to Programming (CS1) and other more intermediate courses covering programming in C++. Also appropriate as a supplement for upper-level courses where the instructor uses a book as a reference for the C++ language. This best-selling comprehensive text is aimed at readers with little or no programming experience. It teaches programming by presenting the concepts in the context of full working programs and takes an early-objects approach. The authors emphasize achieving program clarity through structured and object-oriented programming, software reuse and component-oriented software construction. The Eighth Edition encourages students to connect computers to the community, using the Internet to solve problems and make a difference in our world. All content has been carefully fine-tuned in response to a team of distinguished academic and industry reviewers.
Building Java Programs 豆瓣
作者: Stuart Reges / Marty Stepp Addison Wesley 2010 - 3
Building Java Programs: A Back to Basics Approach , Second Edition, introduces novice programmers to basic constructs and common pitfalls by emphasizing the essentials of procedural programming, problem solving, and algorithmic reasoning. By using objects early to solve interesting problems and defining objects later in the course, Building Java Programs develops programming knowledge for a broad audience.
Thinking in Java 豆瓣 Goodreads
Thinking in Java
作者: [美] Bruce Eckel Prentice Hall 2006 - 2
is a printed version of Bruce Eckel's online materials that provides a useful perspective on mastering Java for those with previous programming experience. The author's take on the essence of Java as a new programming language and the thorough introduction to Java's features make this a worthwhile tutorial.
The Mythical Man Month and Other Essays on Software Engineering Goodreads 豆瓣
8.4 (5 个评分) 作者: Frederick P. Brooks Jr. Addison Wesley 1995 - 8
Few books on software project management have been as influential and timeless asThe Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project manager for the IBM System/360 computer family and then for OS/360, its massive software system. Now, 20 years after the initial publication of his book, Brooks has revisited his original ideas and added new thoughts and advice, both for readers already familiar with his work and for readers discovering it for the first time. The added chapters contain (1) a crisp condensation of all the propositions asserted in the original book, including Brooks' central argument in The Mythical Man-Month: that large programming projects suffer management problems different from small ones due to the division of labor; that the conceptual integrity of the product is therefore critical; and that it is difficult but possible to achieve this unity; (2) Brooks' view of these propositions a generation later; (3) a reprint of his classic 1986 paper "No Silver Bullet"; and (4) today's thoughts on the 1986 assertion, "There will be no silver bullet within ten years."
Pro Git (Second Edition) 豆瓣
9.2 (10 个评分) 作者: Scott Chacon / Ben Straub Apress 2014 - 11
Scott Chacon is a cofounder and the CIO of GitHub and is also the maintainer of the Git homepage ( git-scm.com ) . Scott has presented at dozens of conferences around the world on Git, GitHub and the future of work.
Ben Straub is a developer, long time contributor to Libgit2, holder of a Masters degree, international speaker and Git teacher, avid reader, lifelong explorer, and student of the art of making fine software. He lives with his wife and two children in Portland, Oregon.
2019年10月21日 已读
从今年这个课程安排和各种其他安排来看要用到的地方太多了 光会add -> commit -> push实在是不够了=口=
Oct 21, 2019 Update: 不错的Git进阶书籍
推荐阅读章节:Git Basics, Git Branch, Git Internals。
Git Branch一章非常详细地剖析了branch和rebase的本质,并且对如何使用它们提出了指导,非常有价值;而Git Internals则概括了Git作为一个版本控制系统的底层实现(虽然我是不懂Ruby)
Git on the Server对于大多数人来说可能没有什么用—毕竟大家现在都采用第三方(GitHub, GitLab)托管代码了,所以GitHub一章可以不读。其余章节则可根据自己的需要阅读。
Git 程序设计与开发工具 英文原版 计算机科学
Clean Code 豆瓣 Goodreads
9.5 (8 个评分) 作者: [美国] Robert C·Martin Prentice Hall 2008 - 8
Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.
Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it.
What kind of work will you be doing? You’ll be reading code—lots of code. And you will be challenged to think about what’s right about that code, and what’s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.
Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.
Readers will come away from this book understanding
How to tell the difference between good and bad code
How to write good code and how to transform bad code into good code
How to create good names, good functions, good objects, and good classes
How to format code for maximum readability
How to implement complete error handling without obscuring code logic
How to unit test and practice test-driven development
This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.