返回 登录
128

(不断更新)每个程序员都应该知道的那些事儿

阅读18146
http://projectmona.com/bits-of-brilliance-session-five/
里面内容很杂但很丰富,是UIUC教授Jeff Erickson在编程方面的个人收集(其他收集可以参见:http://projectmona.com/bits-of-brilliance/ 包括费曼、尼采和特斯拉等等)。

其中比较有价值的有:
算法笔记:http://compgeom.cs.uiuc.edu/~jeffe/teaching/algorithms/
每个程序员应该知道的100个Vim命令:http://www.catswhocode.com/blog/100-vim-commands-every-programmer-should-know
Addy Osmani的JavaScript设计模式(电子书):http://addyosmani.com/resources/essentialjsdesignpatterns/book/
Practicing Ruby(每月订阅的编程课程):https://practicingruby.com/
每个程序员都应该了解的Unicode与字符集常识:http://www.joelonsoftware.com/articles/Unicode.html (另外可以参见阮一峰的博客:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
类型理论与函数式编程(PDF电子书):http://www.cs.kent.ac.uk/people/staff/sjt/TTFP/ttfp.pdf

类似标题的文章见过不少,虽然都有些标题党,但其中总也能给出一些有价值的资料汇编。
Hacker News上的讨论(https://news.ycombinator.com/item?id=5962933 )里大家正好把类似的文章、资源和经验都汇集了一下。比较精彩的包括:
【StackOverflow】
你最喜欢的编程相关学术论文 http://stackoverflow.com/questions/358033/what-are-your-favorite-programming-related-academic-papers
每个程序员都应该读一读的书 http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read
最有价值的算法有哪些 http://cstheory.stackexchange.com/questions/189/algorithms-from-the-book

@___Dev___ 自己总结的:1) 掌握现代Web技术;2) 掌握一种面向对象编程语言;3) 掌握一门函数式语言;4) 熟悉一种动态语言;5) 记住到哪里去查理论知识比如算法 (@gambogi 认为对基本数据结构及其原理需要了解)

【每个程序员都应该读上两遍的技术论文】
Michael Fogus大牛的版本:http://blog.fogus.me/2011/09/08/10-technical-papers-every-programmer-should-read-at-least-twice/
Michael Feathers的版本:http://blog.csdn.net/turingbook/article/details/3946421 (英文版链接好像找不到了)
【每个架构师都应该读上两遍的论文】
Rotem-Gal-Oz:http://www.rgoarchitects.com/nblog/2009/02/27/10PapersEverySoftwareArchitectShouldReadAtLeastTwice.aspx

@nraynaud 提及:IEEE 754浮点运算标准是每个程序员必须了解的:http://grouper.ieee.org/groups/754/http://zh.wikipedia.org/wiki/IEEE_754 (你知道0.1 + 0.2不等于0.3吗?)
噢,稍后我找到Oracle网站上介绍浮点的好文:http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

@inopinatus 关于人名你需要知道的那些事儿:http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/

@gruseom推荐的:
Pierce收集的编程语言领域伟大著作(这个我以前在极客头条推过) http://www.cis.upenn.edu/~bcpierce/courses/670Fall04/GreatWorksInPL.shtml
Lambda经典论文:http://library.readscheme.org/page1.html

最后,有同学为了证明这真的是一个月经贴,干脆给出了一个搜索结果:https://www.hnsearch.com/search#request/all&q=papers+every+programmer+should+read

这启发了我,这样搜索一下应该有更多结果吧:https://www.hnsearch.com/search#request/all&q=every+programmer+should&start=0
嗯,结果太多了,再细一点:https://www.hnsearch.com/search#request/all&q=%22every+programmer+should%22&start=0

下面是我对搜索结果的人肉整理:
1. 每个程序员都应该知道的97件事儿 http://programmer.97things.oreilly.com/wiki/index.php/Contributions_Appearing_in_the_Book
2. 每个程序员都应该知道的延迟数值 http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html (这个我也在微博里推过)
3. 关于时间每个程序员都应该知道的事儿
4. 内存 http://lwn.net/Articles/250967/ (这个太经典了)
5. SEO http://katemats.com/what-every-programmer-should-know-about-seo/
6. 程序员应该知道的哲学家:Susanne K. Langer http://www.daddymodern.com/susanne-langer-theory/ (自备梯子)
7. 编程范式:http://lambda-the-ultimate.org/node/3465
8. 非技术能力:http://www.singhrahul.com/2012/10/non-programming-skills-every-programmer.html
9. 程序员禅道十律:http://www.javacodegeeks.com/2012/11/the-10-rules-of-a-zen-programmer.html
10. 程序员这辈子必须找时间读一下abort()的代码:http://www.reddit.com/r/raldi/comments/iu0f7/every_programmer_should_read_the_source_code_t/ (HN讨论也很有料:https://news.ycombinator.com/item?id=2782182
11. 正则表达式:http://immike.net/blog/2007/04/06/the-absolute-bare-minimum-every-programmer-should-know-about-regular-expressions/ (自备梯子)
12. 简单的贝叶斯估算程序:http://jgeer.com/better-estimation-when-perfection-is-unlikely/
13. 内存分频器:http://gee.cs.oswego.edu/dl/html/malloc.html
14. 多媒体:http://multimedia.cx/eggs/what-every-programmer-should-know/ (这篇文章里面有前面很多链接的汇集)

当然,别忘了这篇挺经典的讨论贴“我是个草包程序员,帮帮我吧”:https://news.ycombinator.com/item?id=2262527
评论