Overview
Learn Go is an open-source educational project that welcomes contributions from the community. Whether you’re fixing typos, adding examples, or translating content, your contributions help thousands of developers learn Go.The Learn Go repository is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Repository Information
Source Repository
Main course materials and examples
Author
@inancgumus on Twitter
Blog
In-depth Go articles and tutorials
YouTube
Video tutorials and explanations
Ways to Contribute
1. Report Issues
Found a bug, typo, or unclear explanation?Check existing issues
Search the GitHub issues to see if it’s already reported.
Create a new issue
If not found, create a new issue with:
- Clear title
- Location (file path and line number)
- Description of the problem
- Screenshots if applicable
2. Fix Bugs or Typos
Small fixes are always welcome!Quick Fix Workflow
3. Add Examples
Have a great example that illustrates a concept? What makes a good example:- Clear and concise
- Demonstrates one concept well
- Includes comments explaining the code
- Follows Go conventions and style
- Works without external dependencies (when possible)
4. Improve Documentation
Help make explanations clearer:- Add clarifying comments to complex examples
- Create README files for sections that lack them
- Improve existing documentation
- Add diagrams or illustrations (where appropriate)
5. Translate Content
The course is being translated into multiple languages! Currently supported:- English (complete)
- Spanish (work in progress)
- Chinese (work in progress)
6. Add Exercises
Create new exercises to help learners practice: Exercise guidelines:- Should reinforce concepts from the section
- Include both the problem and solution
- Provide hints when appropriate
- Clearly state the learning objective
Pull Request Process
Coding Standards
Go Code Style
Follow standard Go conventions:File Headers
Include the standard header in all Go files:Comments
- Use clear, concise comments
- Explain the “why” not just the “what”
- For examples, comments should aid learning
Directory Structure
Follow the existing structure:What Not to Contribute
- Major restructuring without discussion - Open an issue first
- External dependencies unless absolutely necessary
- Overly complex examples - Keep it simple for learners
- Duplicate content - Check if it already exists
- AI-generated translations - Translations need human review
- Promotional content - Keep it educational
Review Process
- Automated checks: Your PR will run automated tests
- Code review: Maintainers will review your changes
- Feedback: You may be asked to make adjustments
- Merge: Once approved, your PR will be merged
Be patient! Maintainers are volunteers and may take time to review. Feel free to politely ping if there’s no response after a week.
Community Guidelines
Be Respectful
- Welcome newcomers
- Be patient with questions
- Provide constructive feedback
- Assume good intentions
Be Helpful
- Answer questions when you can
- Share your knowledge
- Point people to relevant resources
- Celebrate others’ progress
Be Professional
- Keep discussions technical and educational
- Avoid off-topic conversations
- Respect the code of conduct
- Give credit where due
Recognition
Contributors are valued members of the community!- Your contributions help thousands of learners
- You’ll be listed in the repository’s contributors
- You’ll gain experience with open source
- You’ll deepen your own Go knowledge
Getting Help
Need help with your contribution?GitHub Issues
Ask questions about contributing in the issues
Reach out to @inancgumus
Course Community
Connect with other learners and contributors
FAQ
Check frequently asked questions
First-Time Contributors
New to open source? Perfect!Thank You!
Every contribution, no matter how small, makes a difference. Thank you for helping make Go more accessible to learners worldwide!Remember: The best way to learn is by doing. Contributing to this repository is both learning and giving back to the community.
Related Resources
FAQ
Frequently asked questions
Best Practices
Learn Go best practices
Troubleshooting
Common issues and solutions
GitHub Repo
Visit the repository