Skip to content

Instantly share code, notes, and snippets.

@keksipurkki
Last active March 21, 2018 19:53
Show Gist options
  • Save keksipurkki/b6c1a1d5f7e1980d5dd70907b4f10e61 to your computer and use it in GitHub Desktop.
Save keksipurkki/b6c1a1d5f7e1980d5dd70907b4f10e61 to your computer and use it in GitHub Desktop.
Reading list

Read these

Visual design

Software

Functional programming (FP)

  • H. Abelson et al.: Structure and Interpretation of Computer Programs (1996)
    • Standard book on FP

Architecture and software design

  • E. Evans: Domain-Driven Design (2003)
    • Popularized the notion of DDD
  • R.T. Fielding: Architectural Styles: Design of Network-Based Software Architectures (2000)
    • Coined the concept of Representational State Transfer (REST)
  • E.S. Raymond: Art of Unix Programming
    • OS design à la Unix
  • M. Fowler: Refactoring (1999)
    • Standard work on the role of refactoring in software development
  • R. Gabriel: Worse is better (1989)
  • R. C. Martin: Clean code (2008)
    • Moral lessons on software development
  • B. Meyer: Object-Oriented Software Construction (1988)
    • Open/closed principle. Defines how every software module ought to behave.
  • B. Liskov: Data abstraction and hierarchy. (1988)
    • The Liskov subsitution principle: Defines formally what subtyping means.
  • E. Gamma et al.: Design Patterns: Elements of Reusable Object-Oriented Software (1994)
    • Standard work on design patterns

Algorithms

  • B. P. Flannery, et al.: Numerical Recipes in C. The Art of Scientific Computing (1992)
    • Standard reference for numerical algorithms
  • Conditioning, Stability and Finite Precision Arithmetic
    • Estimating errors
    • Defines formally what 'well-conditioned' means
  • T. Cormen et al.: Introduction to Algorithms (?)
    • Standard reference for algorithms (e.g., Java TreeMap)
  • D. J. Bernstein: DJBX33X
    • The hashing algorithm used under the hood in many languages
  • M. Matsumoto and T. Nishimura: Mersenne twister (1998)
    • The PRNG used under the hood in many languages
  • G. M. Morton: A computer Oriented Geodetic Data Base; and a New Technique in File Sequencing G. M. (1966)
    • Order and iterate over multidimensional data in order of nearest neighbors
    • Many applications, one of which is the Geohash service
  • B. Bloom: Space/Time Trade-offs in Hash Coding with Allowable Errors (1970)
    • Introduced the Bloom filter algorithm
    • Non-deterministic membership test for huge datasets
    • O(k) lookups and where k is the number of hash functions. No dependence of the cardinality of the dataset!
  • V.R. Pratt: Top Down Operator Precedence (1973)
    • FP lexer/parser
  • Netlib repository
    • Old school numerical code from the vaults of the AT&T Bell Laboratories (really old school)
  • P. Jaccard: The distribution of the flora in the alpine zone (1912)
  • NP-complete algorithms: Michael Garey and David Johnson: Computers and Intractability: A Guide to the Theory of NP-Completeness
  • Montgomery’s method, Barrett’s algorithm
  • Horner's scheme

Performance and the like

Cryptography

Investing

  • R. Kiyosaki: Rich Dad, Poor Dad (2000)
  • B. Graham: Intelligent investor (1949)
  • D. Luenberger: Investment Science
    • Reference for return calculation / estimation for both fixed-income and equity securities
  • K. Hämäläinen: Laatuguru
    • How to measure the quality of an investment portfolio
    • Reference for fair-price estimation techniques and equations for various financial key figures
  • M. Lewis: Big Short
  • M. Lewis: Liar's Poker
  • R. Lowenstein: Warren Buffett: The Making of an American Capitalist
  • R. Chernow: Titan: The Life of John D. Rockefeller, Sr.

References

Other

  • F. Brooks Jr., The mythical man month (1975)
    • Evergreen truths about software and software engineering
  • D. Kahneman: Thinking, Fast and Slow (2011)

TODO

http://www.popoloproject.com/

vcard (tutki myös muita microformaatteja) https://en.wikipedia.org/wiki/VCard

https://github.com/nzakas/computer-science-in-javascript/ https://github.com/enaqx/esds/blob/master/doc/links.md

  • Huffman coding
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment