-= 10 Technical Papers Every Programmer Should Read (At Least Twice) =- 10 Technical Papers Every Programmer Should Read (At Least Twice) this is the second entry in a series on programmer enrichment Inspired by a fabulous post by Michael Feathers along a similar vein, I’ve composed this post as a sequel to the original.

That is, while I agree almost wholly with Mr. Feather’s1 choices, I tend to think that his choices are design-oriented2 and/or philosophical. In no way, do I disparage that approach, instead I think that there is room for another list that is more technical in nature, but the question remains, where to go next? All papers are freely available online (i.e. not pay-walled)They are technical (at times highly so)They cover a wide-range of topicsThe form the basis of knowledge that every great programmer should know, and may already Because of these constraints I will have missed some great papers, but for the most part I think this list is solid.

A Visionary Flood of Alcohol Fundamental Concepts in Programming Languages (link to paper) by C. Best paper awards for AAAI, ACL, CHI, CIKM, FOCS, ICML, IJCAI, KDD, OSDI, SIGIR, SIGMOD, SOSP, STOC, UIST, VLDB, WWW. Guru of the Week (GotW) Archive - Main Index Page. Guru of the Week is a regular series of C++ programming problems created and written by Herb Sutter.

Since 1997, it has been a regular feature of the Internet newsgroup comp.lang.c++.moderated, where you can find each issue's questions and answers (and a lot of interesting discussion). GotW Archive (Most Recent First) Note: The book More Exceptional C++ is the authoritative reference for GotW issues #31 to #62, #66, #71, and #77 plus much more. The solutions archived here, shown below, are the original GotW solutions substantially as posted to the newsgroup; these solutions were later revised (and some greatly expanded) in the book, to bring them up to the date with the published ISO/ANSI C++ standard and to add additional new material.

Note: The book Exceptional C++ is the authoritative reference for GotW issues #1 to #30, plus much more. Complexity Cases in Wolfram. Posted by An algorithm is, in essence, a procedure given by a finite description that solves some computational problem.

The field of computational complexity deals with questions of the efficiency of algorithms, i.e. “For a computational problem X, how many steps does the best algorithm perform in solving X?” You might think that questions in this field would be confined to the realm of computer science, except for the fact that computational complexity theory contains the mathematical problem of the century! Currently, many mathematicians around the world are attempting to solve the famed open problem P vs. It is generally accepted that the foundations of modern computer science were laid in the 1930s, for it was in this decade that Turing machines, recursive functions, λ-calculus (the inspiration for LISP), Markov algorithms, and many other forms of computation were invented. No discussion of complexity theory would be complete—no pun intended—without touching on the P vs. How We Made GitHub Fast - GitHub.

Bartholdi on spacefilling curves. Figure 1: A heuristic solution to the Traveling Salesman Problem is to visit the points in the same sequence as the Sierpinski spacefilling curve.

A spacefilling curve is a continuous mapping from a lower-dimensional space into a higher-dimensional one. A famous spacefilling curve is that due to Sierpinski, which is formed by repeatedly copying and shrinking a simple pattern (the convoluted tour in Figure 1). A useful property of a spacefilling curve is that it tends to visit all the points in a region once it has entered that region.

Thus points that are close together in the plane will tend to be close together in appearance along the curve. This forms the basis of the heuristic, invented by L. The spacefilling curve heuristic (SFC) has many advantages, if you are willing to accept solutions that are about 25% longer than optimum (expected, for random point sets).