Here are 40 books that Practical Vim fans have personally recommended if you like
Practical Vim.
Shepherd is a community of 12,000+ authors and super readers sharing their favorite books with the world.
You know what ages like milk? Programming books. I always cringe when someone glances at my programming bookshelf. Some of those books are so dated, they make me appear out of touch by association. Sometimes, I feel compelled to justify myself. “Yes, that's the first edition of Thinking in Java…I keep it for nostalgic reasons, you know!” Yesterday’s software book is today’s fish and chip wrapper. However, there are exceptions. A few classics stay relevant for years, or even decades. This is a shortlist of software books that might be older than you, but are still very much worth reading.
In my consulting gigs, I come across plenty of clueless remarks. Here's a classic one: “We're falling behind schedule, so let's hire more coders.” Or a more recent gem: “We'll be ten times more productive if we generate code with AI.”
When I encounter such nonsense, I don't facepalm or cringe. Instead, I put on my poker face and drop a quote from The Mythical Man-Month.
In an industry where last year’s book is already outdated, Fred Brooks' collection of essays has been a guiding light for nearly half a century. His aphorisms have become legendary. “The bearing of a child takes nine months, no matter how many women are assigned.” “Adding manpower to a late software project makes it later.” “There is no silver bullet.” The list goes on and on.
John Carmack, one of the greatest programmers of our times, used to revisit this book every year or…
Few books on software project management have been as influential and timeless as The Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project manager for the IBM System/360 computer family and then for OS/360, its massive software system. Now, 20 years after the initial publication of his book, Brooks has revisited his original ideas and added new thoughts and advice, both for readers already familiar with his work and for readers discovering it for the first time.
It is April 1st, 2038. Day 60 of China's blockade of the rebel island of Taiwan.
The US government has agreed to provide Taiwan with a weapons system so advanced that it can disrupt the balance of power in the region. But what pilot would be crazy enough to run…
Since I was a kid, I’ve been passionate about technology and had a clear vocation to work with computers. I’ve been a developer for more than 20 years now, spending half of them mainly in the Python environment, and I’ve always been interested in improving my skills. While it’s true that software development is a field that changes constantly and technology evolves at great speed, there are some elements that remain relatively unchanged and can be used to compound knowledge and ability. In particular, the elements that are closer to the human element, teamwork, coordination, etc. are quite stable over time.
While this is a Python-specific book, it’s a fantastic description of all the possibilities for testing with a powerful module like Pytest offers. Testing is one of the basic experiences for a programmer, as it should be included as a core part of the development process. Understanding all the different options available like mark groups of tests, parametric tests, building your own extensions, or test coverage, to name only a few details, expands the understanding of how to design better tests and run them more efficiently.
Do less work when testing your Python code, but be just as expressive, just as elegant, and just as readable. The pytest testing framework helps you write tests quickly and keep them readable and maintainable - with no boilerplate code. Using a robust yet simple fixture model, it's just as easy to write small tests with pytest as it is to scale up to complex functional testing for applications, packages, and libraries. This book shows you how. For Python-based projects, pytest is the undeniable choice to test your code if you're looking for a full-featured, API-independent, flexible, and extensible testing…
I’ve spent most of my life writing code—and too much of that life teaching new programmers how to write code like a professional. If it’s true that you only truly understand something after teaching it to someone else, then at this point I must really understand programming! Unfortunately, that understanding has not led to an endless stream of bug-free code, but it has led to some informed opinions on programming and books about programming.
This book’s title is absolutely perfect! There’s no agenda here other than identifying things that will make you a more effective and productive programmer.
That leads to a book packed with solid advice, whether it’s about how to write code or how to think about your career. The authors are consultants, so there are plenty of clear and interesting examples drawn from many different problem domains. That’s super fun for someone like me who’s hyper-focused on a single kind of programming.
"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…
A Duke with rigid opinions, a Lady whose beliefs conflict with his, a long disputed parcel of land, a conniving neighbour, a desperate collaboration, a failure of trust, a love found despite it all.
Alexander Cavendish, Duke of Ravensworth, returned from war to find that his father and brother had…
Since I was a kid, I’ve been passionate about technology and had a clear vocation to work with computers. I’ve been a developer for more than 20 years now, spending half of them mainly in the Python environment, and I’ve always been interested in improving my skills. While it’s true that software development is a field that changes constantly and technology evolves at great speed, there are some elements that remain relatively unchanged and can be used to compound knowledge and ability. In particular, the elements that are closer to the human element, teamwork, coordination, etc. are quite stable over time.
Michael Lopp, or Rands, as he is commonly known online, has been sharing his knowledge as a software manager for years, mainly through his blog. He is one of the most insightful voices about the art of management in a software environment, and even if you are not a manager yourself (and don’t want to become one), will make you understand and better collaborate with your own manager, and be ready when you need to lead a team or understand how it is to work with other humans.
Managing Humans is a selection of the best essays from Michael Lopp's popular website Rands in Repose(www.randsinrepose.com). Lopp is one of the most sought-after IT managers in Silicon Valley, and draws on his experiences at Apple, Netscape, Symantec, and Borland. This book reveals a variety of different approaches for creating innovative, happy development teams. It covers handling conflict, managing wildly differing personality types, infusing innovation into insane product schedules, and figuring out how to build lasting and useful engineering culture. The essays are biting, hilarious, and always informative.
Like most geeks, I've always loved efficiency and productivity. Coming from a Windows-dominated world, the command line I was faced with in my CompSci degree was Initially mystifying, but over time I have come to see it as the most powerful human-computer interface out there. After spending years wresting with the command line at work, I decided to write a book on bash, and have blogged extensively on this and related topics. I also run live courses on bash and the command line for O'Reilly. There's nothing I enjoy more than opening people's eyes to the power of the shell!
In 2001, when I was young and everything was possible I asked my CTO what Interactive Development Environment (IDE) I should use.
'vim' was the response, so I went away and learned it. To this day, I use vim by default for almost all my programming needs. The learning curve is very steep, but the rewards are great, not least because it's hard to find a platform that cannot run it.
This book reinforces the learning you can do elsewhere through walkthroughs and tips and lets you know what's possible, so that when you really need to do things like search and replace, or run a macro, you can look it up again and get it under your fingers.
Vim is a fast and efficient text editor that will make you a faster and more efficient developer. It's available on almost every OS, and if you master the techniques in this book, you'll never need another text editor. In more than 120 Vim tips, you'll quickly learn the editor's core functionality and tackle your trickiest editing and writing tasks. This beloved bestseller has been revised and updated to Vim 7.4 and includes two brand-new tips and five fully revised tips.A highly configurable, cross-platform text editor, Vim is a serious tool for programmers, web developers, and sysadmins who want to…
Some programmers learn through online articles, videos, and blog posts. Not me. I need a throughline—a consistent, expert distillation of the material to take me from where I am to where I want to be. I am not good at patching together information from disparate sources. I need a great book. I have a PhD in computer science education, and I want to know what helps people learn. More importantly, I want to know how we can use such discoveries to write more effective books. The books I appreciate most are those that demonstrate not only mastery of the subject matter but also mastery of teaching.
Learning to program is hard. We need teachers who remember this, who are patient, who support the learning process, who not only know how to teach but also know how to learn from their teaching. Severance is all of these things. I like the breezy but precise writing, sections on debugging, glossaries and exercises in each chapter, and discussion of common learner errors. Bonus feature: regular expressions.
Python for Everybody is designed to introduce students to programming and software development through the lens of exploring data. You can think of the Python programming language as your tool to solve data problems that are beyond the capability of a spreadsheet.
Python is an easy to use and easy to learn programming language that is freely available on Macintosh, Windows, or Linux computers. So once you learn Python you can use it for the rest of your career without needing to purchase any software.
This book uses the Python 3 language. The earlier Python 2 version of this book…
The Duke's Christmas Redemption
by
Arietta Richmond,
A Duke who has rejected love, a Lady who dreams of a love match, an arranged marriage, a house full of secrets, a most unneighborly neighbor, a plot to destroy reputations, an unexpected love that redeems it all.
Lady Charlotte Wyndham, given in an arranged marriage to a man she…
Mathematics and chemistry were my strongest subjects at school, and I started programming computers when I was 16, but life seemed most important. Hence I studied biochemistry in university but moved into molecular biology with programming to assist the data analysis. My track record in successfully predicting new biology through computing led to a pharmaceutical company recruiting me to do bioinformatics for them. However, not content with studying genes and proteins, I pushed for bioinformatics to move up into metabolism, anatomy, and physiology. That’s when I discovered systems biology. My international reputation lies at this interface and includes discoveries in microbial physiology, botany, agriculture, animal biology, and antenatal diseases.
This book has been a companion for almost three decades.
Any bona fide bioinformatician will write some program scripts if only to reformat data in new and useful ways. Perl is not the most efficient or widespread scripting language, but it has the advantage of being highly flexible. It offers many ways to write a program to carry out a given task, so even computationally naive programmers can generate effective code.
Even though I am no longer actively developing software, I still have occasions when it is quicker to script something in Perl than do battle with larger apps.
When it comes to learning Perl, programmers consider this book to be the undisputed bible. You not only learn every nuance of this language, you also get a unique perspective on the evolution of Perl and its future direction. The 4th edition has been thoroughly updated for version 5.14, with details on regular expressions, support for UNICODE, threads, and many other features. Many Perl books explain typeglobs, pseudohashes, and closures, but only this one shows the motivations behind these features and why they work the way they do. It's exactly what you'd expect from its prominent authors: Larry Wall is…
I’ve been teaching and writing Python code (and managing others while they write Python code) for over 20 years. After all that time Python is still my tool of choice, and many times Python is the key part of how I explore and think about problems. My experience as a teacher also has prompted me to dig in and look for the simplest way of understanding and explaining the elegant way that Python features fit together.
Luciano’s book is one of the most complete discussions of the ins and outs of Python that I’ve seen. He is fascinated by coding in general and it comes across as he explores the ways Python is similar to (and different from) other language paradigms. This is the book I take out if I’m starting to dig in and explore a feature of Python, and if you want to understand the details beneath the details, this is the book for you.
Learn how to write idiomatic, effective Python code by leveraging its best features. Python's simplicity quickly lets you become productive with it, but this often means you aren't using everything the language has to offer. By taking you through Python's key language features and libraries, this practical book shows you how to make your code shorter, faster, and more readable all at the same time--what experts consider "Pythonic."Many programmers who learn Python basics fall into the trap of reinventing the wheel because of past experience in other languages, and try to bend the language to patterns that don't really apply…
I’ve been teaching and writing Python code (and managing others while they write Python code) for over 20 years. After all that time Python is still my tool of choice, and many times Python is the key part of how I explore and think about problems. My experience as a teacher also has prompted me to dig in and look for the simplest way of understanding and explaining the elegant way that Python features fit together.
Dave is the best teacher of programming and how programming languages (and Python specifically) work that I’ve ever met. He has a knack for making explanations of tough concepts seem clear, and he is very good at focusing on what’s essential to using a coding technique or structure and how to write good code. Like all of Dave’s books, the stuff in here just makes sense.
Expert Insight for Modern Python (3.6+) Development from the Author of Python Essential Reference
The richness of modern Python challenges developers at all levels. How can programmers who are new to Python know where to begin without being overwhelmed? How can experienced Python developers know they're coding in a manner that is clear and effective? How does one make the jump from learning about individual features to thinking in Python at a deeper level? Dave Beazley's new Python Distilled addresses these and many other real-world issues.
Focusing on Python 3.6 and higher, this concise handbook focuses on the essential core…
This book follows the journey of a writer in search of wisdom as he narrates encounters with 12 distinguished American men over 80, including Paul Volcker, the former head of the Federal Reserve, and Denton Cooley, the world’s most famous heart surgeon.
In these and other intimate conversations, the book…
I’ve been teaching and writing Python code (and managing others while they write Python code) for over 20 years. After all that time Python is still my tool of choice, and many times Python is the key part of how I explore and think about problems. My experience as a teacher also has prompted me to dig in and look for the simplest way of understanding and explaining the elegant way that Python features fit together.
I like this book not just because it’s a complete guide to the many ins and outs of data cleaning with Python, but also because David lays out the types of problems and the issues behind them. There are always trade-offs in data cleaning and this book lays out those trade-offs better than any other I’ve seen. This is one of the few books that as I go through it, I struggle to think of anything that could have been said better.
Think about your data intelligently and ask the right questions
Key Features
Master data cleaning techniques necessary to perform real-world data science and machine learning tasks
Spot common problems with dirty data and develop flexible solutions from first principles
Test and refine your newly acquired skills through detailed exercises at the end of each chapterBook Description
Data cleaning is the all-important first step to successful data science, data analysis, and machine learning. If you work with any kind of data, this book is your go-to resource, arming you with the insights and heuristics experienced data scientists had to learn the…