Reading Challenge May 2018

2018年五月书单~

已经在读的

Java改错学习法



《java改错学习法》作者虚构一个教学场景,采用一老一少的对话形式,将自己多年教学经验融入其中,颠覆传统教学模式,创新一种改错学java的方法,帮助学习者树立正确的学习观念,使初学者明白,改错也是一种学习方式,在改正错误的过程中也能够学到和巩固很多基础知识,只要有了足够的基础,就可以编写出非常复杂和漂亮的程序。
《java改错学习法》从基本概念入手,对开始学习java编程时会发生的错误进行纠正和引导,从而克服学习过程中的畏难心理,在改错中逐步成长。本书从简单的例子开始,循序渐进,帮助初学者提高查错、排错和改错的能力。相信通过足够多的练习,读者定能熟悉java程序设计的精华,进而提高java编程能力。

Remark:
复习巩固java基础

Pearls of Functional Algorithm Design



函数式算法设计珠玑,每一章节都适合单独作为一篇博文整理post。以Haskell语言为描述,给出了一个问题由浅入深的解答,非常适合用来学习算法设计思想。

Remark:
对完全理解的文章发博客进行总结,同时巩固复习Haskell

Data Structure & Algorithm In Go

Go语言写的算法与数据结构,2017年新书

书籍主页 https://github.com/wlbrough/data-structures-and-algorithms-in-go

Data Structure and Algorithm with JavaScript



This practical book shows you how to use linked lists, stacks, queues, and graphs, as well as classic algorithms for sorting and searching data in your JavaScript programs.

Each chapter includes at least one real-world application of the data structure or data structures discussed, along with exercises that help you further explore the practical application of various data structures and algorithms.

  • Implement data structures and algorithms within the constraints of JavaScript
  • Explore real-world applications to learn how JavaScript uses these data structures
  • Get a helpful JavaScript programming overview
  • Learn methods for handling advanced algorithms

Remark:
用JS学习算法的入门必读. 最常用的算法和数据结构都讲了, 很透彻.

深度学习



《深度学习》由全球知名的三位专家Ian Goodfellow、Yoshua Bengio 和Aaron Courville撰写,是深度学习领域奠基性的经典教材。全书的内容包括3个部分:第1部分介绍基本的数学工具和机器学习的概念,它们是深度学习的预备知识;第2部分系统深入地讲解现今已成熟的深度学习方法和技术;第3部分讨论某些具有前瞻性的方向和想法,它们被公认为是深度学习未来的研究重点。

《深度学习》适合各类读者阅读,包括相关专业的大学生或研究生,以及不具有机器学习或统计背景、但是想要快速补充深度学习知识,以便在实际产品或平台中应用的软件工程师。

Remarks
分章节阅读,纳入长期计划,八月底之前看完。

算法竞赛入门经典



《算法竞赛入门经典(第2版)》是一本算法竞赛的入门与提高教材,把C/C++语言、算法和解题有机地结合在一起,淡化理论,注重学习方法和实践技巧。全书内容分为12 章,包括程序设计入门、循环结构程序设计、数组和字符串、函数和递归、C++与STL入门、数据结构基础、暴力求解法、高效算法设计、动态规划初步、数学概念与方法、图论模型与算法、高级专题等内容,覆盖了算法竞赛入门和提高所需的主要知识点,并含有大量例题和习题。书中的代码规范、简洁、易懂,不仅能帮助读者理解算法原理,还能教会读者很多实用的编程技巧;书中包含的各种开发、测试和调试技巧也是传统的语言、算法类书籍中难以见到的。

《算法竞赛入门经典(第2版)》可作为全国青少年信息学奥林匹克联赛(NOIP)复赛教材、全国青少年信息学奥林匹克竞赛(NOI)和ACM国际大学生程序设计竞赛(ACM/ICPC)的训练资料,也可作为IT工程师与科研人员的参考用书。

Remark:
主要利用C++实现,需要复习C++

Clojure编程乐趣



Clojure是一门Lisp方言。它通过函数式编程技术,直接支持并发软件开发,得到众多开发人员的欢迎。

《Clojure编程乐趣》并非Clojure初学指南,也不是一本Clojure的编程操作手册,而是通过对Clojure详尽地探究,教授函数式的程序设计方式,帮助读者理解和体会Clojure编程的乐趣,进而开发出优美的软件。

全书分为5个部分共13章。第1部分是基础,包括第1章到第3章,从Clojure背后的思想开始,介绍了Clojure的基础知识,并带领读者初步尝试Clojure编程。第2部分包括第4章和第5章,介绍了Clojure的各种数据类型。第3部分是第6章和第7章,介绍了函数式编程的特性。第4部分包括第8章到第11章,分别介绍了宏、组合数据域代码、Clojure对Java的调用,以及并发编程等较为高级的话题。第5部分为第12章和第13章,探讨了Clojure的性能问题及其带给我们的思考。

《Clojure编程乐趣》适合有一定基础的Clojure程序员阅读,进而掌握函数编程的思考方法和程序设计方法,也可以作为读者学习函数式编程的参考资料。

Java并发编程核心方法与框架



Java并发编程类似API的一本书,给出了大量(重复?)示例。

计划开始读的

Java编程思想



本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。

从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、Java I/O系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。

Remark:
Java编程领域圣经级著作,锻炼Java编程思想

算法新解



本书分4 部分,同时用函数式和传统方法介绍主要的基本算法和数据结构。数据结构部分包括二叉树、红黑树、AVL 树、Trie、Patricia、后缀树、B 树、二叉堆、二项式堆、斐波那契堆、配对堆、队列、序列等;基本算法部分包括各种排序算法、序列搜索算法、字符串匹配算法(KMP 等)、深度优先与广度优先搜索算法、贪心算法以及动态规划。

如果读过Chris Okasaki的《Purely Functional Data Strucuture》和Richard Bird的《Pearls of functional algrithm design》就不用花钱买这本书了。但是我仍然推荐花个15分钟看看《算法新解》的英文版中的Fibonacci堆,AVL树和Finger树这3小段。至少在我写这些内容的时候,还没有用pattern matching实现的AVL树,纯函数的Fibonacci堆,以及类型递归深度递增的Finger树。英文电子版PDF在github上,可以免费看:
https://github.com/liuxinyu95/AlgoXY/releases

如果你看过Algorithms, A Funtional Proramming Approach,但没有看过上述两本,我还是大着胆子推荐一下《算法新解》,我觉得我写的比这本好。但和Okasaki与Bird比就差很多了。如果你想了解Monad,Arrow,Category,不用看这本书,完全没有涉及。

如果你想了解函数式编程中的代数方法,比如build/foldr deforestration,这本也没有涉及。

这本书最适合那些有很好的算法背景,刚刚用函数式方法写了一些Hello World式的程序玩,但是发现无从下手写纯函数式的数据结构和算法。也不知道常见算法和数据结构的函数式对应物大概是什么样的读者。

Remarks:

这本书的英文书稿Elementary Algorithms,五六百页的一本算法书,是作者多年来在学术界和工业界实践中不断思考的结晶。那本英文书稿因为对几个算法问题的独到解读,成为英文世界中很多人学习算法的参考资料。这本中文版书稿《算法新解》,感觉内容更加充实丰富,文笔更加流畅,引文更加全面,结构更加紧凑,我也更加不读完不能释手。

汉母语作者写的算法书里,这本是我觉得最好的一本。

Purely Functional Data Structure



Most books on data structures assume an imperative language such as C or C++. However, data structures for these languages do not always translate well to functional languages such as Standard ML, Haskell, or Scheme. This book describes data structures from the point of view of functional languages, with examples, and presents design techniques that allow programmers to develop their own functional data structures. The author includes both classical data structures, such as red-black trees and binomial queues, and a host of new data structures developed exclusively for functional languages. All source code is given in Standard ML and Haskell, and most of the programs are easily adaptable to other functional languages. This handy reference for professional programmers working with functional languages can also be used as a tutorial or for self-study.

Remarks:

最平实的语言讲出了最漂亮的方案,真的服气
函数式思维实现的数据结构
函数式与命令式数据结构的主要区别: In particular, when we update an imperative data structure we typically accept that the old version of the data structure will no longer be available, but, when we update a functional data structure, we expect that both the old and new versions of the data structure will be available for further processing.

Scala与Clojure函数式编程模式



StackOverflow刚刚发布了2015开发者调查,最受程序员喜爱的开发语言中,Clojure和Scala分别位列第五和第六。排名第一的是Swift,而Swift相比原先的Objective-C最重要的优点之一,就是对函数式编程提供了更好的支持。同时,新一代分布式计算系统Spark不仅在实现中选择了Scala,其提供的首选编程语言也是Scala。

所有迹象都显示,诞生50多年后,函数式编程却焕发了青春,越来越受到关注和青睐,从边缘地带步入了主流,除了Scala和Clojure这些新生函数式编程语言大行其道之外,Java等老牌面向对象的编程语言也开始支持匿名函数。函数式编程能简化开发过程,尤其是大型知识管理系统应用程序从中受益良多。

本书向读者展示了如何采用函数式方案来替代或简化面向对象编程中使用的诸多通用模式,同时还介绍了一些在函数式世界中广泛使用的模式。如果你是一名Java程序员,希望了解函数式编程能为你的工作效率带来多大的提升,或者你是一名刚刚开始使用Scala和Clojure的新手,尚不能玩转函数式的问题解决方案,那么本书就是为你而准备的。

Remark:
对于有经验的OOP来说,入门函数式编程的好书。

Java多线程编程核心技术



结合大量实例,全面讲解Java多线程编程中的并发访问、线程间通信、锁等最难突破的核心技术与应用实践

Java多线程无处不在,如服务器、数据库、应用。多线程可以有效提升计算和处理效率,大大提升吞吐量和可伸缩性,深得广大程序员和公司的青睐。很多人学习完JavaSE/JavaEE之后想往更深入的技术进行探索,比如对大数据、分布式、高并发类的专题进行攻克时,立即遇到针对java.lang包中线程类的学习,但线程类的学习并不像JDBC一样简单,学习曲线陡峭,多弯路与“坑”。要学习这些热点技术,Java多线程技术避无可避。而本书将引领读者拿下该“技术高地”。

Node.js硬实战:115个核心技巧

《Node.js 硬实战:115 个核心技巧》是一本面向实战的Node.js 开发进阶指南。作为资深专家,《Node.js 硬实战:115 个核心技巧》作者独辟蹊径,将着眼点放在Node.js 的核心模块和网络应用,通过精心组织的丰富实例,向读者充分展示了Node.js 强大的并发处理能力,读者从中可真正掌握Node 的核心基础与高级技巧。

《Node.js 硬实战:115 个核心技巧》总共有三部分内容,第一部分是Node.js 的基础核心,涉及Buffer、流、网络和进程等相关知识;第二部分是项目实践,涉及测试、Web 开发、调试,生产环境等重要话题;第三部分则完整创建了一个Node.js 模块。每部分涉及的技术都有详细讲解及注释详尽的示例代码,以帮助读者们更好地理解要点及其应用。

Remarks:

nodejs学习不可错过的一本好书,注重解决实际问题,而且选题绝不肤浅,能学到不少知识。
更加深入了解node.js的好书
内容确实有些过时了

响应式Web设计



随着iPad mini的发布,又一个新的屏幕尺寸诞生了。用不着全面统计,你就会发现移动互联网时代众多的屏幕规格,从智能手机的3、4、5英寸,到平板电脑的7、8、9、10英寸,再到笔记本和台式机的13至30英寸,绝非目前单一的固定或流式布局所能应付。于是,响应式设计应运而生,而且它也将成为移动互联网时代前端设计与开发人员的一门必修课。

本书堪称学习响应式Web设计的难得佳作。它不仅全面、细致、图文并茂地介绍了响应式设计相关的技术,比如媒体查询、流式布局、弹性媒体和弹性字体等,还把近几年来Web设计领域公认的最佳设计理念有机地融入到了实例当中,比如移动先行(Mobile First)、渐进增强、平稳退化、无障碍设计等。更加难得的是,本书以设计跨屏幕的网页(响应式设计)为出发点,以点带面,把如今Web设计领域两大标准的最新版本HTML5和CSS3也纳入其中,读者在掌握先进设计方法的同时也能掌握最新的设计技术(比如使用新的HTML5结构化语义标记、嵌入媒体、响应式视频,以及CSS3的新选择器、特效、过渡、变形和动画等),从而可以免除重复学习新标准之苦,让自己一步跨入Web设计领域的最前沿。无论你想学习响应式Web设计,还是学习HTML5和CSS3的实际应用,本书都能满足你的需要,是毋庸置疑的明智之选。

说到底,响应式Web设计并非一门独立的技术,而只是现有技术的一个组合应用。只要有一点HTML和CSS基础的读者都能顺利地掌握它。对于中、高级的前端设计和开发人员,翻阅本书也有助于理清自己的知识脉络,对这个新的设计理念获得更全面、深入的理解和把握。

Remarks

多为HTML5和CSS3的内容,百分之四十讲得响应式设计

JavaScript高效图形编程



《JavaScript高效图形编程》是一本具有很强实操性的JavaScript图书,全书共分10章,涵盖的主要内容有:JavaScript的面向对象机制、JavaScript性能优化、jQuery和ExtJS库、高级UI设计、Web游戏开发、面向移动设备的开发、图形编程知识等。

《JavaScript高效图形编程》适合有一定Web开发经验和JavaScript基础的开发人员学习。

Remarks
图形编程对前端游戏开发很有用!如图形和精灵的动画展现,还有TileMap这类2D地图游戏和背景移动,再直接扔给你一个纯JS写的小蜜蜂游戏,期间加入Html5的画板介绍,模拟物理炮弹轨迹现顺便把之前写的精灵动画使用画板,最后告诉你JS编写的应用如何在手机上执行,介绍得挺好的,广度深度兼顾。

文章作者: Monad Kai
文章链接: onlookerliu.github.io/2018/05/04/Reading-Challenge-May-2018/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Code@浮生记
支付宝打赏
微信打赏