• Skip to main content

Daniel Leskosky

Here to Learn

  • Blog
  • About
  • Contact

The Best Programming Books

posted on May 24, 2020

So much to read! So much to learn!

There are lots of programming books out there.  Find the ones that will help you achieve your goals.

When I first started teaching myself about programming concepts, I didn’t do too much reading.  I thought, that the best resources for learning about computers would be: on computers.

Don’t underestimate the power of reading.

Without a doubt, there are loads of excellent learning resources on the internet.  However, I have also found there are just as many great programming books out there.  If you truly want to streamline your learning progression, then utilize as many quality resources as you can.

That being said, I feel obligated to give you fair warning.  Books can be addictive.  I personally suffer the effects of book addiction.  Frequently, I find myself on Amazon, telling myself it will be the last one as I select the “Buy Now” button.  It is never the last one.

Never stop reading!

This is the way I see it: you can’t put a price on knowledge.  Read the books you buy.  Buy the books you will read.  That being said, I have not read all of the books in my library yet, BUT one day I will have read them all.  That is my goal. 

Let me share with you the books that are currently in my collection.  Keep in mind that programming is a vast and ever-changing subject, so there might be some books on this list that are not relevant to your goals.  On the flip-side, this list might be missing some of the books that might be better-suited for your needs.  

That’s ok.  My goal is to simply provide a list of the books with the hopes that you find at least a few that might be helpful for you.

I am not a big fan of ranked lists.  These books are going to be listed in alphabetical order.  Ready?  Ok let’s go!

1. Algorithms

Authors: Robert Sedgewick, Kevin Wayne

"Algorithms" book cover

See on Amazon

Let’s start the list off with a classic.  This book is used in universities throughout the world and is considered one of the best resources for algorithms and data structures.

2. An Introduction to Programming in Emacs Lisp

Author: Robert J. Chassell

"An Introduction to Programming in Emacs Lisp" book cover

See on Amazon

Emacs is a powerful text editor.  Lisp is the main scripting language for Emacs.  This book will give you a more thorough understanding of Emacs and allow you to use more of Emacs’ functionality.

3. Automate the Boring Stuff with Python

Author: Al Sweigart

"Automate the Boring Stuff" book cover

See on Amazon

This is a great book for someone with a beginner to intermediate skill level with Python.  It is packed full of exercises that allow you to create programs to automate some of the mundane activities that the you might do on a day-to-day basis.

4. Big Data: Using SMART Big Data, Analytics and Metrics To Make Better Decisions and Improve Performance

Author: Bernard Marr

"Big Data" book cover

See on Amazon

As data becomes more and more important in our society, it can be tough to separate the signal from the noise.  This book by Bernard Marr helps to clarify what is important in our data-driven world and illustrates exactly how data influences business. 

5. Blockchain Bubble or Revolution: The Present and Future of Blockchain and Cryptocurrencies

Authors: Aditya Agashe, Neel Mehta, Parth Detroja

"Blockchain" book cover

See on Amazon

Blockchain and Cryptocurrency technologies are gaining more and more traction throughout the world.  Some say it is a scam.  Others say it is the future.  Use this book to help you separate the fact from fiction.

6. C Programming: A Modern Approach

Author: K. N. King

"C Programming" book cover

See on Amazon

If you want to learn C, then this is the book for you.  The author presents the material in such a way that allows intuitive learning.  The exercises are engaging and the progression of material has a natural flow.

7. Clean Code: A Handbook of Agile Software Craftsmanship

Author: Robert C. Martin

"Clean Code" book cover

See on Amazon

In the world of programming, every programmer should strive to keep their code clean.  Poorly written code is tough to read by other programmers and can cost valuable time for them to try to make sense of it.  Time lost is money lost, so strive to keep your code clean. 

8. Code: The Hidden Language of Computer Hardware and Software

Author: Charles Petzold

"Code" book cover

See on Amazon

This book explores the origins of the computing world as we know it!  Only by understanding the past, can we truly understand the present.  Get a better idea of what technology is relevant today and what will be relevant in the future.

9. Cracking the Coding Interview

Author: Gayle Laakmann

"Cracking the Coding Interview" book cover

See on Amazon

Interviews for programming interviews are known to be tough.  If you know Java, use this book to prepare for algorithm and data structure questions and ace your next tech interview!

10. Design Patterns: Elements of Reusable Object-Oriented Software

Authors: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

"Design Patterns" book cover

See on Amazon

This book receives criticism as being bit of a dry read.  I am going to have to agree.  However, there is just so much information packed in this book that I just had to include it.  It is considered a classic too, so it definitely belongs on every programmers shelf.

11. Designing Data-Intensive Applications

Author: Martin Kleppmann

"Designing Data-Intensive Applications" book cover

See on Amazon

“Yea, but does it scale?”  If you have ever heard someone utter this phrase and you are wondering what they are talking about, then give this book a shot.  It is a wonderful tool to learn more about distributed systems and scalability.

12. Django for Beginners

Author: William S. Vincent

"Django for Beginners" book cover

See on Amazon

A great book to start learning about Django!  Gives you the exact instructions needed to create your first Django projects.  Allows you to get a good feel for Django before you go off to create your own projects.

13. Django for APIs

Author: William S. Vincent

"Django for APIs" book cover

See on Amazon

The next book in the series by William S. Vincent.  By the end of this book, you will have three Django back-ends created.

14. Django for Professionals

Author: William S. Vincent

"Django for Professionals" book cover

See on Amazon

The third book in the series by William S. Vincent.  This book is truly an excellent resource.  It provides a thorough overview of all of the components that are required for a production-ready website.  Great way to get acquainted with industry standard.

15. Don’t Make Me Think, Revisited: A Common Sense Approach to Web Usability

Author: Steve Krug

"Don't Make Me Think" book cover

See on Amazon

When creating a website, you need to always keep the user in mind.  A visitor to your site should never ever be confused when navigating through your site.  Use this book to make your website a truly user-friendly experience.

16. Effective Java

Author: Joshua Bloch

"Effective Java" book cover

See on Amazon

An excellent Java resource.  It truly does a terrific job at explaining some difficult concepts.  Perfect for an intermediate student of Java.

17. Elements of Programming Interviews in Python

Authors: Adnan Aziz, Tsung-Hsien Lee, Amit Prakash 

"Elements of Programming Interviews in Python" book cover

See on Amazon

Interviews for programming interviews are known to be tough.  If you know Python, use this book to prepare for algorithm and data structure questions and ace your next tech interview!

18. Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux

Author: Derek Molloy

"Exploring Raspberry Pi" book cover

See on Amazon

The Raspberry Pi is a great way to learn more about the Linux operating system and the Internet of Things.  This book has plenty of fun things that you can do with your Raspberry Pi.

19. Fluent Python

Author: Luciano Ramalho

"Fluent Python" book cover

See on Amazon

A book for the more intermediate student of Python.  Take your Python skills to the next level with this excellent book from Luciano Ramalho.

20. Forge Your Future with Open Source

Author: VM (Vicky) Brasseur

"Forge Your Future with Open Source" book cover

See on Amazon

Every programmer should give back to the open source community.  This book will explain why it is important to contribute to open source and will also show you how.

21. Grokking Algorithms: An illustrated guide for programmers and other curious people

Author: Aditya Y. Bhargava

"Grokking Algorithms" book cover

See on Amazon

Probably the most painless way to learn algorithms.  Lots of cartoons.  Lots of fun.  A great introduction into algorithms.

22. High Performance Spark

Author: Holden Karau, Rachel Warren

"High Performance Spark" book cover

See on Amazon

In the world of data, Apache Spark is kind of a big deal.  Learn how to use Spark and become a data-mining pro.

23. Hooked: How to Build Habit-Forming Products

Author: Nir Eyal

"Hooked" book cover

See on Amazon

If you are the owner of a website, then your goal should be to have your visitors coming back, again and again.  Read this book by Nir Eyal to establish a recurring user base.

24. How to Transform Your Ideas into Software Products: A step-by-step guide for validating your ideas and bringing them to life!

Author: Poornima Vijayashanker

"Transform Your Ideas" book cover

See on Amazon

Have an idea that you would like to see transformed into a software product?  Oh, you do?! Then get this book.  It will definitely help you out with a few things.

25. HTML and CSS: Design and Build Websites

Author: Jon Duckett

"HTML & CSS" book cover

See on Amazon

This book is a visual masterpiece.  I still remember the first time I opened it. I was truly impressed with its colorful and playful design.  Aesthetics aside, this book is jam-packed with the essentials for HTML & CSS.

26. Introduction to Programming in Java: An Interdisciplinary Approach

Authors: Robert Sedgewick, Kevin Wayne

"Introduction to Programming in Java" book cover

See on Amazon

Want to start learning how to program in Java?  If you do, then this is a pretty decent book to get started with.

27. Java Precisely

Author: Peter Sestoft

"Java Precisely" book cover

See on Amazon

Here is another great Java book.  It is geared more towards the intermediate Java student.

28. Kubernetes in Action

Author: Marko Luksa

"Kubernetes in Action" book cover

See on Amazon

So what is Kubernetes?  If you really want to know, then get this book!  It is loaded with tons of detail to make sure that you get well-acquainted with Kubernetes.

29. Learning from Data

Authors: Yaser S. Abu-Mostafa, Malik Magdon-Ismail, Hsuan-Tien Lin

"Learning from Data" book cover

See on Amazon

Machine Learning is becoming increasingly prevalent in today’s data world.  This book does a great job at sticking to what is truly important when it comes to Machine Learning.

30. Learning PHP, MySQL & JavaScript: With jQuery, CSS & HTML5

Author: Robin Nixon

"Learning PHP, MySQL & JavaScript

See on Amazon

If you are trying to build a responsive website, then this might just be the book that you are looking for.  It has a nice cover too.

31. Learning Spark

Authors: Holden Karau, Andy Konwinski, Patrick Wendell & Matei Zaharia 

"Learning Spark" book cover

See on Amazon

Here is another good book for Spark.  If data analytics is your thing, then the more that you know about Spark, the better.

32. Mastering Bitcoin

Author: Andreas M. Antonopoulos

"Mastering Bitcoin" book cover

See on Amazon

Bitcoin is a bit of a buzzy word these days.  Learn about the truly important stuff when it comes to Bitcoin.

33. Mastering Emacs

Author: Mickey Petersen

"Mastering Emacs" book cover

See Book

Becoming proficient with Emacs can definitely be a bit tricky.  This book makes things a whole lot easier.  Trust me.

34. Practical Vim

Author: Drew Neil

"Practical Vim" book cover

See on Amazon

If you want to be as fast as possible when hacking away at your code, then Vim just might be the text editor that you are looking for.  If you want to learn Vim, then this just might be the book that you are looking for.

35. Practices of the Python Pro

Author: Dane Hillard

"Practices of the Python Pro" book cover

See on Amazon

Dane Hillard takes a unique approach and explores what practices a successful Python developer should employ.  A good book if you like Python and aspire to become a developer.

36. Pro Git

Author: Scott Chacon

"Pro Git" book cover

See on Amazon

A great introductory book to learn all about Git and see how it is used in the programming world.

37. Python Crash Course

Author: Eric Matthes

"Python Crash Course" book cover

See on Amazon

This is the book that started it all for me.  This is my very first programming book!  It does an exceptional job at being both understandable and enjoyable.  Highly recommend!

38. Python Data Science Handbook

Author: Jake VanderPlas

"Python Data Science Handbook" book cover

See on Amazon

Out of all of the programming languages, Python might be the most well-suited for data mining.  This book is a great resource if you are using Python for data analytics.

39. Python for Data Analysis

Author: Wes McKinney

"Python for Data Analysis" book cover

See on Amazon

Another book for data analysis with Python.  This book focuses on the Python libraries that make Python such an ideal choice for data analytics.

40. R for Data Science

Authors: Hadley Wickham, Garret Grolemund 

"R for Data Science" book cover

See on Amazon

In addition to Python, R is also a powerful tool when it comes to data mining.  Get this book to learn more about R.

41. Raspberry Pi User Guide

Authors: Eben Upton, Gareth Halfcree 

"Raspberry Pi User Guide" book cover

See on Amazon

If you get a new Raspberry Pi, it can be kind of tricky to figure out what you need to do to get it up and running.  This book is a great way to become acquainted with the Raspberry Pi and get a solid understanding of what it is meant to be used for.

42. Refactoring: Improving the Design of Existing Code

Author: Martin Fowler

"Refactoring" book cover

See on Amazon

When some code is written for the first time, it may be functional, but it might not necessarily be written the best way.  Refactor code to make it as readable and efficient as possible.  This book does an excellent job of describing the why, when, and how of refactoring.

43. Serious Python

Author: Julien Danjou

"Serious Python" book cover

See on Amazon

This is a great book if you want to learn how to build a web application using Python.  It covers a range of topics including frameworks, databases, and scalability.

44. Structure and Interpretation of Computer Programs

Authors: Harold Abelson, Gerald Jay Sussman, Julie Sussman

"Structure and Interpretation of Computer Programs" book cover

See on Amazon

This book is supposed to be a real game-changer.  If you want to level up your code-level to wizard status then this is definitely the book for you.  You should be warned: it is definitely for the advanced programmer. 

45. Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design

Authors: Edward Yourdon, Larry L. Constantine

"Structured Design" book cover

See on Amazon

Want to mix things up a bit and learn about something besides object-oriented or functional design?  Then give this book a shot and learn a bit about structured design.

46. Technical Blogging: Amplify Your Influence

Author: Antonio Cangiano

"Technical Blogging" book cover

See on Amazon

If you want to start a blog, but are not sure where to start then this is the book for you.  It does a great job of describing all of the critical features that should be present in order for a blog to be successful.  You can use this tutorial too if you are interested in creating a blog.

47. The Algorithm Design Manual

Author: Steven S. Skiena

"Algorithm Design Manual" book cover

See on Amazon

A great book for Algorithms!  The exercises are engaging and the descriptions are thorough.

48. The Complete Software Developer’s Career Guide

Author: John Sonmez

"Software Developer's Career Guide" book cover

See on Amazon

If your goal is to get a job as a software developer then you need this book!  There is so much terrific advice in this book.  John Sonmez truly covers all aspects of career development for an aspiring developer. 

49. The Linux Command Line

Author: William Shotts

"Linux Command Line" book cover

See on Amazon

This book is great!  Using the Linux command line for the first time can be tough.  With lots of detailed explanations and engaging exercises, this book will make you a command line pro in no time!

50. The Mythical Man-Month: Essays on Software Engineering

Author: Frederick P. Brooks, Jr.

"Mythical Man-Month" book cover

See on Amazon

Having more software developers assigned to a project does not necessarily mean that the project will get done sooner.  In this book, Brooks shows how to find the optimal number of developers that should be assigned to a project.  

51. The New Hacker’s Dictionary

Author: Eric S. Raymond

"The New Hacker's Dictionary" book cover

See on Amazon

There are certainly lots of programming words to keep track of.  Get this book and use it as a handy humorous reference.

52. The Pragmatic Programmer: From Journeyman to Master

Authors: David Thomas, Andrew Hunt 

"Pragmatic Programmer" book cover

See on Amazon

Use this book to learn what it means to be a modern-day programmer.  Once you have a job as a software developer, this book will allow you to be the best developer that you can be. 

53. The Singularity Is Near: When Humans Transcend Biology

Author: Ray Kurzweil

"The Singularity Is Near" book cover

See on Amazon

Why need a brain when you could have a computer instead?  Maybe your brain is already a computer?  Maybe nothing is real? I don’t have the answers to these questions.  I am just a guy with a blog.  Ray Kurzweil has the answers, though.  Read his book and find out more.

54. Two Scoops of Django: Best Practices for Django 1.8

Authors: Daniel Roy Greenfield, Audrey Roy Greenfield 

"Two Scoops of Django" book cover

See on Amazon

This book contains all of the best practices that you should employ if you are using the Django framework to create a web application.  Definitely not a tutorial, but a great resource for guidelines that will make your application great.

55. Web Scalability for Startup Engineers

Author: Artur Ejsmont

"Web Scalability for Startup Engineers" book cover

See on Amazon

A great beginner’s book for system design and scalability.  Learn about the infrastructure that the world’s most popular web applications are built upon.

56. Web Scraping with Python

Author: Ryan Mitchell

"Web Scraping with Python" book cover

See on Amazon

There is lots of data on the internet, just waiting to be scraped.  Use Python to develop some crawlers to do it.

57. Working Effectively with Legacy Code

Author: Michael C. Feathers

"Working Effectively with Legacy Code" book cover

See on Amazon

Working with old code in old systems can certainly be a challenge.  Use this book, so that working with legacy code is a bit easier and less stressful for you.


Well, what do you think?!

I hope that you were able to find a book here that will bring you one step closer to your goals.

If there is a book that is not on this list, but you think that it should be, then please by all means include it in the comment section below.

Well, I sure do hope that this was helpful for you.

Happy Reading!

Filed Under: Books Tagged With: Java, Python

About Daniel Leskosky

Daniel Leskosky is a guy who likes to learn. He recently discovered the world of programming and now he is hooked! Why did no one tell him that there was such a vast wealth of readily accessible educational resources all across the internet, just waiting to be learned?! He writes about web development, system design, algorithms, and data structures.

Recent Posts

  • Industrial Engineer to Software Engineer
  • The k-th Lexicographical String of All Happy Strings of Length n
  • Path in ZigZag Labelled Binary Tree
  • Largest Rectangle in Histogram
  • Dutch National Flag Problem
Subscribe
Notify of
guest
This site is protected by reCAPTCHA. Google Privacy Policy and Terms of Service apply.
guest
This site is protected by reCAPTCHA. Google Privacy Policy and Terms of Service apply.
4 Comments
Inline Feedbacks
View all comments
Antonio Cangiano
Antonio Cangiano
4 years ago

This is a very impressive list, Daniel. I read many of these and wholeheartedly agree with your assessment and choice of including them. Also, thank you for including my blogging book. 🙂

Reply
Daniel Leskosky
Author
Daniel Leskosky
4 years ago
Reply to  Antonio Cangiano

Thank you for the kind words, Antonio! It is good to know that someone out there likes the same books that I do! Also, it was a no-brainer to include your book. I wouldn’t have been able to create this blog without it!

Reply
Ken Youens-Clark
Ken Youens-Clark
4 years ago

I’d love to see Tiny Python Projects (http://tinypythonprojects.com/) make it on to that list someday!

Reply
Daniel Leskosky
Author
Daniel Leskosky
4 years ago
Reply to  Ken Youens-Clark

I was just looking at Tiny Python Projects for a bit and I think that it might find its way on the list someday! : )

Reply

© 2025 Daniel Leskosky