关闭

高分编程佳作推荐

标签: 编程
1173人阅读 评论(2) 收藏 举报

编程方面书籍的Top 10榜单大家可能都已经烂熟于心,TAOCP、GoF、CLRS、SICP、《The C Programming Language》、《Clean Code》、《Refactoring》、《Code Complete》、人月神话、龙书等等,这些都是经过了时间考验、需要反复阅读的经典。本文不谈这些人人皆知的经典著作,而是给大家推荐一下比较新的、网评非常好的“新经典”,如果前面那些都已经读过或者读腻了,不妨来看看这些不错的新书,也许能重新激发你学习的乐趣。

mybooks


1.业余数学

1.1 基本素养

书目:《Mathematics: A Very Short Introduction》、《How to Think Like a Mathematician》、《Concepts of Modern Mathematics》

非常好的三本入门书,都已在读,管中窥豹地了解一下什么是数学、数学家如何思考、现代数学中最火的研究主题,稍后会写一篇文章专门总结一下。

1.2 趣味读物

好的数学科普读物非常多,目前最想读的是《The Man Who Knew Infinity: A Life of the Genius Ramanujan》、《The Man Who Loved Only Numbers: The Story of Paul Erdős and the Search for Mathematical Truth》和Surely You’re Joking, Mr. Feynman!: Adventures of a Curious Character》。费曼先生这本小书被放在了卫生间,每天读一章,还挺有趣的……

1.3 正统教材

书目:《Calculus: An Intuitive and Physical Approach》、《Introduction to Linear Algebra》

正统的数学学习,最想读Spivak的《Calculus》和Strang的《Introduction to Linear Algebra》。可惜这两本都是教材,卖的实在有点贵,有一本评价非常不错的微积分书《Calculus: An Intuitive and Physical Approach》,Dover出版,价格公道、童叟无欺,八百多页只要二十刀。于是已经入手,兴致勃勃准备学习一下。概率论不准备读纯数学类教材了,因为有本概率论与算法分析结合的非常好的教材,具体参见1.2 算法部分。


2.CS理论

2.1 计算理论

书目:《Nature of Computation》

《Nature of Computation》是一本新出的大部头,貌似比传统的《Introduction to the Theory of Computation》要轻松一些。还有一本评价非常高的,著名的物理学家费曼的《Feynman Lecture on Computation》。

2.2 算法

书目:《Probability and Computing: Randomized Algorithms and Probabilistic Analysis》、《From Mathematics to Generic Programming》

所有经典的算法书基本都买全了,TAOCP(《The Art of Computer Programming》)准备打折时收藏一下留作查阅用,但估计没机会读完甚至开始读,有机会能读完第一卷Fundamentals就不错了。到头来还是绕不开CLRS(《Introduction to Algorithm》),准备好好重读一遍,好好做一下习题,也不枉读研时导师讲了那么多相关的内容。其他《Algorithm Design》、《The Algorithm Design Manual》、《Algorithms》、《Programming Pearls》等作为补充,比如DP、Combinatorics。另外,这本强大的UCBerkeley的教材《Probability and Computing》是对CLRS非常好的补充,不仅可以复习概率论的基础知识,同时也是对CLRS中算法分析和随机算法部分的有力补充。

《From Mathematics to Generic Programming》是Alexander A. Stepanov的最新著作,比之前那本所谓的编程的本质《Elements of Programming》要通俗有趣,加入了抽象代码等基础知识的介绍和一些数学史的趣事。从数学或者说科学的角度看编程,这方面Stepanov的书,还有David Gries的《The Science of Programming》都是佳作,也很合本人胃口。

2.3 编程语言理论

书目:《An Introduction to Functional Programming Through Lambda Calculus》、《Types and Programming Languages》

学习编程语言理论,这本TaPL是绕不开的经典著作。读研时上过一门叫做《Principle of Programming Language》的课,导师是一位身宽体胖的老大爷。前两节来上课试听的同学还不少,但等到第二周正式注册时却只剩不到10个人。于是老大爷就感慨,现在的学生都去选更容易(至少听名字更容易)的课了,我想其实大家是想留更多时间刷题找工作。但是他认为,每一个严肃的程序员,都应该学习编程语言理论。他说这话时的认真表情,让我久久无法平静。那门课我一直认真听认真做,却遇到了很少有的编程作业做不出的情况,因为第一次接触确实很难。所以毕业后想花时间好好学学这方面的东西,还梦想着有能力设计一门自己的语言,一门都是自己觉得好的语法和特性组成的语言,应该会很酷!


3.编程实践

3.1 新语言

书目:《Fluent Python》、《Java 8 in Action》

之前Ruby很火,但因为种种原因似乎现在不那么火了。现在“新语言”的典范应该是Python吧,被Google、Amazon以及很多大公司广泛接受。而这本《Fluent Python》在Goodreads上的评分高的吓人,买了一读发现实至名归,阅读体验非常棒!以前一直在找一本Python进阶的书,因为对于一名其他语言熟练的老程序员来说,从头开讲Python的基础语法真的是种折磨,慢慢就失去了学习Python的热情。而这本书则字字珠玑,讲的都是Python之所以出色的特质。

而后一本则是对Java 8中引入的Lambda有不错的讲解。从本科到工作,一直非常热爱Java,6中的各种新语法特性如数家珍,但从Java 7和8开始就渐渐没有关注,等Java 9出来了一定要好好学习一下,重燃热情~(美亚上显示经典的《Effective Java》第三版明年会出,而且会包含Java 9方面的内容,到时一定要入手一本)

3.2 方法论

书目:《Working Effectively with Legacy Code》

在编程方法方面,《Clean Code》、《Refactoring》和《Code Complete》都是永恒的经典,都是要反复读的,在这里推荐另外一本。作为程序员,我们最经常做的就是修改遗留代码,而这方面容易忽略的一本经典著作就是这本《Working Effectively with Legacy Code》。之前看到一本不错的二手版本,都已经下单了,后来不知道怎么想的又取消了,结果现在特别贵,肠子都悔青了,:|

3.3 工具

书目:《Practical Vim: Edit Text at the Speed of Thought》

这本《Practical Vim》在豆瓣评分高达9.1,在Goodread上也有很高的分数,在中外程序员心中都是一部佳作。使用Vim少说也有了五六年了,看到评价这么好的一本书,不免想买来看看还有哪些高级技巧,让自己Vim的水平更上一层楼。


4.系统开发

4.1 分布式系统

书目:《Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems》

分布式系统编程方面一直没有特别好的书,要么就太泛泛,要么就枯燥。而这本《Designing Data-Intensive Applications》在网上的评价几乎是一边倒的好评,十分好奇所以入手备着,准备细细品读,同时对读研时上的《Distributed System》课里学过的知识都梳理一遍。当时最震惊的就是,原来分布式的理论也可以统一地用数学语言去表达甚至证明。之前一直以为自己擅长这方面的东西,其实学得并不扎实,所以抽时间一定要重新学习一遍。

4.2 架构设计

书目:《Clean Architecture: A Craftsman’s Guide to Software Structure and Design》

Bob大叔最新的著作,2017年9月才正式发售,在美亚上还没有几个人评论。口碑如何目前还不够了解,只是简单的看了一下目录。但Bob大叔名声在外,有《Clean Code》和《Clean Coder》珠玉在前,相信这本也差不了。

4.3 运行维护

书目:《Site Reliability Engineering: How Google Runs Production Systems》

Google的运维工程师手册,从方方面面讲述高可用系统的维护,用科学的方法和思维做事。目前在Amazon工作了一小段时间,深感Amazon在系统监控、运维方面的强大。所以对这方面很感兴趣,想看看Google分享的经验。这本书的缺点据说是有点啰嗦,网上有免费的在线版,想节约资金的同学可以直接在线看。


5.其他佳作

5.1 机器学习

书目:《Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems》、《Gödel, Escher, Bach: An Eternal Golden Braid》

机器学习和AI现在非常火,之前一直没有关注因为觉得自己的数学和理论水平不够,学了也只是皮毛。自从开始自学一些数学知识后,对学习AI有了些信心,相信假以时日还是能够学明白的。这本《Hands-On Machine Learning》评价非常不错,比较基础也比较实用,最后部分还讲到了现在最火的深度学习,绝对值得拥有。另外还有一本超高分的MIT的《Deep Learning》,第一部分也有前置知识的铺垫,但后面部分据说太过权威和严谨,所以本人始终没敢挑战,学有余力的同学不妨一读,相信大家的评价是不会错的。

《Gödel, Escher, Bach: An Eternal Golden Braid》大名鼎鼎的旷世奇书GEB,好不容易买到了一本精装版的,准备好好拜读。从编程、音乐、绘画等科学和艺术人文方面开讲,Goodreads上口碑炸裂不可不读,这样的旷世好书可遇不可求。

5.2 休闲读物

书目:《Coders at Work: Reflections on the Craft of Programming》

《Coders at Work》包含了对十五位编程大师的访谈,谈到了他们是如何喜欢上编程,如何学习,对编程的发展又有何看法。虽然还没有读,但对这本书还是很期待的,相信每位大师振聋发聩的言语会对每个人的职业生涯都产生深远的影响。还有一本《Beautiful Code: Leading Programmers Explain How They Think》,中文名《编程之美》。之前在国内买过但没有随身带过来,网上评价一般,可能因为大家觉得内容比较零散,每章的代码片段像拼凑的,但个人觉得有时间不妨一读,可以激发灵感,因为评分不高所以就没放在上面书目中。

1
0
查看评论

《数据结构高分笔记》读书笔记

说明: 当年看完《数据结构高分笔记》2014版,吸收精华后写了一份让我引以为豪的精简笔记。。。。 然而现在掉了。。。。找到不到了。。。。痛心。。。。 为了巩固数据结构,不得已再拾起这本书再过一遍。。。。 这回笔记不再写在纸上了。。。。 虽然麻烦一点,但为了以后能快速拾起基本知识还是写成在线...
  • jinlin_23
  • jinlin_23
  • 2017-02-23 21:21
  • 428

高分三号卫星介绍

高分三号卫星传感器介绍
  • ZMT1849101245
  • ZMT1849101245
  • 2017-07-19 13:55
  • 417

高分一号PMS相机多光谱和全色数据预处理

高分一号(GF-1)的P/MS相机可以获取包括8米多光谱和2米的全色图像。其中8米的多光谱包括蓝、绿、红、近红外4个波段。GF-1还配置4台分辨率为16米的多光谱中分辨率宽幅相机,拥有800km幅宽。     和其他国产数据一样,如资源三号、资源一号02...
  • esricd
  • esricd
  • 2013-11-13 09:38
  • 4573

高分一号卫星介绍及参数

“高分一号”于2013年4月26日在酒泉卫星发射中心由长征二号丁运载火箭成功发射。是高分辨率对地观测系统国家科技重大专项的首发星,配置了2台2米空间分辨率全色/8米空间分辨率多光谱相机,4台16米空间分辨率多光谱宽幅相机。设计寿命5至8年。“高分一号”卫星具有高、中空间分辨率对地观测和大幅宽成像结合...
  • mihou_qust
  • mihou_qust
  • 2017-12-26 17:58
  • 211

高分二号卫星介绍及参数

高分二号卫星是我国自主研制的首颗空间分辨优于1米的民用光学遥感卫星可在遥感集市平台中查询到,搭载有两台高分辨率1米全色、4米多光谱相机,具有亚米级空间分辨率、高定位精度和快速姿态机动能力等特点,有效地提升了卫星综合观测效能,达到了国际先进水平。     高分二号卫星于8月19日成...
  • mihou_qust
  • mihou_qust
  • 2017-12-26 18:03
  • 133

推荐一款编程字体,让代码看着更美

在IDE(集成开发环境)中进行程序开发时,字体的选择看上去并不是那么的重要。但是,一款优雅的字体在整体视觉上能让代码看上去更美,营造一个积极的气氛,眼睛不再那么累,心情就会显得不错,那么你的开发效率自然也会有所提升。
  • wenbitianxiafeng
  • wenbitianxiafeng
  • 2015-12-30 22:52
  • 733

【技术类】【ArcGIS对国产卫星的支持2:高分一号卫星】篇3、单景影像的几何校正

1、单景无控/有控几何校正       资源卫星应用中心分发的Level 1级产品是没有坐标的原始影像,高分一号的PMS和WFV数据也不例外。用户拿到这些原始影像,需要先进行几何校正才能够和现有数据叠加,继续后续的应用。你可以使用原始数据中包含的几何...
  • arcgis_all
  • arcgis_all
  • 2014-03-25 16:51
  • 4645

豆瓣上9分以上的IT书籍-编程语言篇

我当要学习某些技术时,第一时间就是去找相关的书籍。而豆瓣读书是我主要的参考依据,主要是它的评分基本比较靠谱,对于技术书籍,一般来说评分在8分以上就是不错的书籍了,而达到9分就可以列入”必读”系列了,所以我就打算总结一下豆瓣上评分9以上的技术书籍,本想一片文章完成的,可是经典著作太多了,因此这篇文章先...
  • crazytea
  • crazytea
  • 2017-03-24 17:59
  • 1370

【技术类】【ArcGIS对国产卫星的支持2:高分一号卫星】篇12、ArcGIS Online中使用影像服务

ArcGIS 10.2带来了新一代WebGIS应用模式,新模式将ArcGIS影像同云衔接的更加紧密。以WebGIS为中心,实现计算向数据端的移动,可以充分利用服务器端的计算能力和带宽,帮助我们实现各类在线遥感影像应用,如影像分发,影像分析,影像处理,影像管理等。    ...
  • arcgis_all
  • arcgis_all
  • 2014-03-28 14:10
  • 2335

集体智慧编程第二章之提供推荐

本章主要介绍了利用协作型算法对项目进行推荐,这里的项目可以是商品,电影,音乐。一个协作型算法的关键是对一大群人进行搜索,从中找出与我们品味最相似的一群人,算法会对这些人的所偏好的内容进行考查,并将它们组合起来构造出一个经过排名的推荐列表。本文主要通过一个电影推荐的例子完成这个过程。
  • Augster
  • Augster
  • 2016-12-14 10:50
  • 704
    个人资料
    • 访问:3389639次
    • 积分:24486
    • 等级:
    • 排名:第318名
    • 原创:314篇
    • 转载:56篇
    • 译文:3篇
    • 评论:1592条
    博客专栏
    最新评论