GitHub - dereknguyen269/programing-best-practices: Awesome Programming Best Practices for Beginners

17 min read Original article β†—

🌟 Programming Best Practices

Your comprehensive guide to writing better code across 30+ languages and frameworks

Curated resources from industry leaders β€’ Production-ready practices β€’ Always updated

Awesome Badge Star Badge GitHub issues GitHub stars Github license

πŸ”— Quick Links

Backend β€’ Frontend β€’ Database β€’ Mobile β€’ DevOps β€’ AI/ML β€’ Tools β€’ Featured


πŸ“– Introduction

This repository is a curated collection of programming best practices across multiple languages, frameworks, and tools.

It is not an exhaustive list but rather a practical resource containing articles, guidelines, and style guides that have proven helpful in real-world development.

The focus is primarily on Web Development (Ruby, Rails, JavaScript, etc.), but it also covers databases, DevOps, cloud practices, AI tools, and career growth.

With this collection, I hope to support developers in writing cleaner, more maintainable code and growing in their careers.

Status: 🚧 Work in Progress β€” continuously updated


🎯 Why This Repository?

✨ Curated Quality β€” Hand-picked resources from industry leaders and experienced developers
πŸš€ Production-Ready β€” Practices that work in real-world applications, not just theory
🌍 Multi-Language β€” Covers 30+ programming languages and frameworks
πŸ“š Comprehensive β€” From code style to architecture, security to performance
πŸ”„ Always Updated β€” Regularly maintained with the latest best practices
πŸ’‘ Community-Driven β€” Open to contributions from developers worldwide


πŸš€ Quick Start Setup

🎯 Automated Setup (Recommended)

The fastest way to get started is using our automated setup script:

# Clone the repository
git clone https://github.com/dereknguyen269/programing-best-practices.git
cd programing-best-practices

# Run the interactive setup script
./scripts/quick-start.sh

The script will guide you through different setup options:

Mode Time What's Included
Minimal ~1 min Dependencies only, no crawling
Test ~2-3 min Dependencies + 20 sample resources
Full ~10-15 min Everything + all 150+ resources + AI summaries
Custom Varies Choose specific categories to crawl

Quick Options:

# Minimal setup (just dependencies)
./scripts/quick-start.sh --minimal

# Full setup (everything)
./scripts/quick-start.sh --full

# Test with 20 resources
./scripts/quick-start.sh --limit 20

# Crawl only Python resources
./scripts/quick-start.sh --category python

πŸ“– For detailed documentation and troubleshooting, see the Quick Start Guide


πŸ“‹ Manual Setup (Alternative)

Prefer to set up manually? Follow these steps:

Step 1: Clone the Repository

git clone https://github.com/dereknguyen269/programing-best-practices.git
cd programing-best-practices

Step 2: Install Crawler Dependencies (Optional but Recommended)

The crawler downloads all external resources locally for offline access:

# Create virtual environment (recommended)
python3 -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
pip install -r scripts/crawler/requirements.txt

Step 3: Crawl Resources (Optional)

Download all best practices content locally:

Note: Make sure your virtual environment is activated before running these commands:

source .venv/bin/activate  # On Windows: .venv\Scripts\activate

Or use the venv Python directly: .venv/bin/python3 instead of python3

# Crawl all resources (~150+ links, takes 10-15 minutes)
python3 scripts/crawler/crawl.py

# Or crawl specific categories
python3 scripts/crawler/crawl.py --category python
python3 scripts/crawler/crawl.py --category javascript

# Or crawl a limited number for testing
python3 scripts/crawler/crawl.py --limit 20

# Update existing content
python3 scripts/crawler/crawl.py --update

Step 4: Generate AI Summaries (Optional)

Create condensed summaries optimized for AI assistants:

python3 scripts/crawler/generate_summaries.py

Step 5: Use with Your AI Coding Editor

The repository is now ready! Your AI coding editor will automatically detect:

AI Editor Config File Auto-Detected
Claude Code CLAUDE.md βœ…
Kiro .kiro/project.md βœ…
Antigravity .agent/instructions.md βœ…
Cursor .cursorrules βœ…
Windsurf .windsurfrules βœ…

πŸ“ Repository Structure

After setup, your repository will look like:

programing-best-practices/
β”œβ”€β”€ README.md                   # Main knowledge base (curated links)
β”œβ”€β”€ CLAUDE.md                   # Claude Code instructions
β”œβ”€β”€ AGENTS.md                   # Universal AI agent instructions
β”œβ”€β”€ .agent/                     # Antigravity config
β”‚   β”œβ”€β”€ config.json
β”‚   └── instructions.md
β”œβ”€β”€ .kiro/                      # Kiro config
β”‚   └── project.md
β”œβ”€β”€ .cursorrules                # Cursor AI rules
β”œβ”€β”€ .windsurfrules              # Windsurf AI rules
β”œβ”€β”€ content/                    # πŸ“¦ Crawled content (after running crawler)
β”‚   β”œβ”€β”€ index.json              # Master index of all resources
β”‚   β”œβ”€β”€ metadata.yaml           # Crawl statistics
β”‚   β”œβ”€β”€ backend_development/    # Content organized by category
β”‚   β”œβ”€β”€ frontend_development/
β”‚   └── ...
β”œβ”€β”€ summaries/                  # πŸ“ AI-ready summaries (after generate_summaries.py)
β”‚   β”œβ”€β”€ SUMMARY.md              # Master overview
β”‚   └── [category].md           # Category summaries
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ crawler/                # πŸ•·οΈ Crawler tools
β”‚   β”‚   β”œβ”€β”€ crawl.py            # Main crawler
β”‚   β”‚   β”œβ”€β”€ search.py           # Search tool
β”‚   β”‚   β”œβ”€β”€ generate_summaries.py
β”‚   β”‚   └── requirements.txt
β”‚   └── setup-kb.sh             # Quick setup script
β”œβ”€β”€ templates/                  # πŸ“‹ Templates for your projects
β”‚   β”œβ”€β”€ CLAUDE.template.md
β”‚   β”œβ”€β”€ agent/
β”‚   β”œβ”€β”€ kiro/
β”‚   └── cursorrules.template
└── docs/
    └── INTEGRATION.md          # Integration guide

πŸ” Searching the Knowledge Base

After crawling, you can search locally:

# Search for JavaScript content
python3 scripts/crawler/search.py "javascript style guide"

# Search within a specific category
python3 scripts/crawler/search.py "best practices" --category python

# Get results as JSON
python3 scripts/crawler/search.py "security" --json

πŸ“š How to Use This Repository

For Beginners

  1. Start with your primary language β€” Navigate to your language section in the Table of Contents
  2. Read style guides first β€” Understanding code style is fundamental
  3. Practice with examples β€” Apply the practices in your own projects
  4. Bookmark for reference β€” Keep this as a go-to resource when coding

For Experienced Developers

  1. Explore new languages β€” Learn best practices before starting a new tech stack
  2. Code review reference β€” Use during code reviews to maintain quality standards
  3. Team onboarding β€” Share relevant sections with new team members
  4. Stay updated β€” Check back regularly for new resources and practices

For Team Leads

  1. Establish standards β€” Use these guides to create team coding standards
  2. Training resource β€” Assign relevant sections for team learning
  3. Quality benchmarks β€” Set expectations for code quality
  4. Architecture decisions β€” Reference system design and scalability sections

πŸ€– Use for Existing Projects

Want to integrate this knowledge base into your existing project? We provide multiple options:

Option 1: Quick Setup Script

# Run the setup script in your project directory
curl -sSL https://raw.githubusercontent.com/dereknguyen269/programing-best-practices/main/scripts/setup-kb.sh | bash

Option 2: Git Submodule

# Add as a submodule in your project
cd your-project
git submodule add https://github.com/dereknguyen269/programing-best-practices.git .kb/best-practices

Option 3: Copy Templates

Download the templates from the /templates directory and customize for your project:

Template Copy To Purpose
CLAUDE.template.md CLAUDE.md Claude Code
agent/instructions.template.md .agent/instructions.md Antigravity
agent/config.template.json .agent/config.json Antigravity
kiro/project.template.md .kiro/project.md Kiro
cursorrules.template .cursorrules Cursor

πŸ“– Full integration guide: See docs/INTEGRATION.md


⭐ Featured Resources

Here are some standout resources that every developer should know:

πŸ† Must-Read Guides

🎨 Design Patterns

πŸ”§ Language-Specific Gems


πŸ“‚ Table of Contents

πŸ”Ή Backend Development

Systems Programming

Enterprise & JVM Languages

Web Backend

Functional & Specialized

πŸ”Ή Frontend Development

Core Technologies

Frameworks & Libraries

Performance

πŸ”Ή Database & Data

SQL Databases

NoSQL & Big Data

πŸ”Ή Mobile Development

πŸ”Ή DevOps & Infrastructure

Cloud & Deployment

Security

πŸ”Ή AI & Data Science

πŸ”Ή Development Tools & Practices

Version Control & Collaboration

Scripting & Automation

Performance & Architecture

πŸ”Ή Specialized Languages


πŸ”Ή Backend Development

Systems Programming

πŸ–₯️ C Best Practices


πŸ–₯️ C++ Best Practices


πŸ¦€ Rust Best Practices


Enterprise & JVM Languages

β˜• Java Best Practices


πŸŒ€ Kotlin Best Practices


πŸŒ€ Scala Best Practices


πŸ–₯️ C# Best Practices


Web Backend

🟒 Node.js Best Practices


🐍 Python Best Practices


πŸ’Ž Ruby Best Practices


πŸš‚ Rails Best Practices


🐘 PHP Best Practices


🎯 Laravel Best Practices


🟣 NestJS Best Practices


Functional & Specialized

πŸ§ͺ Elixir Best Practices


🐹 Go (Golang) Best Practices


🍎 Swift Best Practices


🍏 Objective-C Best Practices


πŸͺ Perl Best Practices


πŸͺΆ Lua Best Practices


🎨 Frontend Development

Core Technologies

🌐 HTML Best Practices


🎨 CSS Best Practices


🎨 SASS Best Practices


πŸ“œ JavaScript Best Practices


🟦 TypeScript Best Practices


Frameworks & Libraries

βš›οΈ ReactJS Best Practices


πŸ“± React Native Best Practices


πŸ–ΌοΈ Vue Best Practices


πŸ…°οΈ Angular Best Practices


⚑ Next.js Best Practices


⚑ Nuxt Best Practices


Performance

πŸš€ Frontend Performance Best Practices


πŸ—„οΈ Database & Data

SQL Databases

πŸ“Š SQL Best Practices


🐘 PostgreSQL Best Practices


🐬 MySQL Best Practices


NoSQL & Big Data

πŸ“¦ NoSQL Best Practices


πŸ“± Mobile Development

πŸ“± Flutter Best Practices


🎯 Dart Best Practices


☁️ DevOps & Infrastructure

Cloud & Deployment

☁️ AWS Best Practices


πŸ“¦ Microservices & Cloud-Native Best Practices


Security

πŸ” API Security Best Practices


πŸ” DevSecOps & Security Best Practices


πŸ€– AI & Data Science

πŸ€– AI/ML Engineering Best Practices


πŸ€– AI Tools for Developers


πŸ› οΈ Development Tools & Practices

Version Control & Collaboration

πŸ”Ž Code Review Best Practices


πŸ§‘β€πŸ€β€πŸ§‘ Team & Collaboration Best Practices


Scripting & Automation

🐚 Bash Script Best Practices


Performance & Architecture

πŸ—οΈ System Design Best Practices


⚑ Performance & Scalability Best Practices


🌍 Specialized Languages

πŸ“Š R Best Practices


πŸ†• What's New

Stay updated with the latest additions to this repository:

Recent Updates

  • βœ… Enhanced README β€” Added quick navigation, featured resources, and usage guides
  • βœ… AI/ML Section β€” Expanded with LLM best practices and MLOps resources
  • βœ… Security Focus β€” Added DevSecOps and API security best practices
  • βœ… Performance Guides β€” New frontend performance and scalability resources
  • βœ… Modern Frameworks β€” Added Next.js, Nuxt, and NestJS best practices

Coming Soon

  • πŸ”œ Video Tutorials β€” Curated video resources for visual learners
  • πŸ”œ Code Examples β€” Practical code snippets demonstrating best practices
  • πŸ”œ Interactive Checklists β€” Ready-to-use checklists for code reviews
  • πŸ”œ Language Comparison β€” Side-by-side best practices across languages
  • πŸ”œ Community Picks β€” Top-voted resources from contributors

🌟 Community & Support

πŸ’¬ Get Involved

We believe in the power of community! Here's how you can participate:

🀝 Ways to Contribute

  • πŸ“ Submit Resources β€” Found a great article or guide? Share it!
  • πŸ› Report Issues β€” Broken links or outdated content? Let us know!
  • πŸ’‘ Suggest Improvements β€” Ideas for better organization or new sections?
  • ⭐ Star the Repo β€” Show your support and help others discover this resource
  • πŸ”„ Share β€” Spread the word on social media, blogs, or with your team

πŸ“’ Discussions

  • Questions? Open a GitHub Discussion
  • Ideas? Share your thoughts in the Ideas category
  • Showcase β€” Share how you're using these best practices in your projects

πŸ† Contributors

A huge thank you to all our contributors! πŸ™


πŸ“ˆ Star History

Star History Chart


πŸ’‘ Related Resources

Looking for more? Check out these complementary resources:


🎯 Repository Stats

Last Commit Contributors Forks Watchers


🀝 Contributing

Contributions are always welcome! πŸŽ‰ Before contributing, please read the Contribution Guidelines.


οΏ½ Support This Project

If you find this repository helpful, here are some ways you can show your support:

⭐ Star This Repository

Click the ⭐ button at the top of this page β€” it helps others discover this resource!

πŸ”„ Share With Others

🀝 Contribute

See our Contributing Guidelines to add your favorite resources!

β˜• Sponsor

If this project has saved you time or helped your career, consider sponsoring to support continued maintenance and updates.


οΏ½πŸ“œ License

CC0 This project is licensed under Creative Commons Zero v1.0 Universal (CC0 1.0) β€” Public Domain Dedication.


❓ Frequently Asked Questions

How often is this repository updated?

This repository is actively maintained and updated regularly. We add new resources as they emerge and remove outdated ones. Check the What's New section for recent updates.

Can I suggest a resource?

Absolutely! We welcome contributions. Please read our Contributing Guidelines and submit a pull request with your suggestions.

Are these practices suitable for beginners?

Yes! We've organized resources for all skill levels. Beginners should start with the How to Use section and focus on style guides first.

How do I know which resources to prioritize?

Check out our Featured Resources section for must-read guides. Also, resources from well-known organizations (Google, Airbnb, etc.) are generally excellent starting points.

Can I use this for my team?

Definitely! Many teams use this repository as a reference for establishing coding standards. Feel free to share relevant sections with your team or use them in onboarding materials.

Is this repository language-specific?

No, we cover 30+ programming languages and frameworks. Use the Table of Contents or Quick Links to navigate to your preferred technology.

How can I stay updated with new additions?

  • ⭐ Star and Watch this repository on GitHub
  • Check the What's New section periodically
  • Follow the repository for notifications

πŸ“œ License

CC0 This project is licensed under Creative Commons Zero v1.0 Universal (CC0 1.0) β€” Public Domain Dedication.


Made with ❀️ by developers, for developers

⬆ Back to Top