A Brief Introduction
I always enjoy perusing the various reports, analyses, and so on produced by the development community. For example:
I’ve decided to offer up a much more limited but (I think) unique analysis based on Safari Books Online, probably the most popular technical books susbcription service in existence.
O’Reilly’s Safari Books Online (I’ll call it SBO in this post) currently has 40,006 books available to subscribers. I looked at the 100 most popular books in some detail and then browsed through the next 100. Towards the end of this post you’ll find a fairly exhaustive list of the first 100 as well as some notables from 101-200.
At the very end of the post I’ve included a few observations from some early data I gathered while still working out my methodology – this pulls from the top 500 most popular books on SBO and the top 700 most recently published.
I love Safari Books Online but I’m disappointed that you don’t have a publicly available API. Would you please, please make one available
Take a look at my thoughts and the data I’ve included, then let me know where I’m wrong, right, and where I’ve missed something entirely. I’d love to hear different takes on this data!
Python Rules the World
- There is only 1 title each in the top 100 for Flask and Django – and Flask appears significantly higher than Django. (Hypothesis: The emphasis on data analysis/machine learning/etc. means developers are spending less time on the front-end, thus opting for Flask to get dashboards, reports, etc. up and out the door).
- I’m surprised by the number of Python books in the top 100 list that are two or more years old – the top ranking book is Mark Lutz’s Learning Python from 2013.
Java and Spring
Java, especially Java with Spring, holds its own appearing in 9 out of the top 100. Joshua Bloch’s aged (but updated) Effective Java (2017) leads the pack.
There was a day when Apache was on everyone’s lips. It was the de facto web server, that day seems to be waning a bit as nginx and other competitors shine BUT the Apache organization as a whole is still behind a tremendous number of powerful projects (6 out of top 100 titles) including:
Big Data and Machine Learning Dominate
Scikit-Learn, Keras, TensorFlow – 7 of the top 100 explicitly relate to Big Data or Machine Learning…and don’t forget that most of the titles under Apache also relate to this topic as well.
The Cloud: AWS, Azure, and Google Who?
AWS dominates in the cloud arena with 3 titles to Azure’s 1 title. Google’s cloud, however, isn’t even on the scoreboard.
Kubernetes with a Dash of Docker
Kubernetes appears 3 times and Docker appears once. Noticeably absent is any mention of Virtual Machines generally or of Vagrant, a recent darling.
The Fundamentals Are Still Important
9 titles are focused on fundamental principles of software development and these titles tend to be much older than the titles find in other domains. They include:
- Bob Martin’s Clean Code (2008) and Clean Architecture (2017).
- Martin Fowler’s Refactoring (2018)
- Kathy Sierra, Bert bates, Elisabeth Robson, and Eric Freeman’s Head First Design Patterns (2004).
- Eric Evans’ Domain-Driven Design (2003).
- Dave Thomas and Andrew Hunt’s The Pragmatic Programmer (1999).
- Vaughn Vernon’s Implementing Domain-Driven Design (2013).
- Michael T. Nygard’s Release It! (2018).
- The Gang of Four’s Design Patterns (1994).
- Steve McConnell’s Code Complete (2004).
Note that two of these titles address DDD and two address design patterns particularly.
Why Is Scala on These Scales?
I was surprised to see Scala appear above a number of other languages in the top 100 – 3 times! I’m guessing this may indicate that folks are using Scala as an entry point for functional programming?
Security is in Vogue (But Not Enough)
How do we even begin to get organizations to consider security seriously enough? Individuals? It is a herculean undertaking. The emphasis on security is clear with 3 of the top 100 focusing specifically on security…but IT knowledge doesn’t (necessarily) translate into organizational (or governmental) action.
The Surprising Languages That Do and Don’t Make the List
Some of the languages that show up in the top rankings from various other analyses are nowhere to be found in the top 100 including VB.NET, R, PHP, Objective-C, Assembly, Perl, or Ruby.
This isn’t a huge surprise for VB.NET, Perl, Assembly, or Objective-C but somewhat surprising for PHP, R, and Ruby!
Low-level programming languages make a solid appearance: C (1x), C++ (2x), Go (1x), Rust (2x).
As do the latest mobile development technologies: Swift and Kotlin both appear 1x.
C# makes an appearance 1x, which I hope personally is a sign of a revival of .NET in general
DevOps Lives On
Perhaps this should be obvious from the number of Kubernetes titles in the top 100, but DevOps lives on in its own stead through:
- George Spafford, Kevin Behr, and Gene Kim’s The Phoenix Project (2013).
- John Willis, Patrick Debois, Jez Humble, and Gene Kim’s The DevOps Handbook (2016).
- Nicole Forsgren, Gene Kim, and Jez Humble’s Accelerate (2018).
Note that the common thread between these three books is author Gene Kim.
Project Management Is Needed
Not too surprisingly, Project Management appears several times on the top 100 (2x).
Some Other Things…
- Cisco certifications are still hot and networks still need managing.
- Microservices continue to be a trending topic.
- Site Reliability Engineering (SRE) makes an appearance.
- HashiCorp doesn’t land Vagrant on the top 100 but does appear for Terraform.
- No Windows system administration books make it onto the top 100 but several Linux titles do, not all that surprising, imho.
- Agile and Scrum are still with us.
Most Popular (Top 100)
- Martin Kleppmann. Designing Data-Intensive Applications. 3/2017.
- This book looks like a must-read. It has 5 stars from 100 reviews and was only published a year ago, that is quite impressive for a book on SBO.
- Joshua Bloch. Effective Java, 3rd Edition. 12/2017.
- Has 5 stars from 36 reviews – but this is somewhat misleading, since these reviews cover only the latest edition – earlier editions have been quite popular as well.
- Matei Zaharia, Bill Chambers. Spark: The Definitive Guide. 2/2018.
- 4.3 stars from 22 reviews.
- Aurelien Geron. Hands-On Machine Learning with Scikit-Learn and TensorFlow. 3/2017.
- 5 stars from 56 reviews.
- Note that this book has a newer edition which is also quite popular: Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition. 6/2019. 5 stars from 1 review.
- Mark Lutz. Learning Python, 5th Edition. 6/2013.
- Robert C. “Uncle Bob” Martin. Clean Code. 7/2008.
- 4.8 stars from 162 reviews. Considered one of the classic (but still relevant) books on coding.
- John Stamper, Sean Senior, Kevin E. Kelly, Biff Gaut, Tim Bixler, Hisam Baz, Joe Baron. AWS Certified Solutions Architect Official Study Guide. 10/2016.
- Marko Luksa. Kubernetes in Action. 12/2017.
- Note that Kubernetes is appearing higher in the ranking than Docker. 5 stars from 37 reviews.
- Robert C. “Uncle Bob” Martin. Clean Architecture: A Craftsman’s Guide to Software Structure and Design, 1st Edition. 9/2017.
- (ISC)2 CISSP Certified Information Systems Security Professional Official Study Guide, 8th Edition. 5/2018.
- 4 stars from 2 reviews. Reflects the current focus on security within the IT industry.
- See also David Seidl and Mike Chapple’s CISSP Official (ISC)2 Practice Tests, 2nd Edition (6/2018, 5 stars/2 reviews).
- Joyjeet Banerjee. AWS Certified Solutions Architect Associate All-in-One Exam Guide (Exam SAA-C01). 9/2018.
- 4.5 stars from 6 reviews.
- George Spafford, Kevin Behr, Gene Kim. The Phoenix Project. 1/2013.
- 4.8 stars from 119 reviews. This is a good book about IT management / DevOps and coordinating with other departments / the executive branch. Well worth reading.
- Martin Fowler. Refactoring: Improving the Design of Existing Code. 11/2018.
- 5 stars from 8 reviews. A new edition of Fowler’s class Refactoring book.
- Gabriel N. Schenker. Learning Docker – Fundamentals of Docker 18.x. 4/2018.
- 4.5 stars from 14 reviews.
- Wes McKinney. Python for Data Analysis. 10/2017.
- 4.9 stars from 14 reviews.
- Gwen Shapira, Neha Narkhede, Todd Palino. Kafka: The Definitive Guide.
- Brian W. Kernighan, Alan A. A. Donovan. The Go Programming Language. 10/2015.
- Luciano Ramalho. Fluent Python. 8/2015.
- Francois Chollet. Deep Learning with Python. 12/2017.
- Kathy Sierra, Bert Bates, Elisabeth Robson, Eric Freeman. Head First Design Patterns. 10/2004.
- 4.5 stars from 241 reviews.
- Sam Newman. Building Microservices. 2/2015.
- 4.2 stars from 77 reviews.
- Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft. Java 8 in Action: Lambdas, Streams, and Functional-Style Programming. 8/2014.
- Joe Beda, Brendan Burns, Kelsey Hightower. Kubernetes: Up and Running. 9/2017.
- 4.5 stars from 30 reviews.
- Zed. A Shaw. Learn Python the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code, 1st Edition. 8/2017.
- 4.5 stars from 14 reviews.
- Paul Barry. Head First Python, 2nd Edition. 11/2016.
- John Willis, Patrick Debois, Jez Humble, Gene Kim. The DevOps Handbook. 10/2016.
- 4.9 stars from 18 reviews.
- Bill Venners, Lex Spoon, Martin Odersky. Programming in Scala, 3rd Edition. 4/2016.
- Wendell Odom. CCENT/CCNA ICND1 100-105 Official Certification Guide, 1st Edition. 9/2016.
- Bert Bates, Kathy Sierra. Head First Java, 2nd Edition. 2/2005.
- 4.3 stars from 115 reviews.
- Al Sweigart. Automate the Boring Stuff with Python. 4/2015.
- 4.5 stars from 20 reviews. Sweigart also runs a course of the same name on Udemy.
- Jennifer Petoff, Niall Richard Murphy, Chris Jones, Betsy Beyer. Site Reliability Engineering. 4/2016.
- 4.8 stars from 22 reviews.
- Fernando Maymi, Shon Harris. CISSP All-in-One Exam Guide, 8th Edition. 10/2018.
- Bjarne Stroustrup. A Tour of C++, 2nd Edition. 6/2018.
- Yevgeniy Brikman. Terraform: Up and Running. 3/2017.
- 4.9 stars from 26 reviews.
- Eric Matthes. Python Crash Course. 11/2015.
- 4.3 stars from 19 reviews.
- Vahid Mirjalili, Sebastian Raschka. Python Machine Learning: Perform Python Machine Learning and Deep Learning with Python, scikit-learn, and TensorFlow. 9/2017.
- 4.9 stars from 7 reviews.
- Bert Bates, Kathy Sierra. OCA Java SE 8 Programmer I Exam Guide (Exams 1Z0-808). 5/2017.
- 5 stars from 7 reviews.
- See also Scott Selikoff and Jeanne Boyarsky’s similarly titled from from 12/2014 (5 stars, 26 reviews) and 12/2015 (4.9 stars, 13 reviews).
- Sarah Guido. Andreas C. Muller. Introduction to Machine Learning with Python. 10/2016.
- John Carnell. Spring Microservices in Action. 6/2017.
- Miguel Grinberg. Flask Web Development, 2nd Edition. 3/2018.
- 4.7 stars from 13 reviews. Interesting to note that Flask occurs before Django.
- Justin Domingus, John Arundel. Cloud Native DevOps with Kubernetes. 1/2019.
- Doug Lea, David Holmes, Joseph Bowbeer, Joshua Bloch, Tim Peierls, Brian Goetz. Java Concurrency in Practice. 5/2006.
- 4.9 stars from 59 reviews.
- Eric Evans. Domain-Driven Design: Tackling Complexity in the Heart of Software. 8/2003.
- Considered one of the core classics on coding. 4.9 stars from 37 reviews.
- Craig Walls. Spring in Action, 4th Edition. 10/2014.
- 4.4 stars from 30 reviews.
- Karl Matthias, Sean P. Kane. Docker: Up & Running, 2nd Edition. 9/2018.
- 3.9 stars from 4 reviews.
- Adam Freeman. Pro Angular 6. 10/2018.
- Dan Mackin, Ben Whaley, Trent R. Hein, Garth Snyder, Evi Nemeth. UNIX and Linux System Administration Handbook, 5th Edition. 9/2017.
- Jason Edelman, Matt Oswalt, Scott S. Lowe. Network Programmability and Automation. 2/2018.
- Aimed at Sys Admins, Network Engineers. 4.9 stars from 16 reviews.
- Kirupa Chinnathambi. Learning React: A Hands-On Guide to Building Web Applications Using React and Redux, 2nd Edition. 5/2018.
- 4.9 stars from 35 reviews.
- Tom White. Hadoop: The Definitive Guide, 4th Edition. 3/2015.
- 4.9 stars from 23 reviews.
- 4.7 stars from 18 reviews.
- David Beazley, Brian K. Jones. Python Cookbook, 3rd Edition. 5/2013.
- 4.9 stars from 42 reviews.
- Scott Meyers. Effective Modern C++. 11/2014.
- 4.9 stars from 35 reviews.
- Nicole Forsgren, Gene Kim, Jez Humble. Accelerate. 3/2018.
- Project Management Institute. A Guide to the Project Management Body of Knowledge (PMBOK Guide), 6th Edition. 9/2017.
- David Thomas, Andrew Hunt. The Pragmatic Programmer: From Journeyman to Master. 10/1999.
- 4.9 stars from 66 reviews. Another of the core classic coding books.
- Brian Brazil. Prometheus: Up & Running. 7/2018.
- 4.9 stars from 10 reviews.
- Ben Albahari, Joseph Albahari. C# 7.0 in a Nutshell. 10/2017.
- Craig Tracey, Brenda Burns. Managing Kubernetes. 11/2018.
- 4.9 stars from 5 reviews.
- Jason Orendorff, Jim Blandy. Programming Rust. 12/2017.
- Brett Slatkin. Effective Python: 59 Specific Ways to Write Better Python. 3/2015.
- 4.9 stars from 8 reviews.
- Cay S. Horstmann. Core Java Volume I–Fundamentals, 11th Edition. 8/2018.
- Sam R. Alapati. Modern Linux Administration. 3/2018.
- Vaughn Vernon. Implementing Domain-Driven Design. 2/2013.
- 4.9 stars from 25 reviews.
- Brendan Burns. Designing Distributed Systems. 2/2018.
- 4.4 stars from 10 reviews.
- Frank J. Ohlhorst. Big Data Analytics: Turning Big Data into Big Money. 11/2012.
- 3.3 stars from 5 reviews.
- Vasiliki Kalavari, Fabian Hueske. Stream Processing with Apache Flink. 3/2019.
- 4.9 stars from 14 reviews.
- Jake VanderPlas. Python Data Science Handbook. 11/2016.
- 4.9 stars from 21 reviews.
- Rene Moser, Lorin Hochstein. Ansible: Up and Running, 2nd Edition. 8/2017.
- 4.2 stars from 5 reviews.
- Paul Chiusano, Runar Bjarnason. Functional Programming in Scala. 9/2014.
- Michael T. Nygard. Release It!, 2nd Edition. 1/2018.
- 4.8 stars from 10 reviews.
- Steve O’Hearn. OCA Oracle Database SQL Exam Guide (Exam 1Z0-071). 8/2017.
- Eve Porcello, Alex Banks. Learning React. 5/2017.
- 4.9 stars from 19 reviews.
- Carol Nichols, Steve Klabnik. The Rust Programming Language. 7/2018.
- Elisabeth Robson, Bert Bates, Kathy Sierra. OCP Java SE 8 Programmer II Exam Guide (Exam 1Zo-809), 7th Edition. 5/2018.
- Santiago Fernandez Munoz, Dan Stolts, Haishi Bai. Exam Ref 70-535 Architecting Microsft Azure Solutions, 1st Edition. 5/2018.
- Kenneth S. Rubin. Essential Scrum: A Practical Guide to the Most Popular Agile Process. 7/2012.
- Andrew Bruce, Peter Bruce. Practical Statistics for Data Scientists. 5/2017.
- 4.1 stars from 11 reviews.
- Anthony Sequeira. AWS Certified Solutions Architect – Associate (SAA-CO1) Cert Guide. 12/2018.
- Allan Johnson. 31 Days Before Your CCNA Routing & Switching Exam: A Day-By-Day Review Guide for the ICND1/CCENT (100-105), ICND2 (200-105), and CCNA (200-125) Certification Exams. 3/2017.
- 4.9 stars from 6 reviews.
- Svetlana Isakova, Dmitry Jemerov. Kotlin in Action. 2/2017.
- 4.6 stars from 8 reviews.
- DAMA International. DAMA-DMBOK: Data Management Body of Knowledge, 2nd edition. 7/2017.
- 4.9 stars from 6 reviews.
- Antonio Mele. Django 2 by Example. 5/2018.
- 4.1 stars from 8 reviews.
- Andrew Stellman, Jennifer Greene. Head First PMP, 4th Edition. 9/2018.
- Matei Zaharia, Patrick Wndell, Andy Konwinski, Holden Karau. Learning Spark. 2/2015.
- Sander van Vugt. Red Hat RHCSA/RHCE 7 Cert Guide: Red Hat Enterprise Linux 7 (EX200 and EX300). 9/2015.
- 4.4 stars from 8 reviews.
- Cay S. Horstmann. Scala for the Impatient, 2nd Edition. 12/2016.
- John Vlissides, Ralph Johnson, Richard Helm, Erich Gamma. Design Patterns: Elements of Reusable Object-Oriented Software. 10/1994.
- The oldest book on the list, this volume is the original book on design patterns. 4.6 stars from 42 reviews.
- Brent Laster. Jenkins 2: Up and Running. 5/2018.
- 3.5 stars from 2 reviews.
- Chris Richardson. Microservices Patterns. 11/2018.
- 4.9 stars from 2 reviews.
- William P. Bejeck Jr. Kafka Streams in Action: Real-time Apps and Microservices with the Kafka Streams API. 8/2018.
- Gavin Wood, Andreas M. Antonopoulos. Mastering Ethereum. 11/2018.
- 4.6 stars from 14 reviews.
- Roger L. Davis, Chuck Cothren, Dwayne Williams, Greg White, William Arthur Conklin. CompTIA Security+ All-in-One Exam Guide (Exam SY0-501), 5th Edition. 1/2018.
- Steve McConnell. Code Complete, 2nd Edition. 6/2004.
- Another core coding book. 4.9 from 40 reviews.
- Herbert Schildt. Java: The Complete Reference, 10th Edition. 10/2017.
Didn’t Quite Make It (101-200)
- Alex Banks, Eve Porcello. Learning GraphQL. 8/2018.
- 4.5 stars from 3 reviews.
- Kristin Marsicano, Chris Stewart, Bill Phillips. Android Programming: The Big Nerd Ranch Guide, 3rd edition. 1/2017.
- Kevin Wayne, Robert Sedgewick. Algorithms, 4th Edition. 3/2011.
- 4.9 stars from 5 reviews.
- Jez Humble, David Farley. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, Video Enhanced Edition. 7/2010.
- 4.9 stars from 34 reviews.
- Andrew Lock. ASP.NET Core in Action. 8/2018.
- Matt Neuberg. iOS 12 Programming Fundamentals with Swift. 10/2018.
- Justin Richer Antonio Sanso. OAuth 2 in Action. 3/2017.
- 4.2 stars from 10 reviews.
- Dennis M. Ritchie, Brian W. Kernighan. The C Programming Language, 2nd Edition. 3/1988.
- Michael Feathers. Working Effectively with Legacy Code, 1st Edition. 9/2004.
- 4.8 stars from 34 reviews.
- Don Jones, Jeffrey Hicks. Learning Windows PowerShell in a Month of Lunches, 3rd Edition. 12/2016.
- 4.7 stars from 5 reviews.
- Kristina Chodorow, Shannon Bradshaw. MongoDB: The Definitive Guide, 3rd Edition. 6/2019.
- Will Kurt. Get Programming with Haskell. 3/2018.
- Maxim Lapan. Deep Reinforcement Learning Hands-On. 6/2018.
- Margy Ross, Ralph Kimball. The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling, 3rd Edition. 6/2013.
- 4.1 stars from 14 reviews.
- Bobby Woolf, Gregor Hohpe. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. 10/2003.
- Jim Wilson. Node.js 8 the Right Way. 1/2018.
- 4.7 stars from 5 reviews.
- Peter Economy, Jeff Patton. User Story Mapping. 9/2014.
- 4.9 stars from 24 reviews.
- Eben Hewitt, Jeff Carpenter. Cassandra: The Definitive Guide, 2nd Edition. 7/2016.
- 4.7 stars from 10 reviews.
- Martin Fowler. Patterns of Enterprise Application Architecture. 11/2002.
- 4.8 stars from 22 reviews.
- SAS Institute. SAS Certification Prep Guide, 5th Edition. 9/2018.
- Dave Thomas. Programming Elixir 1.6. 5/2018.
- David A. Solomon, Mark E. Russinovich, Alex Ionescu, Pavel Yosifovich. Windows Internals Part 1: System Architecture, Processes, Threads, Memory Management, and More, 7th Edition. 5/2017.
- Drew Neil. Practical Vim, 2nd Edition. 10/2015.
- Rick Kazman, Paul Clements, Len Bass. Software Architecture in Practice, 3rd Edition. 9/2012.
A Few Notes On The Top 500
I was still developing my methodology when I surveyed the top 500, so I don’t want to give exact figures – but here are a few interesting trends I noticed.
- Ruby and PHP both only appear once!
- Rust appears twice in the top 100 but not again in the remaining 400.
- .NET related technologies including .NET Core, ASP.NET Core, and C# have a fairly strong showing (certainly in comparison to Ruby and PHP).
A Few Notes On the Top 700 (Most Recently Published)
Similar to the above, my methodology was still in process when I gathered this data, so I’m going to shy away from exact figures for this iteration – but there is some interesting data to be noted here:
- Security ranks more highly in this list than in the popular titles, second only to Python.
- R puts in a significantly stronger showing in this list than the top 100.
- Interestingly, while Linux maintains a decent standing in recent publications, Network related books take a significant dip.
- .NET’s strength decreases relative to the top 500 list.
- Julia makes a few appearances (alternative to Python and R?).
- MSSQL, MySQL, MariaDB, PostgreSQL, and NoSQL rank similarly (though RDBMS vs NoSQL, RDBMS wins) though notably don’t appear in the top 100 other than one Oracle SQL specific instance.
- WordPress and Xamarin both make an appearance.
- Rust has only one title while Go makes several appearances.
- Ruby doesn’t appear anywhere on this list while PHP’s appearance are sparse (though required for titles on Laravel and WordPress).
- Azure and AWS are much closer in rank on this list than the top 100; but Google’s Cloud still doesn’t appear anywhere on the list.