Recommended Practices for Software Development: Essential Resources from Every Programmer Should Know
The Every Programmer Should Know repository curates 14 essential practices covering legacy code refactoring, clean architecture, test-driven development, and production deployment to help developers build maintainable, production-grade software.
The mtdvio/every-programmer-should-know repository serves as a comprehensive knowledge base for software engineers seeking to level up their craft. Among its curated sections, the recommended practices for software development stand out as a practical roadmap for writing code that survives the transition from development to production. This guide distills the repository's Practices section—found in README.md lines 154–170—into actionable insights you can apply immediately.
Legacy Code Management
Refactoring untested codebases requires specific strategies to avoid breaking production systems. Working Effectively with Legacy Code by Michael C. Feathers provides tactical approaches for adding characterization tests to existing code before making changes. This method creates a safety net that verifies behavior remains consistent during refactoring, allowing you to modernize untested codebases incrementally without introducing regressions.
Code Quality and Readability
Maintainable software starts with readable source code. The repository highlights The Art of Readable Code by Dustin Boswell and Trevor Foucher for practical communication techniques that make intent clear to future maintainers. For comprehensive construction standards, Code Complete by Steve McConnell covers design patterns, debugging strategies, and coding standards exhaustively. Clean Code by Robert C. Martin establishes the foundational principles of agile software craftsmanship, serving as the entry point for developers adopting professional coding standards.
Development Workflow and Testing
Modern development requires disciplined testing strategies. Test-Driven Development: By Example by Kent Beck demonstrates the red-green-refactor workflow, illustrating how to write failing tests first and evolve implementations safely. This practice ensures code correctness from inception rather than as an afterthought, creating executable documentation that prevents regression.
Production Readiness
Deploying to production demands more than functional code. The Going To Production Checklist by mr-mig provides an open-source pre-deployment verification covering observability, rollback procedures, security hardening, and post-release monitoring. Complementing this, Release It! by Michael T. Nygard guides architects through stability patterns and anti-patterns for systems that remain resilient under production load.
Programming Paradigms and Theory
Strong theoretical foundations enable better architectural decisions. Professor Frisby's Mostly Adequate Guide to Functional Programming introduces immutable, declarative patterns in JavaScript, while Structure and Interpretation of Computer Programs (SICP) by Abelson and Sussman deepens understanding of abstraction, recursion, and interpreter design. For practical language acquisition, Learn X in Y Minutes offers quick syntax reference for bootstrapping new languages safely, and Hyperpolyglot provides visual side-by-side feature comparisons to select the right tool for specific tasks. Thirteen Ways of Looking at a Turtle demonstrates multiple perspectives on recursion and data structures, while Programming Paradigms for Dummies by Pieter Van Roy surveys imperative, functional, logic, and object-oriented approaches.
Productivity Techniques
Sustainable development requires managing cognitive load. Pomodoro for Programmers applies time-boxing techniques to enhance focus during deep work sessions and prevent burnout, creating a sustainable rhythm for complex problem-solving.
Automating Compliance with the Going To Production Checklist
You can enforce the Going To Production Checklist recommendations in your deployment pipeline using a simple Bash script. This example fetches the live checklist and verifies that essential sections—observability, rollback, security, and monitoring—are present before allowing deployment:
#!/usr/bin/env bash
# production-check.sh – sanity-check before deploying
CHECKLIST_URL="https://raw.githubusercontent.com/mr-mig/going-to-production/master/README.md"
REQUIRED=("Observability" "Rollback" "Security" "Monitoring")
missing=()
for item in "${REQUIRED[@]}"; do
if ! curl -s "$CHECKLIST_URL" | grep -iq "$item"; then
missing+=("$item")
fi
done
if [ ${#missing[@]} -eq 0 ]; then
echo "✅ All production checklist items present – safe to deploy."
else
echo "⚠️ Missing checklist items:"
printf " • %s\n" "${missing[@]}"
exit 1
fi
Store this script in your CI/CD pipeline to gate deployments until your infrastructure meets the checklist requirements.
Repository Structure and Key Files
The mtdvio/every-programmer-should-know repository organizes its resources for easy navigation and extension:
README.md(lines 154–170): Contains the Practices section listing all recommended software development resources.CONTRIBUTING.md: Guidelines for submitting new resources to keep the curation current.LICENSE: MIT license clarifying reuse permissions.
These files ensure the repository remains a living document that evolves with industry best practices.
Summary
- The Every Programmer Should Know repository curates 14 essential recommended practices for software development covering legacy refactoring, code readability, testing, and production deployment.
- Key texts include Working Effectively with Legacy Code, Clean Code, Test-Driven Development: By Example, and Release It!.
- The Going To Production Checklist provides actionable pre-deployment verification for observability, security, and rollback procedures.
- Repository source files (
README.mdlines 154–170) serve as the canonical reference for these practices.
Frequently Asked Questions
What is the Every Programmer Should Know repository?
The Every Programmer Should Know repository is an open-source curation maintained by mtdvio that aggregates essential technical resources for software engineers. It covers computer science fundamentals, architecture, practices, and career development, serving as a centralized knowledge base for developers at all levels.
Which book should I read first to improve my code quality?
Start with Clean Code by Robert C. Martin to understand foundational principles of maintainable software, then follow with The Art of Readable Code by Dustin Boswell and Trevor Foucher for practical communication techniques. If you need comprehensive construction standards, Code Complete by Steve McConnell provides exhaustive coverage of design and debugging strategies.
How can I safely refactor legacy code without breaking production?
Apply the strategies from Working Effectively with Legacy Code by Michael C. Feathers, which teaches you to add characterization tests to existing code before making changes. This approach creates a safety net that verifies behavior remains consistent during refactoring, allowing you to modernize untested codebases incrementally without introducing regressions.
What does the Going To Production Checklist cover?
The Going To Production Checklist covers four critical domains: observability (logging and metrics), rollback procedures (quick recovery from failures), security hardening (authentication and secrets management), and post-release monitoring (alerting and health checks). You can automate verification of these requirements using the Bash script provided in the repository's practices section.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →