If you’re passionate about programming and want to get better at it, you’ve come to the right source. Code Craft author Pete Goodliffe presents a collection of useful techniques and approaches to the art and craft of programming that will help boost your career and your well-being.
Goodliffe presents sound advice that he’s learned in 15 years of professional programming. The book’s standalone chapters span the range of a software developer’s life—dealing with code, learning the trade, and improving performance—with no language or industry bias. Whether you’re a seasoned developer, a neophyte professional, or a hobbyist, you’ll find valuable tips in five independent categories:
Code-level techniques for crafting lines of code, testing, debugging, and coping with complexity
Practices, approaches, and attitudes: keep it simple, collaborate well, reuse, and create malleable code
Tactics for learning effectively, behaving ethically, finding challenges, and avoiding stagnation
Practical ways to complete things: use the right tools, know what “done” looks like, and seek help from colleagues
Habits for working well with others, and pursuing development as a social activity
AI Reading Assistant
Whole-book reading guide from stratified index samples; jump to passages in the text
Tip the Site
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat Pay
Alipay
Open WeChat or Alipay and scan. No login required.
AI guide
# Becoming a Better Programmer: A Handbook for People Who Care About Code
## 【One-Line Pitch】
A practical, language-agnostic collection of hard-won lessons and techniques for programmers who want to elevate their craft—from writing cleaner code and testing effectively to navigating legacy systems and collaborating with teammates. Ideal for developers at any level who treat programming as a profession worth mastering, not just a job.
## 【Book Arc】
- **Opening (~0%–6%)**: Introduces the book's five-part structure—code-level techniques, practices and attitudes, learning tactics, completion strategies, and social habits—framing programming as both a technical and human discipline.
- **Early (~6%–19%)**: Focuses on code fundamentals: consistent formatting and team-wide editor configuration, the importance of naming (especially for public APIs), and the radical idea that removing code is often the best improvement you can make.
- **Early (~19%–28%)**: Explores why unnecessary code sneaks in despite good processes, and provides a systematic approach to understanding unfamiliar codebases—examining file structure, documentation, dependencies, and overall code quality.
- **Middle (~28%–38%)**: Covers debugging strategies (binary chop, software archaeology through version control) and testing philosophy, including the test-first TDD cycle and the critical importance of maintaining your test suite.
- **Middle (~38%–47%)**: Tackles complexity head-on, analyzing how "blobs and lines" (objects and their relationships) create tangled systems, and introducing principles like high cohesion and loose coupling to keep designs manageable.
## 【Key Takeaways】
- **Consistent formatting is a team discipline, not a style preference** (Early): When IDEs, tab stops, and line endings differ across a team, code becomes fractured and hard to work with—the "Whitespace Wars" story shows how one dissenting developer can poison an entire codebase.
- **Removing code is a powerful improvement technique** (Early): Every line costs maintenance over its lifetime; deleting thousands of lines and replacing them with a few is often the highest-value refactoring you can do.
- **Never comment out code—delete it** (Early): Commented-out code signals indecision and confuses readers; version control exists precisely so you can remove code completely and recover it later if needed.
- **Unnecessary code enters through predictable vices** (Early): Writing code for amusement, anticipating future needs (violating YAGNI), avoiding customer conversations, and inventing bogus requirements—recognize these patterns in yourself and your team.
- **Approach unfamiliar codebases systematically** (Early): Examine directory structure, documentation, static analysis output, requirements docs, and dependency choices to quickly gauge a project's health before diving into details.
- **Binary chop problem spaces for faster debugging** (Early): Instead of linear search through possible causes, repeatedly halve the problem space to reach solutions in O(log n) time rather than O(n).
- **Test-first TDD is a short feedback loop, not a religious ritual** (Middle): The red-green-refactor cycle—write failing test, implement simplest solution, refactor—keeps feedback tight and drives better API design, even if you don't follow it dogmatically.
- **Your test suite is a communication channel—maintain it** (Middle): When tests fail, they're telling you something; commenting them out or deleting them to "save time" is like silencing a smoke alarm because it's annoying.
## 【Reading Tips】
- **Skim the war stories**: Goodliffe's personal anecdotes (like the Whitespace Wars) illustrate principles memorably—read them for context, but don't expect them to carry technical depth.
- **Deep-read Chapters 3–4 on removing code**: This is where the book's most contrarian and valuable advice lives; the "code indulgence" list is worth memorizing as a self-check.
- **Use the "Try this" exercises**: Each chapter ends with practical challenges (like the Boy Scout Rule—leave code better than you found it); these are where the book transforms from reading to practice.
- **Treat Part I as a checklist**: The codebase navigation and testing chapters work best as reference material to consult when you're actually facing a new project or debugging session.
- **Don't expect deep technical tutorials**: This is a craft book, not a language reference—it's about judgment, habits, and perspective, so read it for mindset shifts rather than syntax.
## 【Coverage Limits】
This guide covers the book's first half (Parts I and into II), focusing on code-level techniques, testing, debugging, and complexity management. The excerpts do not cover the later sections on learning tactics, ethical behavior, tooling, collaboration, and social aspects of development.
##
Page 19
ss this page at http://bit.ly/becoming_a_better_programmer. To comment or ask technical questions about this book, send email to bookques tions@oreilly.com....
If you don’t need it right now, don’t write it right now.) • But it was only a small thing; not a massive “extra” feature. It was easier to just implement it...
near past of the codebase when this bug didn’t exist. Armed with your reproducible test case, step forward in time to determine which code change‐ set caused...
ned role, and not be a grab bag of unrelated functionality. Loose coupling Coupling is a measure of the interdependency between modules; the amount of wiring...
can be quickly and clearly described, and easily understood. You can summarise it in a simple sentence, or in one clear diagram. Simple designs are easy to c...
ed is love. They emphasised the point: love is all you need. Love; that’s it. Literally. Nothing else. It’s incredible how long a career they had given that...
parts of the process. Use a scripting language to do this. The build script acts as unambiguous documentation on how to build the project. It also ensures th...
rent system; just because it looks elegant, even if—shudder to think—it doesn’t actually provide business value. Often this kind of personal challenge can on...
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.
Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat PayAlipay
Open WeChat or Alipay and scan. No login required.
Add Tag
Enter tag name (max 50 characters)
Share E-Book
Becoming a Better Programmer A Handbook for People Who Care About Code (Pete Goodliffe)(Z-Library)
Scan QR code with your phone to access
Copy the link or scan the QR code to access this e-book on your phone
Share E-Book via Email
Please enter email address
Donation Statistics
¥.00
Total Donations
0
Donation Count
Becoming a Better Programmer A Handbook for People Who Care About Code (Pete Goodliffe)(Z-Library)
Find Your Favorite Books
Only registered users can comment after logging in. Comments need to be reviewed by administrators before being displayed
Loading comments...
Reply to Comment
Edit Comment