Thank you for your interest in contributing to the Common Questions project! This guide will help you get started with contributing to our programming interview and development resource hub.
- Improve existing content: Fix errors, add clarity, update outdated information
- Add new questions: Contribute new interview questions or coding challenges
- Enhance code examples: Add implementations in different programming languages
- Create new guides: Write comprehensive guides on new topics
- Fix bugs: Report and fix issues in the documentation or scripts
- Improve infrastructure: Enhance CI/CD, testing, or deployment processes
- Add features: Implement new functionality or tools
- Review content: Help review pull requests for accuracy and quality
- Answer questions: Help other contributors in discussions and issues
- Share feedback: Provide suggestions for improvements
- Basic understanding of Git and GitHub
- Familiarity with Markdown for documentation
- Knowledge of relevant programming languages for code examples
-
Fork the repository
# Click the "Fork" button on GitHub or use GitHub CLI gh repo fork hkevin01/Common-Questions -
Clone your fork
git clone https://github.com/YOUR_USERNAME/Common-Questions.git cd Common-Questions -
Install development dependencies
pip install -r requirements-dev.txt npm install -g markdownlint-cli2 markdown-link-check
-
Create a new branch
git checkout -b your-feature-branch
- Clear and concise: Use simple, direct language
- Comprehensive: Cover topics thoroughly with examples
- Practical: Focus on real-world applications and scenarios
- Inclusive: Use inclusive language and diverse examples
- Multiple languages: Provide examples in popular languages when possible
- Complete and tested: Ensure all code examples work and are complete
- Well-commented: Include explanatory comments for complex logic
- Best practices: Follow language-specific best practices and conventions
- Consistent headers: Use appropriate heading levels (H1, H2, H3)
- Code blocks: Use proper syntax highlighting for code blocks
- Links: Verify all external links work and are relevant
- Table of contents: Include TOCs for longer documents
- Clear problem statement
- Multiple solution approaches
- Time and space complexity analysis
- Test cases and edge cases
- Implementation in multiple languages
- Both behavioral and technical questions
- Framework for answering (STAR method for behavioral)
- Example responses and explanations
- Common follow-up questions
- Current and relevant security threats
- Practical prevention techniques
- Code examples showing vulnerabilities and fixes
- Testing and validation approaches
- Industry-standard methodologies
- Practical implementation guides
- Benefits and trade-offs
- Real-world examples and case studies
content/
├── coding-challenges/ # Programming challenges and solutions
├── interview-questions/ # Behavioral and technical interview prep
├── web-security/ # Security vulnerabilities and prevention
└── development-practices/ # Best practices and methodologies
- Use ATX headers (
#,##,###) - Include alt text for images
- Use relative links for internal references
- Follow the markdownlint configuration in
.markdownlint.json
- Follow PEP 8 for Python code
- Use consistent indentation (2 spaces for YAML, 4 for Python)
- Include type hints for Python functions
- Add docstrings for functions and classes
# Check Markdown formatting
markdownlint-cli2 "**/*.md"
# Validate internal links
python scripts/check_internal_links.py
# Test code examples
python scripts/validate_code_examples.py# Extract and test Python examples
python scripts/extract_code_examples.py
pytest tests/extracted_examples/ -v# Install dependencies for local preview
npm install -g @11ty/eleventy
# Build and serve locally
npx @11ty/eleventy --serve- Review your changes: Ensure all content is accurate and well-formatted
- Test thoroughly: Run all validation scripts and tests
- Check links: Verify all external and internal links work
- Follow guidelines: Ensure your contribution follows all style guidelines
-
Commit your changes
git add . git commit -m "Add comprehensive guide on [topic]"
-
Push to your fork
git push origin your-feature-branch
-
Create pull request
- Use the pull request template
- Provide clear description of changes
- Link to related issues if applicable
- Mark as draft if work is in progress
- Automated checks: CI/CD pipeline will run automated tests
- Content review: Maintainers will review for accuracy and quality
- Feedback incorporation: Address any feedback or requested changes
- Approval and merge: Once approved, your contribution will be merged
- Technical correctness: All technical information must be accurate and current
- Source verification: Cite authoritative sources for claims and best practices
- Code testing: All code examples must be tested and working
- Peer review: Have technical content reviewed by experts when possible
- Completeness: Cover topics comprehensively with sufficient detail
- Clarity: Ensure content is understandable to the target audience
- Examples: Include practical examples and use cases
- Structure: Organize content logically with clear navigation
- Functionality: Code must work as intended
- Readability: Code should be clean and well-documented
- Best practices: Follow language-specific conventions and best practices
- Security: Ensure code examples don't introduce security vulnerabilities
Use the bug report template and include:
- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Browser/environment details
Use the content improvement template for:
- Accuracy corrections
- Clarity improvements
- Missing information
- Outdated content
Use the feature request template for:
- New content areas
- Tool improvements
- Infrastructure enhancements
- User experience improvements
- GitHub Issues: For bug reports and feature requests
- GitHub Discussions: For general questions and community discussion
- Pull Request Comments: For specific feedback on contributions
All contributors will be recognized in:
- README.md contributors section
- Git commit history
- GitHub contributor statistics
- Code contributors: Those who contribute code, documentation, or content
- Community contributors: Those who help with reviews, discussions, and support
- Special thanks: Those who provide significant guidance or resources
This project adheres to a code of conduct that ensures a welcoming and inclusive environment for all contributors. By participating, you agree to:
- Be respectful: Treat all community members with respect and kindness
- Be inclusive: Welcome people of all backgrounds and experience levels
- Be constructive: Provide helpful feedback and support
- Be collaborative: Work together towards common goals
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project maintainers. All complaints will be reviewed and investigated promptly and fairly.
By contributing to this project, you agree that your contributions will be licensed under the same license as the project (MIT License).
For your first contribution:
- Fork the repository
- Set up development environment
- Find an issue or improvement to work on
- Create a feature branch
- Make your changes following the guidelines
- Test your changes thoroughly
- Submit a pull request using the template
- Address any feedback from reviewers
Thank you for contributing to Common Questions! Your efforts help make this resource better for developers worldwide. 🎉