diff --git a/free-programming-books.md b/free-programming-books.md index 027538c218312a9f94800a5830d4984cedaa75e0..1b1d678c28c477cd2bf8d0a423d21eea4dd3bb75 100644 --- a/free-programming-books.md +++ b/free-programming-books.md @@ -126,13 +126,17 @@ * [The Great Tree List Recursion Problem](http://cslibrary.stanford.edu/109/TreeListRecursion.pdf) * [Matters Computational](http://www.jjj.de/fxt/#fxtbook) * [Algorithmic Graph Theory](http://code.google.com/p/graphbook/) +* [Foundations of Computer Science](http://infolab.stanford.edu/~ullman/focs.html) - Al Aho and Jeff Ullman +* [A Field Guide To Genetic Programming](http://dces.essex.ac.uk/staff/rpoli/gp-field-guide/toc.html) +* [The Art of Computer Programming](http://www.cs.utsa.edu/~wagner/knuth/) (fascicles, mostly volume 4) +* [Programming Pearls](http://cs.bell-labs.com/cm/cs/pearls/) ####Theoretical Computer Science * [Structure and Interpretation of Computer Programs](http://mitpress.mit.edu/sicp/) -* [Foundations of Computer Science](http://infolab.stanford.edu/~ullman/focs.html) - Al Aho and Jeff Ullman * [Programming Languages: Application and Interpretation](http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/) * [Introduction to Computing](http://www.computingbook.org/) * [An Introduction to the Theory of Computation](http://www.cse.ohio-state.edu/~gurari/theory-bk/theory-bk.html) +* [Think Complexity](http://www.greenteapress.com/compmod/) - Allen B. Downey ####Operating systems * [The Art of Unix Programming](http://catb.org/esr/writings/taoup/html/) @@ -165,9 +169,7 @@ * [Is Parallel Programming Hard, And, If So, What Can You Do About It?](http://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html) ####Software Architecture -* [The Architecture of Open Source Applications](http://www.aosabook.org/en/index.html) -* [The Performance of Open Source Applications](http://aosabook.org/en/) -* [Programming Pearls](http://cs.bell-labs.com/cm/cs/pearls/) + * [Seamless Object-Oriented Software Architecture](http://www.bon-method.com/book_print_a4.pdf) * [Summary of the GoF Design Patterns](http://domaindrivendesign.org/sites/default/files/discussion/PatternSummariesUnderCreativeCommons.doc) * [How to write Unmaintainable Code](http://mindprod.com/jgloss/unmain.html) @@ -179,10 +181,19 @@ * [Best Kept Secrets of Peer Code Review](http://smartbear.com/codecollab-code-review-book.php) * [Domain Driven Design Quickly](http://www.infoq.com/minibooks/domain-driven-design-quickly) * [Essential Skills for Agile Development](http://elliottback.com/wp/essential-skills-for-agile-development/) -* [The Cathedral and the Bazaar](http://www.catb.org/esr/writings/cathedral-bazaar/) * [Guide to the Software Engineering Body of Knowledge](http://www.computer.org/portal/web/swebok) * [Programming Reliable Systems (Joe Armstrong's PhD thesis)](http://www.sics.se/~joe/thesis/armstrong_thesis_2003.pdf) +* [How to Design Programs](http://www.htdp.org/) +* [NASA Manager Handbook for Software Development](http://homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-manage.pdf) (PDF) +* [NASA Software Measurement Handbook](http://www.scribd.com/doc/7181362/NASA-Software-Measurement-Guidebook) +* [Don't Just Roll the Dice](http://www.neildavidson.com/dontjustrollthedice.html) + +####Open Source Ecosystem +* [Getting started with Open source development](http://public.dhe.ibm.com/software/dw/db2/express-c/wiki/Getting_started_with_open_source_development_p2.pdf) (PDF) * [Producing Open Source Software](http://producingoss.com/) +* [The Cathedral and the Bazaar](http://www.catb.org/esr/writings/cathedral-bazaar/) +* [The Architecture of Open Source Applications](http://www.aosabook.org/en/index.html) +* [The Performance of Open Source Applications](http://aosabook.org/en/) ####Information Retrieval * [Introduction to Information Retrieval](http://nlp.stanford.edu/IR-book/information-retrieval-book.html) @@ -196,17 +207,16 @@ * [Mathematical Logic - an Introduction](http://www.ii.uib.no/~michal/und/i227/book/book.pdf) (PDF) * [Bayesian Methods for Hackers](https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers) * [Mathematics for Computer Science](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/readings/) +* [Category Theory for Computing Science](http://www.math.mcgill.ca/triples/Barr-Wells-ctcs.pdf) +* [Essentials of Metaheuristics](http://cs.gmu.edu/~sean/book/metaheuristics/) by Sean Luke ####Misc * [97 Things Every Programmer Should Know](http://programmer.97things.oreilly.com/) * [97 Things Every Programmer Should Know - Extended](https://leanpub.com/97-Things-Every-Programmer-Should-Know-Extended) -* [How to Design Programs](http://www.htdp.org/) * [How to Think Like a Computer Scientist](http://openbookproject.net/thinkcs/) * [I Am a Bug](http://www.amibug.com/iamabug/p01.html) * [Learn to Program](http://pine.fm/LearnToProgram/) * [Foundations of Programming](http://codebetter.com/files/folders/codebetter_downloads/entry179694.aspx) -* [Programming Methodology](http://www.stanford.edu/class/cs106a/cgi-bin/handouts/) -* [Category Theory for Computing Science](http://www.math.mcgill.ca/triples/Barr-Wells-ctcs.pdf) * [Communicating Sequential Processes (PDF)](http://www.usingcsp.com/cspbook.pdf) - Tony Hoare * [Come, Let's Play: Scenario-Based Programming Using Live Sequence Charts](http://www.scribd.com/doc/175241338/Come-Let-s-Play) * [Computer Musings](http://scpd.stanford.edu/knuth/index.jsp) (lectures by Donald Knuth) @@ -215,22 +225,14 @@ * [Designing Interfaces](http://designinginterfaces.com) by Jennifer Tidwell * [Digital Signal Processing For Engineers and Scientists](http://www.dspguide.com/) * [Distributed systems for fun and profit](http://book.mixu.net/distsys/single-page.html) -* [Don't Just Roll the Dice](http://www.neildavidson.com/dontjustrollthedice.html) -* [Essentials of Metaheuristics](http://cs.gmu.edu/~sean/book/metaheuristics/) by Sean Luke -* [A Field Guide To Genetic Programming](http://dces.essex.ac.uk/staff/rpoli/gp-field-guide/toc.html) * [Flow based Programming](http://jpaulmorrison.com/fbp/#book) * [Getting Real](http://gettingreal.37signals.com/) -* [Getting started with Open source development](http://public.dhe.ibm.com/software/dw/db2/express-c/wiki/Getting_started_with_open_source_development_p2.pdf) (PDF) * [Modeling Reactive Systems with Statecharts](http://www.scribd.com/doc/167971960/Modeling-Reactive-Systems-With-Statecharts) -* [NASA Manager Handbook for Software Development](http://homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-manage.pdf) (PDF) -* [NASA Software Measurement Handbook](http://www.scribd.com/doc/7181362/NASA-Software-Measurement-Guidebook) * [PNG: The Definitive Guide](http://www.libpng.org/pub/png/book/) * [Pointers And Memory](http://cslibrary.stanford.edu/102/PointersAndMemory.pdf) * [Project Oberon](http://www-old.oberon.ethz.ch/WirthPubl/ProjectOberon.pdf) (PDF) * [Security Engineering](http://www.cl.cam.ac.uk/~rja14/book.html) * [Small Memory Software](http://www.smallmemory.com/book.html) -* [The Art of Computer Programming](http://www.cs.utsa.edu/~wagner/knuth/) (fascicles, mostly volume 4) -* [Think Complexity](http://www.greenteapress.com/compmod/) - Allen B. Downey * [Introduction to High-Performance Scientific Computing](http://tacc-web.austin.utexas.edu/veijkhout/public_html/istc/istc.html) - Victor Eijkhout