avatarEric Elliott

Free AI web copilot to create summaries, insights and extended knowledge, download it at here

6376

Abstract

Languages-Weeks-Programming-Programmers/dp/193435659X/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=eejs-20&linkId=d85311a13116f2aa4e97d60ebdb8fd2f">Seven Languages in Seven Weeks</a> by Bruce Tate</li><li><a href="http://www.amazon.com/Seven-Databases-Weeks-Modern-Movement/dp/1934356921/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=b18d654eb2fda4c4840e2919e8a55c4a">Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement</a> by Eric Redmond, Jim R. Wilson</li><li><a href="http://www.amazon.com/Seven-Concurrency-Models-Weeks-Programmers/dp/1937785653/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=8564874935a619d8a8bdd22baeab506b">Seven Concurrency Models in Seven Weeks</a> by Paul Butcher</li><li><a href="http://www.amazon.com/The-Programming-Language-Brian-Kernighan/dp/0131103628/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=a2dacad1fa8eed0aa0feaf1d54f70410">The C Programming Language</a> aka the K&R book by Brian W. Kernighan, Dennis M. Ritchie</li></ul><h1 id="7257">Functional Programming</h1><figure id="8f0f"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*NPP5QphOfd0xrCVzcOg9ug.jpeg"><figcaption></figcaption></figure><ul><li><a href="https://drboolean.gitbooks.io/mostly-adequate-guide/content/">Professor Frisby’s Mostly Adequate Guide to Functional Programming</a> by Brian Lonsdorf</li><li><a href="http://www.amazon.com/The-Little-Schemer-4th-Edition/dp/0262560992/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=02bdee98582fc8a973db9dff830b6b5d">The Little Schemer</a> by by Daniel P. Friedman, Matthias Felleisen, Duane Bibby, Gerald J. Sussman</li><li><a href="http://www.amazon.com/Learn-You-Haskell-Great-Good/dp/1593272839/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=f37ff4ad70d012fe595558cbc16f183e">Learn You A Haskell for Great Good</a> by Miran Lipovaca</li><li><a href="http://www.amazon.com/Purely-Functional-Structures-Chris-Okasaki/dp/0521663504/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=4b47c3066747c540cf74b295102e0f3e">Purely Functional Data Structures</a> by Chris Okasaki</li><li><a href="http://www.amazon.com/Category-Computer-Scientists-Foundations-Computing/dp/0262660717/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=b29a738fb45af42a56ea448708f438c0">Basic Category Theory for Computer Scientists</a> by Benjamin C. Pierce</li></ul><h1 id="fea8">Academic Topics</h1><figure id="8228"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*Ftwm8SdtfxZnlxlPzygmLA.png"><figcaption></figcaption></figure><ul><li><a href="http://www.amazon.com/New-Turing-Omnibus-Sixty-Six-Excursions/dp/0805071660/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=d4c83e87bc3746de2bc108878dad8e0b">The New Turing Omnibus: Sixty-Six Excursions in Computer Science</a> by A. K. Dewdney</li><li><a href="http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=as_li_ss_tl?ie=UTF8&amp;dpID=51szD9HC9pL&amp;dpSrc=sims&amp;preST=_AC_UL160_SR127%2C160_&amp;refRID=1M5H8SBQF96ZHXYV1RQ2&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=530b7fcb4f0e734b7952559730673cae">Design Patterns: Elements of Reusable Object Oriented Software</a> aka the Gang of Four book or the GoF by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Grady Booch</li><li><a href="http://www.amazon.com/How-Design-Programs-Introduction-Programming/dp/0262062186/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=1ec1b0799f5fa51cf070762f440fda32">How to Design Programs</a> by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi</li><li><a href="http://www.amazon.com/Structure-Interpretation-Computer-Programs-Engineering/dp/0262510871/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=c9229d8c79cf8044b3f467dcf7fc3354">The Structure and Interpretation of Computer Programs</a> by Harold Abelson, Gerald Jay Sussman, Julie Sussman</li><li><a href="http://www.amazon.com/Introduction-Algorithms-3rd-Edition-Press/dp/0262033844/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=6cd4795a1defdc493ae88583dcc7ffea">Introduction to Algorithms, 3rd Edition</a> by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein</li><li><a href="http://www.amazon.com/Algorithms-4th-Edition-Robert-Sedgewick/dp/032157351X/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=34295214cd2497b23525e76d24e5134d">Algorithms</a> by Robert Sedgewick, Kevin Wayne</li><li><a href="http://www.amazon.com/The-Art-Computer-Programming-Vol/dp/0201896834/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=eecb59c3dd3b568e860c2f4b6a0564e9">The Art of Computer Programming: Vol. 1</a> by Donald E Knuth</li><li><a href="http://www.amazon.com/Art-Computer-Programming-Volume-Seminumerical/dp/0201896842/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=e9cb1b0bb7c748d917adcefbdc1dea93">The Art of Computer Programming: Vol. 2</a> by Donald E Knuth</li><li><a href="http://www.amazon.com/The-Art-Computer-Programming-Searching/dp/0201896850/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=597462f2262f3e6aab618b8f2e51dcad">The Art of Computer Programming: Vol. 3</a> by Donald E. Knuth</li><li><a href="http://www.amazon.com/Programming-Pearls-2nd-Edition-Bentley/dp/0201657880/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=cd778c0dd861e88f090b877ac06abae4">Programming Pearls</a> by Jon Bentley</li><li><a href="http://www.amazon.com/How-Prove-It-Structured-Approach/dp/0521675995/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=22353b916084ec5671524060c3af13b0">How to Prove it: A Structured Approach</a> by Daniel J. Velleman</li><li><a href="http://www.amazon.com/The-Annotated-Turing-Historic-Computability/dp/0470229055/ref=as_li_ss_tl?ie=UTF8&amp;dpID=51sx1xpVIOL&amp;dpSrc=sims&amp;preST=_AC_UL160_SR107%2C160_&amp;refRID=0H3V56NSRHJC0C36GQD0&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=d369bb156ec4cb9f9016d47cebc24aa3">The Annotated Turing: A Guided Tour Through Alan Turing’s Historic Paper on Computability and the Turing Machine</a> by Charles Petzold</li><li><a href="http://www.amazon.com/Introduction-Grap

Options

h-Theory-Dover-Mathematics/dp/0486678709/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=eejs-20&linkId=4753d57aa1d223d47ad4a5fd4c57b7d2">Introduction to Graph Theory</a> by Richard J. Trudeau</li><li><a href="http://www.amazon.com/Paradigms-Artificial-Intelligence-Programming-Studies/dp/1558601910/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=b2a79666d019866e9ce582fc1c514f55">Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp</a> by Peter Norvig</li><li><a href="http://www.amazon.com/Artificial-Intelligence-Humans-Volume-Learning/dp/1505714346/ref=as_li_ss_tl?ie=UTF8&amp;dpID=510-01XYSGL&amp;dpSrc=sims&amp;preST=_AC_UL160_SR130%2C160_&amp;refRID=08F96STZ9W4R1JA9VQSN&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=3a0563d372770cb5b09632c2b3c7e861">Artificial Intelligence for Humans: Deep Learning and Neural Networks</a> by Jeff Heaton</li><li><a href="http://www.amazon.com/G%C3%B6del-Escher-Bach-Eternal-Golden/dp/0465026567/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=93ed30e47f63b051e0d84071cec83fc1">Gödel, Escher, Bach: An Eternal Golden Braid</a> by Douglas R. Hofstadter</li></ul><h1 id="2d4e">Compilers</h1><figure id="8599"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*wbCDgF5oW733XoHYUe9kcw.jpeg"><figcaption></figcaption></figure><ul><li><a href="http://www.amazon.com/Compilers-Principles-Techniques-Tools-Edition/dp/0321486811/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=b05ead9350e6c40d2ad5de0220df93b3">Compilers: Principles, Techniques, and Tools</a> by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman</li><li><a href="http://www.amazon.com/Types-Programming-Languages-MIT-Press/dp/0262162091/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=514c9f15b923f67abcd594a67bf86a75">Types and Programming Languages</a> by Benjamin C. Pierce</li><li><a href="http://www.amazon.com/Advanced-Topics-Types-Programming-Languages/dp/0262162288/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=e4737e44aa17ef3dda7d62c983834cce">Advanced Topics in Types and Programming Languages</a> by Benjamin C. Pierce</li></ul><h1 id="b027">Productivity & Principles</h1><figure id="562f"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*wJ1DjPRODq8JyMk7mNIMLw.jpeg"><figcaption></figcaption></figure><ul><li><a href="http://www.amazon.com/Rework-Jason-Fried/dp/0307463745/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=fb07bffb3f26458d1b181fe6f26660be">Rework</a> by Jason Fried, David Heinemeier Hansson</li><li><a href="http://www.amazon.com/The-Mythical-Man-Month-Engineering-Anniversary/dp/0201835959/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=635704bb5438d46528e2fc45524cc835">The Mythical Man-Month: Essays on Software Engineering</a> by Frederick P. Brooks Jr.</li><li><a href="http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=c3a14417e3124e233330982128167324">Continuous Delivery</a> by Jez Humble & David Farley</li><li><a href="http://www.amazon.com/AntiPatterns-Refactoring-Software-Architectures-Projects/dp/0471197130/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=a16d2a25826f74deb9a4030f4f590904">AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis</a> by William J. Brown, Raphael C. Malveau, Hays W. “Skip” McCormick, Thomas J. Mowbray</li><li><a href="http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=503f5f6539e7c33836f1f848b424295f">Refactoring: Improving the Design of Existing Code</a> by Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts, Erich Gamma</li><li><a href="http://www.amazon.com/The-Clean-Coder-Professional-Programmers/dp/0137081073/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=677a2ee28efb51d1c3b8392a81efa5a1">The Clean Coder: A Code of Conduct for Professional Programmers</a> by Robert C. Martin</li><li><a href="http://www.amazon.com/The-Passionate-Programmer-Remarkable-Development/dp/1934356344/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=2d8a96b2cfd6021bcb12e268e0213937">The Passionate Programmer: Creating a Remarkable Career in Software Development</a> by Chad Fowler</li><li><a href="http://www.amazon.com/Test-Driven-Development-By-Example/dp/0321146530/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=4bdd44ebc587c423a1986285edd66e2c">Test Driven Development By Example</a> by Kent Beck</li><li><a href="http://www.amazon.com/Phoenix-Project-DevOps-Helping-Business/dp/0988262509/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=a0f02161c4cba3083fd25d7ecc27a1fd">The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win</a> by Gene Kim, Kevin Behr, George Spafford</li><li><a href="http://www.amazon.com/The-Cathedral-Bazaar-Accidental-Revolutionary/dp/0596001088/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=88c890d2ff7b15942a3021d65b4bce43">The Cathedral & the Bazaar by Eric S. Raymond (ESR) — Musings on Linux and Open Source by an Accidental Revolutionary, 2001</a></li><li><a href="http://www.amazon.com/Programming-Addison-Wesley-Professional-Computng-Series/dp/0131429019/ref=as_li_ss_tl?ie=UTF8&amp;linkCode=ll1&amp;tag=eejs-20&amp;linkId=fcf3e0f35322604c952cc860d09815c7">The Art of Unix Programming</a> by Eric S. Raymond</li></ul><h1 id="8af3">Learn JavaScript with Eric Elliott</h1><p id="8fb9"><b><i>Eric Elliott</i></b><i> is the author of <a href="http://pjabook.com">“Programming JavaScript Applications”</a> (O’Reilly), and <a href="https://leanpub.com/learn-javascript-react-nodejs-es6/">“Learn JavaScript Universal App Development with Node, ES6, & React”</a>. He has contributed to software experiences for <b>Adobe Systems</b>, <b>Zumba Fitness</b>, <b>The Wall Street Journal</b>, <b>ESPN</b>, <b>BBC</b>, and top recording artists including <b>Usher</b>, <b>Frank Ocean</b>, <b>Metallica</b>, and many more.</i></p><p id="61a2"><i>He spends most of his time in the San Francisco Bay Area with the most beautiful woman in the world.</i></p></article></body>

The Software Developer’s Library: A Treasure Trove of Books for People Who Love Code

The Strahov Library — James Whitesmith (CC BY-NC-ND 2.0)

A treasure trove of books for people who love code. Curated by Eric Elliott.

Arranged by topic, loosely in learning order.

A Note to Beginners

I learned to code around the same time I learned to read and write. I loved computer games and I wanted to learn how to make my own. I loved games and stories about magic, and computers seemed about as close to magic as you can get. In those days, many computers booted directly into a programming environment, and I took it for granted that if you wanted to create something on a computer, you had to learn to code. My best friend’s dad gave me a book designed to teach kids how to make computer games with code and I dove in head first.

Today, we create on computers all the time, and we take computers for granted, but if you’re the type of person who likes to take things apart to see how they work, the allure to look under the hood and discover how apps are made can be irresistible and endlessly entertaining.

I have now been chasing this passion for half a lifetime. What started with a love of computer games has become a rewarding career that has enabled me to travel around the world and discover the real magic we can make with software. Along the way, I have been inspired by a lot of other great books.

It is my hope that this collection of some of my favorite programming books will help you to discover and create some magic of your own.

~ Eric Elliott

P.S. Purchasing using the affiliate links on this page helps us continue to share educational resources with you.

For Beginners & Kids

Software Craftmanship

Functional Programming

Academic Topics

Compilers

Productivity & Principles

Learn JavaScript with Eric Elliott

Eric Elliott is the author of “Programming JavaScript Applications” (O’Reilly), and “Learn JavaScript Universal App Development with Node, ES6, & React”. He has contributed to software experiences for Adobe Systems, Zumba Fitness, The Wall Street Journal, ESPN, BBC, and top recording artists including Usher, Frank Ocean, Metallica, and many more.

He spends most of his time in the San Francisco Bay Area with the most beautiful woman in the world.

Programming
Coding
Books
Recommended from ReadMedium