编程
深入理解并行编程 豆瓣
Is Parallel Programming Hard, And, If So, What Can You Do About It?
作者: [美] Paul E.Mckenney(保罗·E·麦肯尼) 译者: 谢宝友 鲁阳 出版社: 电子工业出版社 2017 - 7
《深入理解并行编程》首先以霍金提出的两个理论物理限制为引子,解释了多核并行计算兴起的原因,并从硬件的角度阐述并行编程的难题。接着,《深入理解并行编程》以常见的计数器为例,探讨其不同的实现方法及适用场景。在这些实现方法中,除了介绍常见的锁以外,《深入理解并行编程》还重点介绍了RCU的使用及其原理,以及实现RCU的基础:内存屏障。最后,《深入理解并行编程》还介绍了并行软件的验证,以及并行实时计算等内容。
《深入理解并行编程》适合于对并行编程有兴趣的大学生、研究生,以及需要对项目进行深度性能优化的软硬件工程师,特别值得一提的是,《深入理解并行编程》对操作系统内核工程师也很有价值。
MATLAB for Neuroscientists 豆瓣
作者: Pascal Wallisch / Michael Lusignan 出版社: Academic Press 2008 - 11
Matlab is the accepted standard for scientific computing, used globally in virtually all Neuroscience and Cognitive Psychology laboratories. For instance, SPM, the most used software for the analysis and manipulation of fMRI images in research and clinical practice is fully programmed in matlab, and its use of the possibility to allow for sophisticated software modules to be freely added to the software has established it as the by far dominant software in the field. Many universities now offer, or are beginning to offer matlab introductory courses in their neuroscience and psychology programs. Nevertheless, so far there hasn't been a textbook specific to this market, and the use of the plethora of existing engineering focused Matlab textbooks is notoriously difficult for teaching the package in those environments.
This is the first comprehensive teaching resource and textbook for the teaching of Matlab in the Neurosciences and in Psychology. Matlab is unique in that it can be used to learn the entire empirical and experimental process, including stimulus generation, experimental control, data collection, data analysis and modeling. Thus a wide variety of computational problems can be addressed in a single programming environment. The idea is to empower advanced undergraduates and beginning graduate students by allowing them to design and implement their own analytical tools. As students advance in their research careers, they will have achieved the fluency required to understand and adapt more specialized tools as opposed to treating them as "black boxes".
Virtually all computational approaches in the book are covered by using genuine experimental data that are either collected as part of the lab project or were collected in the labs of the authors, providing the casual student with the look and feel of real data. In some rare cases, published data from classical papers are used to illustrate important concepts, giving students a computational understanding of critically important research.
The ability to effectively use computers in research is necessary in an academic environment that is increasingly focused on quantitative issues. Matlab represents an ideal language of scientific computing. It is based on powerful linear algebra structures which lend themselves to empirical problems on the one hand, while at the same time allowing the student to make rapid problem-oriented progress (particularly in terms of visualization of data points) without having to lose focus by worrying too much about memory allocation and other "plumbing" minutiae as would be required in other, more low-level programming languages such as C or C++.
Currently, there are several books that provide introductions to Matlab that are either too generic and fundamental or too irrelevant for neuroscientists and cognitive psychologists who typically face a very circumscribed range of problems in data collection, data analysis and signal processing. Some non-book tutorials and primers that are in use in the community are typically out of date. Matlab versions are usually not backwards compatible. Many commands and functions used in older tutorials and primers, such as "flops" won't work in current versions of Matlab, necessitating a book that is timely and up-to-date.
The complete lack of a relevant resource in this area, combined with a clearly felt need for such a text provided the primary and initial impetus for this project.
The authors provide such a dearly needed resource adapting and pooling materials that developed for and used in highly rated courses involving the use of Matlab in Neuroscience at the University of Chicago. Two co-authors (PW and NH) have presented their respective work on teaching Matlab at national meetings and two of the co-authors (PW and MB) were awarded the coveted University of Chicago's Booth Prize for excellence in teaching these courses. (http://chronicle.uchicago.edu/070524/boothprize.shtml ).
* The first comprehensive textbook on Matlab with a focus for its application in Neuroscience
* Problem based educational approach with many examples from neuroscience and cognitive psychology using real data
* Authors are award winning educators with strong teaching experience
* Instructor's Website with figurebank, additional problems and examples, solutions, etc
Effective C++中文版 豆瓣
9.1 (7 个评分) 作者: [美国] Scott Meyers 译者: 侯捷 出版社: 华中科技大学出版社 2001 - 9
Effective C++是世界顶级C++大师Scott Meyers的成名之作,初版于1991年。在国际上,这本书所引起的反响之大,波及整个计算机技术出版领域,余音至今未绝。几乎在所有C++书籍的推荐名单上,这部专著都会位于前三名。作者高超的技术把握力,独特的视角、诙谐轻松的写作风格、独具匠心的内容组织,都受到极大的推崇和仿效。
书中的50条准则,每一条都扼要说明了一个可让你写出更好的C++ 程序代码的方法,并以特别设计过的例子详加讨论。在此第二版中,Meyers重新检验了每一准则,特别注意兼容于C++标准规格与现行编译器技术,并融入软件界对C++运用的最新观察结果。
代码本色:用编程模拟自然系统 豆瓣
The Nature of Code: Simulating Natural Systems with Processing
9.6 (5 个评分) 作者: Daniel Shiffman 译者: 周晗彬 出版社: 人民邮电出版社 2014 - 10
本书介绍了用计算机模拟自然系统涉及的编程策略与技术,涵盖了基本的数学和物理概念,以及可视化地展示模拟结果所需的高级算法。读者将从构建基本的物理引擎开始,一步一步地学习如何创建智能移动的物体和复杂的系统,为进一步探索生成设计奠定基础。相关的知识点包括力、三角、分形、细胞自动机、自组织和遗传算法。本书的示例使用基于Java的开源语言及开发环境Processing编写。本书网站http://www.natureofcode.com)上的示例是在浏览器中通过Processing的JavaScript模式运行的。
作为纽约大学Tisch艺术学院Nature of Code课程主讲老师,Daniel集合了多年开发和教学经验,希望借由此书让大家真正了解如何用代码模拟自然现象。
D is for Digital 豆瓣
作者: Brian W Kernighan 出版社: CreateSpace 2011 - 9
This book explains how today's computing and communications world operates, from hardware through software to the Internet and the web. It includes enough detail that you can understand how these systems work, no matter what your technical background. The social, political and legal issues that new technology creates are discussed as well, so you can understand the difficult issues we face and appreciate the tradeoffs that have to be made to resolve them.
世界是数字的 豆瓣
D is for Digital: What a well-informed person should know about computers and communications
8.0 (11 个评分) 作者: [美] Brian W. Kernighan 译者: 李松峰 / 徐建刚 出版社: 人民邮电出版社 2013 - 6
家用电器、汽车、飞机、相机、手机、GPS 导航仪,还有游戏机,虽然你看不见,但这些设备都有计算能力。手机通信网络、有线电视网络、空中交通管制系统、电力系统、银行和金融服务系统等基础设施背后无一不是计算机在支撑。如今的世界是数字的,而计算机和计算无处不在。这本书就是要告诉大家数字世界有关计算机的一切。本书没有高深莫测的专业术语,但它全面解释了当今计算和通信领域的工作方式,包括硬件、软件、互联网、通信和数据安全,并且讨论了新技术带来的社会、政治和法律问题。
无论你有没有计算机背景,无论你从事什么职业,只要你认同自己生活在数字时代,这本书就是必读的!
程序员面试金典(第5版) 豆瓣
Cracking the coding interview:150 programming questions and solutions,fifth edition
作者: [美] Gayle Laakmann McDowell 译者: 李琳骁 / 漆犇 出版社: 人民邮电出版社 2013 - 11
本书是原谷歌资深面试官的经验之作,层层紧扣程序员面试的每一个环节,全面而详尽地介绍了程序员应当如何应对面试,才能在面试中脱颖而出。第1~7 章主要涉及面试流程解析、面试官的幕后决策及可能提出的问题、面试前的准备工作、对面试结果的处理等内容;第8~9 章从数据结构、概念与算法、知识类问题和附加面试题4 个方面,为读者呈现了出自微软、苹果、谷歌等多家知名公司的150 道编程面试题,并针对每一道面试题目,分别给出了详细的解决方案。
本书适合程序开发和设计人员阅读。
JavaScript高级程序设计(第3版) 豆瓣
Professional JavaScript for Web
9.3 (23 个评分) 作者: [美国] 尼古拉斯·泽卡斯 译者: 李松峰 / 曹力 出版社: 人民邮电出版社 2012 - 3
本书是JavaScript 超级畅销书的最新版。ECMAScript 5 和HTML5 在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript 增添了很多适应未来发展的新特性。本书这一版除增加5 章全新内容外,其他章节也有较大幅度的增补和修订,新内容篇幅约占三分之一。全书从JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax 与Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨文档传递消息、客户端存储(包括IndexedDB)等新API,还介绍了离线应用和与维护、性能、部署相关的最佳开发实践。本书附录展望了未来的API 和ECMAScript Harmony 规范。
本书适合有一定编程经验的Web 应用开发人员阅读,也可作为高校及社会实用技术培训相关专业课程的教材。
正则表达式必知必会(修订版) 豆瓣
9.5 (12 个评分) 作者: 福达 (Ben Forta) 译者: 杨涛 出版社: 人民邮电出版社 2015 - 1
《正则表达式必知必会》从简单的文本匹配开始,循序渐进地介绍了很多复杂内容,其中包括回溯引用、条件性求值和前后查找,等等。每章都为读者准备了许多简明又实用的示例,有助于全面、系统、快速掌握正则表达式,并运用它们去解决实际问题。正则表达式是一种威力无比强大的武器,几乎在所有的程序设计语言里和计算机平台上都可以用它来完成各种复杂的文本处理工作。而且书中的内容在保持语言和平台中立的同时,还兼顾了各种平台之间的差异。通过阅读本书,读者能够在轻松的氛圉中迅速掌握正则表达式的精髓,并可立即运用所学,解决实际问题。
The C Programming Language 豆瓣 Goodreads
9.8 (17 个评分) 作者: Brian W. Kernighan / Dennis M. Ritchie 出版社: Prentice Hall 1988 - 4
Presents a complete guide to ANSI standard C language programming. Written by the developers of C, this new version helps readers keep up with the finalized ANSI standard for C while showing how to take advantage of C's rich set of operators, economy of expression, improved control flow, and data structures. This 2nd edition has been completely rewritten with additional examples and problem sets to clarify the implementation of difficult language constructs. 7 x 9 1/4.
Ghost in the Wires 豆瓣 Goodreads
Kevin Mitnick
作者: Kevin Mitnick 出版社: Little, Brown and Company 2011 - 8
Kevin Mitnick, the world's most wanted computer hacker, managed to hack into some of the country's most powerful - and seemingly impenetrable - agencies and companies. By conning employees into giving him private information and maneuvering through layers of security, he gained access to data that no one else could. The suspenseful heart of the book unfolds as Mitnick disappears on a three-year run from the FBI. He creates fake identities, finds jobs at a law firm and hospital, and keeps tabs on his myriad pursuers - all while continuing to hack into computer systems and phone company switches that were considered flawless. A modern, technology-driven adventure story, GHOST IN THE WIRES is a dramatic account of the joy of outsmarting security programs, the satisfaction of code-cracking, and the thrill of unbelievable escape.
The Scheme Programming Language, 4th Edition 豆瓣
作者: R. Kent Dybvig 出版社: The MIT Press 2009 - 7
Scheme is a general-purpose programming language, descended from Algol and Lisp, widely used in computing education and research and a broad range of industrial applications. This thoroughly updated edition of The Scheme Programming Language provides an introduction to Scheme and a definitive reference for standard Scheme, presented in a clear and concise manner. Written for professionals and students with some prior programming experience, it begins by leading the programmer gently through the basics of Scheme and continues with an introduction to some of the more advanced features of the language.
The fourth edition has been substantially revised and expanded to bring the content up to date with the current Scheme standard, the Revised6 Report on Scheme. All parts of the book were updated and three new chapters were added, covering the language's new library, exception handling, and record-definition features.
The book offers three chapters of introductory material with numerous examples, eight chapters of reference material, and one chapter of extended examples and additional exercises. All of the examples can be entered directly from the keyboard into an interactive Scheme session. Answers to many of the exercises, a complete formal syntax of Scheme, and a summary of forms and procedures are provided in appendixes.
The Scheme Programming Language is the only book available that serves both as an introductory text in a variety of courses and as an essential reference for Scheme programmers.
The Seasoned Schemer 豆瓣
作者: Daniel P. Friedman / Matthias Felleisen 出版社: The MIT Press 1995
drawings by Duane Bibbyforeword and afterword by Guy L. Steele Jr.The notion that "thinking about computing is one of the most exciting things the human mind can do" sets both The Little Schemer (formerly known as The Little LISPer) and its new companion volume, The Seasoned Schemer, apart from other books on LISP. The authors' enthusiasm for their subject is compelling as they present abstract concepts in a humorous and easy-to-grasp fashion. Together, these books will open new doors of thought to anyone who wants to find out what computing is really about. The Little Schemer introduces computing as an extension of arithmetic and algebra;things that everyone studies in grade school and high school. It introduces programs as recursive functions and briefly discusses the limits of what computers can do. The authors use the programming language Scheme, and interesting foods to illustrate these abstract ideas. The Seasoned Schemer informs the reader about additional dimensions of computing: functions as values, change of state, and exceptional cases. The Little LISPer has been a popular introduction to LISP for many years. It had appeared in French and Japanese. The Little Schemer and The SeasonedSchemer are worthy successors and will prove equally popular as textbooks for Scheme courses as well as companion texts for any complete introductory course in Computer Science.
The Little Schemer - 4th Edition 豆瓣 Goodreads
9.7 (6 个评分) 作者: Daniel P. Friedman / Matthias Felleisen 出版社: The MIT Press 1995
This delightful book leads you through the basic elements of programming in Scheme (a Lisp dialect) via a series of dialogues with well-chosen questions and exercises. Besides teaching Scheme, The Little Schemer teaches the reader how to think about computation. The authors focus on ten essential concepts of thinking about how to compute and demonstrate how to apply these concepts in inventive ways. The Little Schemer is an excellent book both for the beginner and for the seasoned programmer.
How to Design Programs 豆瓣
作者: Matthias Felleisen / Robert Bruce Findler 出版社: The MIT Press 2001 - 2
This introduction to programming places computer science in the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process. This approach fosters a variety of skills--critical reading, analytical thinking, creative synthesis, and attention to detail--that are important for everyone, not just future computer programmers.
The book exposes readers to two fundamentally new ideas. First, it presents program design guidelines that show the reader how to analyze a problem statement; how to formulate concise goals; how to make up examples; how to develop an outline of the solution, based on the analysis; how to finish the program; and how to test. Each step produces a well-defined intermediate product. Second, the book comes with a novel programming environment, the first one explicitly designed for beginners. The environment grows with the readers as they master the material in the book until it supports a full-fledged language for the whole spectrum of programming tasks.
All the book's support materials are available for free on the Web. The Web site includes the environment, teacher guides, exercises for all levels, solutions, and additional projects.
-- amazon.com
Algorithms 豆瓣 Goodreads
Algorithms
作者: Sanjoy Dasgupta / Christos H. Papadimitriou 出版社: McGraw-Hill Education 2006 - 10
This text, extensively class-tested over a decade at UC Berkeley and UC San Diego, explains the fundamentals of algorithms in a story line that makes the material enjoyable and easy to digest. Emphasis is placed on understanding the crisp mathematical idea behind each algorithm, in a manner that is intuitive and rigorous without being unduly formal.
通灵芯片 豆瓣
The Pattern on the Stone: The Simple Ideas That Make Computers Work
作者: [英] 丹尼尔·希利斯 译者: 崔良沂 出版社: 上海科学技术出版社 2012
本书深入浅出地阐述了计算机科学中许多基本而重要的概念,包括布尔逻辑、有限自动机、编程语言、图灵机的普遍性、信息论、算法、并行计算、量子计算、神经网络、机器学习乃至自组织系统.作者高屋建瓴式的概括,既不失深度,又妙趣横生,相信读者读后会有很多启发.
计算机程序设计艺术(第1卷) 豆瓣
作者: [美国] Donald Knuth 出版社: 清华大学出版社 2002 - 9
第1卷首先介绍编程的基本概念和技术,然后详细讲解信息结构方面的内容,包括信息在计算机内部的表示方法、数据元素之间的结构关系,以及有效的信息处理方法。此外,书中还描述了编程在模拟、数值方法、符号计算、软件与系统设计等方面的初级应用。此第3版增加了数十项简单但重要的算法和技术,并根据当前研究发展趋势在数学预备知识方面做了大量修改。