Skip to content

Latest commit

 

History

History
167 lines (129 loc) · 6.78 KB

README.md

File metadata and controls

167 lines (129 loc) · 6.78 KB

Golang Advanced Roadmap

Welcome to the comprehensive roadmap for advancing your Go (Golang) skills beyond the basics! Building upon the foundational knowledge covered in the beginner section, this roadmap offers a diverse array of advanced topics, tools, and concepts to deepen your understanding and proficiency in Go development. Whether you're interested in web development, systems programming, distributed systems, microservices or exploring cutting-edge techniques, this roadmap provides a roadmap for your continued growth and mastery of Go. Let's dive in and elevate your Go programming expertise to the next level!

Give a Star! ⭐

If you find this project useful for learning or starting your own solution, we would greatly appreciate it if you could give it a ⭐ star.
Thank you for your support!

Roadmap

Roadmap

Resources

  1. Prerequisites

  2. General Development Skills

    • Learn GIT, create a few repositories on GitHub, share your code with other people
    • Know HTTP(S) protocol, request methods (GET, POST, PUT, PATCH, DELETE, OPTIONS)
    • Learn about implementation of a basic Authentication
    • Read a few books about algorithms and data structures
    • Solid principles, architectural & design patterns, ecc
    • Basics of software testing (unit, integration, e2e)
    • SQL
  3. CLI Tools

    1. cobra
    2. urfave/cli
  4. Web Frameworks + Routers

    1. Beego
    2. Chi
    3. Echo
    4. Fiber
    5. Gin
    6. Revel
  5. Databases

    1. Relational
      1. SQL Server
      2. PostgreSQL
      3. MariaDB
      4. MySQL
      5. CockroachDB
    2. Cloud Databases
    3. Search Engines
    4. NoSQL
  6. ORMs

    1. Gorm
    2. Xorm
  7. Caching

    1. GCache
    2. Distributed Cache
      1. Go-Redis
      2. GoMemcached
  8. Logging

    1. Log Frameworks
    2. Log Management System
    3. Distributed Tracing
  9. Real-Time Communication

    1. Centrifugo
    2. Melody
  10. API Clients

    1. REST
    2. GraphQL
  11. Good to Know

  12. Testing

    1. Unit, Behavior, Integration Testing
      1. GoMock
      2. Testify
      3. GinkGo
      4. GoMega
      5. GoCheck
      6. GoDog
      7. GoConvey
      8. Dockertest
    2. E2E Testing
  13. Task Scheduling

  14. MicroServices

    1. Message-Broker
    2. Building message-driven
    3. Frameworks
    4. RPC
  15. Go-Patterns

Contribution

The roadmap is built using Draw.io. Project file can be found at ./go-advanced/golang-advanced-roadmap.drawio.xml file. To modify it, open draw.io, click Open Existing Diagram and choose xml file with project. It will open the roadmap for you. Update it, upload and update the images in readme and create a PR (export as png with 400% zoom and minify that with Compressor.io).

  • Open a pull request with improvements
  • Discuss ideas in issues
  • Spread the word

License

License: CC BY-NC-SA 4.0