Best Software Development Books
With the number of programming blogs and tutorials available these days, it’s easy to find help online for most aspects of software development.
1. Cracking the Coding Interview: 189 Programming Questions and Solutions
Author: by Gayle Laakmann McDowell
Published at: CareerCup; 6th edition (July 1, 2015)
I am not a recruiter. I am a software engineer. And as such, I know what it’s like to be asked to whip up brilliant algorithms on the spot and then write flawless code on a whiteboard. I’ve been through this as a candidate and as an interviewer.
Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I’ve coached and interviewed hundreds of software engineers. The result is this book.
Learn how to uncover the hints and hidden details in a question, discover how to break down a problem into manageable chunks, develop techniques to unstick yourself when stuck, learn (or re-learn) core computer science concepts, and practice on 189 interview questions and solutions.
These interview questions are real; they are not pulled out of computer science textbooks. They reflect what’s truly being asked at the top companies, so that you can be as prepared as possible.WHAT’S INSIDE? 189 programming interview questions, ranging from the basics to the trickiest algorithm problems.
2. Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming
Author: by Eric Matthes
Published at: No Starch Press; 2nd edition (May 3, 2019)
Second edition of the best-selling Python book in the world. A fast-paced, no-nonsense guide to programming in Python. Updated and thoroughly revised to reflect the latest in Python code and practices. Python Crash Course is the world’s best-selling guide to the Python programming language.
This fast-paced, thorough introduction to programming with Python will have you writing programs, solving problems, and making things that work in no time. In the first half of the book, you’ll learn basic programming concepts, such as variables, lists, classes, and loops, and practice writing clean code with exercises for each topic.
You’ll also learn how to make your programs interactive and test your code safely before adding it to a project. In the second half, you’ll put your new knowledge into practice with three substantial projects: a Space Invaders-inspired arcade game, a set of data visualizations with Python’s handy libraries, and a simple web app you can deploy online.
As you work through the book, you’ll learn how to: Use powerful Python libraries and tools, including Pygame, Matplotlib, Plotly, and Django Make 2D games that respond to keypresses and mouse clicks, and that increase in difficulty Use data to generate interactive visualizations Create and customize web apps and deploy them safely online Deal with mistakes and errors so you can solve your own programming problemsIf you’ve been thinking about digging into programming, Python Crash Course will get you writing real programs fast.
3. Automate the Boring Stuff with Python, 2nd Edition: Practical Programming for Total Beginners
Author: by Al Sweigart
Published at: No Starch Press; Illustrated edition (November 12, 2019)
The second edition of this best-selling Python book (100,000+ copies sold in print alone) uses Python 3 to teach even the technically uninclined how to write programs that do in minutes what would take hours to do by hand. There is no prior programming experience required and the book is loved by liberal arts majors and geeks alike.
If you’ve ever spent hours renaming files or updating hundreds of spreadsheet cells, you know how tedious tasks like these can be. But what if you could have your computer do them for you? In this fully revised second edition of the best-selling classic Automate the Boring Stuff with Python, you’ll learn how to use Python to write programs that do in minutes what would take you hours to do by hand-no prior programming experience required.
You’ll learn the basics of Python and explore Python’s rich library of modules for performing specific tasks, like scraping data off websites, reading PDF and Word documents, and automating clicking and typing tasks. The second edition of this international fan favorite includes a brand-new chapter on input validation, as well as tutorials on automating Gmail and Google Sheets, plus tips on automatically updating CSV files.
4. Clean Code: A Handbook of Agile Software Craftsmanship
Author: by Robert C. Martin
Published at: Pearson; 1st edition (August 1, 2008)
Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.
Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and make you a better programmerbut only if you work at it.
What kind of work will you be doing? You’ll be reading codelots of code. And you will be challenged to think about what’s right about that code, and what’s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.
Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up codeof transforming a code base that has some problems into one that is sound and efficient.
5. Staff Engineer: Leadership beyond the management track
Author: by Will Larson
Published at: Will Larson (January 31, 2021)
At most technology companies, you’ll reach Senior software engineer, the career level for software engineers, in five to eight years. At the career level, your company’s career ladder won’t require that you work towards the next promotion; being promoted further is an exception rather than expected.
This is also when many engineers are first given an opportunity to move into engineering management. Over the past few years, we’ve seen a flurry of books unlocking the engineering management career path, like Camille Fournier’s The Manager’s Path, Julie Zhuo’s The Making of a Manager, Lara Hogan’s Resilient Management, and even my own An Elegant Puzzle.
The engineering management career isn’t an easy one, but there are maps available to help navigate it. What if you want to advance your career without becoming an engineering manager? The technical leadership path remains relatively undocumented, hard to navigate, and inconsistent across companies.
Staff Engineer is your guide to building your career towards a Staff engineering role, receiving the title, and succeeding within the role.
6. The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition (2nd Edition)
Author: by David Thomas
Published at: Addison-Wesley Professional; 2nd edition (September 13, 2019)
One of the most significant books in my life. Obie Fernandez, Author, The Rails Way Twenty years ago, the first edition of The Pragmatic Programmer completely changed the trajectory of my career. This new edition could do the same for yours.
Mike Cohn, Author of Succeeding with Agile, Agile Estimating and Planning, and User Stories Applied . Filled with practical advice, both technical and professional, that will serve you and your projects well for years to come. Andrea Goulet, CEO, Corgibytes, Founder, LegacyCode.Rocks …
Lightning does strike twice, and this book is proof. VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks The Pragmatic Programmer is one of those rare tech books you’ll read, re-read, and read again over the years. Whether you’re new to the field or an experienced practitioner, you’ll come away with fresh insights each and every time.
Dave Thomas and Andy Hunt wrote the first edition of this influential book in 1999 to help their clients create better software and rediscover the joy of coding. These lessons have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology, and the Pragmatic philosophy has spawned hundreds of books, screencasts, and audio books, as well as thousands of careers and success stories.
7. Learning Python, 5th Edition
Author: by Mark Lutz
Published at: O'Reilly Media; Fifth edition (July 16, 2013)
Get a comprehensive, in-depth introduction to the core Python language with this hands-on book. Based on author Mark Lutz’s popular training course, this updated fifth edition will help you quickly write efficient, high-quality code with Python. It’s an ideal way to begin, whether you’re new to programming or a professional developer versed in other languages.
Complete with quizzes, exercises, and helpful illustrations, this easy-to-follow, self-paced tutorial gets you started with both Python 2.7 and 3. 3 the latest releases in the 3.X and 2. X linesplus all other releases in common use today. You’ll also learn some advanced language features that recently have become more common in Python code.
Explore Python’s major built-in object types such as numbers, lists, and dictionariesCreate and process objects with Python statements, and learn Python’s general syntax modelUse functions to avoid code redundancy and package code for reuseOrganize statements, functions, and other tools into larger components with modulesDive into classes: Python’s object-oriented programming tool for structuring codeWrite large programs with Python’s exception-handling model and development toolsLearn advanced Python tools, including decorators, descriptors, metaclasses, and Unicode processing
8. Cracking the PM Interview: How to Land a Product Manager Job in Technology (Cracking the Interview & Career)
Author: by Gayle Laakmann McDowell
Published at: CareerCup; 1st edition (December 2, 2013)
How many pizzas are delivered in Manhattan? How do you design an alarm clock for the blind? What is your favorite piece of software and why? How would you launch a video rental service in India? This book will teach you how to answer these questions and more.
Cracking the PM Interview is a comprehensive book about landing a product management role in a startup or bigger tech company. Learn how the ambiguously-named “PM” (product manager / program manager) role varies across companies, what experience you need, how to make your existing experience translate, what a great PM resume and cover letter look like, and finally, how to master the interview: estimation questions, behavioral questions, case questions, product questions, technical questions, and the super important “pitch.”The Product Manager RoleWhat is a PM?
Functions of a PMTop Myths about Product ManagementProject Managers and Program ManagersCompaniesHow the PM Role VariesGoogleMicrosoftAppleFacebookAmazonYahooTwitterStartupsGetting the Right ExperienceNew GradsMaking the Most of Career FairsDo you need an MBA? Why Technical Experience MattersTransitioning from Engineer to Product ManagerTransitioning from Designer to Product ManagerTransitioning from Other RolesWhat Makes a Good Side Project?
9. The Linux Command Line, 2nd Edition: A Complete Introduction
Author: by William Shotts
Published at: No Starch Press; Illustrated edition (March 7, 2019)
You’ve experienced the shiny, point-and-click surface of your Linux computer-now dive below and explore its depths with the power of the command line. The Linux Command Line takes you from your very first terminal keystrokes to writing full programs in Bash, the most popular Linux shell (or command line).
Along the way you’ll learn the timeless skills handed down by generations of experienced, mouse-shunning gurus: file navigation, environment configuration, command chaining, pattern matching with regular expressions, and more. In addition to that practical knowledge, author William Shotts reveals the philosophy behind these tools and the rich heritage that your desktop Linux machine has inherited from Unix supercomputers of yore.
As you make your way through the book’s short, easily-digestible chapters, you’ll learn how to: Create and delete files, directories, and symlinks Administer your system, including networking, package installation, and process management Use standard input and output, redirection, and pipelines Edit files with Vi, the world’s most popular text editor Write shell scripts to automate common or boring tasks Slice and dice text files with cut, paste, grep, patch, and sedOnce you overcome your initial “shell shock,” you’ll find that the command line is a natural and expressive way to communicate with your computer.
10. The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change
Author: by Camille Fournier
Published at: O'Reilly Media; 1st edition (April 18, 2017)
Managing people is difficult wherever you work. But in the tech industry, where management is also a technical discipline, the learning curve can be brutalespecially when there are few tools, texts, and frameworks to help you. In this practical guide, author Camille Fournier (tech lead turned CTO) takes you through each stage in the journey from engineer to technical manager.
From mentoring interns to working with senior staff, you’ll get actionable advice for approaching various obstacles in your path. This book is ideal whether you’re a New manager, a mentor, or a more experienced leader looking for fresh advice. Pick up this book and learn how to become a better manager and leader in your organization.
Begin by exploring what you expect from a managerUnderstand what it takes to be a good mentor, and a good tech leadLearn how to manage individual members while remaining focused on the entire teamUnderstand how to manage yourself and avoid common pitfalls that challenge many leadersManage multiple teams and learn how to manage managersLearn how to build and bootstrap a unifying culture in teams
11. Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software
Author: by Eric Freeman
Published at: O'Reilly Media; 2nd edition (December 29, 2020)
What will you learn from this book? You know you don’t want to reinvent the wheel, so you look to Design Patterns: the lessons learned by those who’ve faced the same software design problems. With Design Patterns, you get to take advantage of the best practices and experience of others so you can spend your time on something more challenging.Something more fun.
This book shows you the patterns that matter, when to use them and why, how to apply them to your own designs, and the object-oriented design principles on which they’re based. Join hundreds of thousands of developers who’ve improved their object-oriented design skills through Head First Design Patterns.
What’s so special about this book? If you’ve read a Head First book, you know what to expect: a visually rich format designed for the way your brain works. With Head First Design Patterns, 2E you’ll learn design principles and patterns in a way that won’t put you to sleep, so you can get out there to solve software design problems and speak the language of patterns with others on your team.
12. Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations
Author: by Nicole Forsgren PhD
Published at: IT Revolution Press; 1st edition (March 27, 2018)
Winner of the Shingo Publication AwardAccelerate your organization to win in the marketplace. How can we apply technology to drive business value? For years, we’ve been told that the performance of software delivery teams doesn’t matterthat it can’t provide a competitive advantage to our companies.
Through four years of groundbreaking research to include data collected from the State of DevOps reports conducted with Puppet, Dr. Nicole Forsgren, Jez Humble, and Gene Kim set out to find a way to measure software delivery performanceand what drives itusing rigorous statistical methods.
This book presents both the findings and the science behind that research, making the information accessible for readers to apply in their own organizations. Readers will discover how to measure the performance of their teams, and what capabilities they should invest in to drive higher performance.
This book is ideal for management at every level.
13. Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
Author: by Robert Martin
Published at: Pearson; 1st edition (September 10, 2017)
Practical Software Architecture Solutions from the Legendary Robert C. Martin (Uncle Bob) By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system. Now, building upon the success of his best-selling books Clean Code and The Clean Coder, legendary software craftsman Robert C.
Martin (Uncle Bob) reveals those rules and helps you apply them. Martin’s Clean Architecture doesn’t merely present options. Drawing on over a half-century of experience in software environments of every imaginable type, Martin tells you what choices to make and why they are critical to your success.
As you’ve come to expect from Uncle Bob, this book is packed with direct, no-nonsense solutions for the real challenges you’ll facethe ones that will make or break your projects. Learn what software architects need to achieveand core disciplines and practices for achieving it Master essential software design principles for addressing function, component separation, and data management See how programming paradigms impose discipline by restricting what developers can do Understand what’s critically important and what’s merely a detail Implement optimal, high-level structures for web, database, thick-client, console, and embedded applications Define appropriate boundaries and layers, and organize components and services See why designs and architectures go wrong, and how to prevent (or fix) these failures Clean Architecture is essential reading for every current or aspiring software architect, systems analyst, system designer, and software managerand for every programmer who must execute someone else’s designs.
14. Ask Your Developer: How to Harness the Power of Software Developers and Win in the 21st Century
Author: by Jeff Lawson
Published at: Harper Business (January 12, 2021)
Jeff Lawson, developer turned CEO of Twilio (one of Bloomberg Businessweek’s Top 50 Companies to Watch in 2021), creates a new playbook for unleashing the full potential of software developers in any organization, showing how to help management utilize this coveted and valuable workforce to enable growth, solve a wide range of business problems, and drive digital transformation.
From banking and retail to insurance and finance, every industry is turning digital, and every company needs the best software to win the hearts and minds of customers. The landscape has shifted from the classic build vs. Buy question, to one of build vs.Die.
Companies have to get this right to survive. But how do they make this transition? Software developers are sought after, highly paid, and desperately needed to compete in the modern, digital economy. Yet most companies treat them like digital factory workers without really understanding how to unleash their full potential.
Lawson argues that developers are the creative workforce who can solve major business problems and create hit products for customersnot just grind through rote tasks. From Google and Amazon, to one-person online software companiescompanies that bring software developers in as partners are winning.
15. Linux Basics for Hackers: Getting Started with Networking, Scripting, and Security in Kali
Author: by OccupyTheWeb
Published at: No Starch Press; Illustrated edition (December 4, 2018)
This practical, tutorial-style book uses the Kali Linux distribution to teach Linux basics with a focus on how hackers would use them. Topics include Linux command line basics, filesystems, networking, BASH basics, package management, logging, and the Linux kernel and drivers.
If you’re getting started along the exciting path of hacking, cybersecurity, and pentesting, Linux Basics for Hackers is an excellent first step. Using Kali Linux, an advanced penetration testing distribution of Linux, you’ll learn the basics of using the Linux operating system and acquire the tools and techniques you’ll need to take control of a Linux environment.
First, you’ll learn how to install Kali on a virtual machine and get an introduction to basic Linux concepts. Next, you’ll tackle broader Linux topics like manipulating text, controlling file and directory permissions, and managing user environment variables. You’ll then focus in on foundational hacking concepts like security and anonymity and learn scripting skills with bash and Python.
16. Learning C# by Developing Games with Unity 2020: An enjoyable and intuitive approach to getting started with C# programming and Unity, 5th Edition
Author: by Harrison Ferrone
Published at: Packt Publishing (August 21, 2020)
Get to grips with coding in C# and build simple 3D games with Unity from the ground up with this updated fifth edition of the bestselling guide Key Features Understand C# programming basics, terminology, and coding best practices Put your knowledge of C# concepts into practice by building a fun and playable game Come away with a clear direction for taking your C# programming and Unity game development skills to the next level Book Description Over the years, the Learning C# by Developing Games with Unity series has established itself as a popular choice for getting up to speed with C#, a powerful and versatile programming language that can be applied in a wide array of application areas.
This book presents a clear path for learning C# programming from the ground up without complex jargon or unclear programming logic, all while building a simple game with Unity. This fifth edition has been updated to introduce modern C# features with the latest version of the Unity game engine, and a new chapter has been added on intermediate collection types.