Roadmap to becoming a Go developer in 2020

Overview

Go Developer Roadmap

Roadmap to becoming a Go developer in 2020:

Below you can find a chart demonstrating the paths that you can take and the libraries that you would want to learn to become a Go developer. I made this chart as a tip for everyone who asks me, "What should I learn next as a Go developer?"

中文版 日本語版 Versão em Português do Brasil 한국어

Disclaimer

The purpose of this roadmap is to give you an idea about the landscape. The road map will guide you if you are confused about what to learn next, rather than encouraging you to pick what is hype and trendy. You should grow some understanding of why one tool would be better suited for some cases than the other and remember hype and trendy does not always mean best suited for the job.

Give a Star!

If you like or are using this project to learn or start your solution, please give it a star. Thanks!

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)
    • Don't be afraid of using Google, Power Searching with Google
    • Read a few books about algorithms and data structures
    • Learn about implementation of a basic Authentication
    • Solid principles, architectural & design patterns, ecc
    • Basics of software testing (unit, integration, e2e)
  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. Socket.IO
  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

Wrap Up

If you think the roadmap can be improved, please do open a PR with any updates and submit any issues. Also, I will continue to improve this, so you might want to star this repository to revisit.

Idea from : ASP.NET Core Developer Roadmap

Contribution

The roadmap is built using Draw.io. Project file can be found at golang-developer-roadmap.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

Issues
Owner
Ali Khalili
Full-stack developer
Ali Khalili
The Ultimate Workshop Track for #golang Developer

layout title nav_order description permalink default An Ultimate GopherLabs Hands-on Labs 1 An Ultimate GopherLabs Hands-on Labs / Join GopherLabs Com

Sangam Biradar 144 Nov 9, 2021
This is from the udemy course: Go: The Complete Developer's Guide (Golang)

Go Udemy course - "Go: The Complete Developer's Guide (Golang)" How to run the file: go run hello-world.go go run <filename>.go GO CLI commands: go ru

null 1 Oct 22, 2021
WeCTF 2020+ Source Code & Organizer's Writeup

WeCTF 2020+ Thank you all for participating! This README contains our writeup sketches. You can also share your writeup on CTFtime. Event Link: https:

WeCTF Organizers 23 Oct 25, 2021
connect to microsoft flight simulator 2020 using golang

msfs2020-go simconnect package msfs2020-go/simconnect connects to microsoft flight simulator 2020 using golang. cross-compiles from macos/linux, no ot

lian 340 Nov 15, 2021
Concurrent task runner, developer's routine tasks automation toolkit. Simple modern alternative to GNU Make 🧰

taskctl - concurrent task runner, developer's routine tasks automation toolkit Simple modern alternative to GNU Make. taskctl is concurrent task runne

null 144 Nov 24, 2021
Package githubv4 is a client library for accessing GitHub GraphQL API v4 (https://developer.github.com/v4/).

githubv4 Package githubv4 is a client library for accessing GitHub GraphQL API v4 (https://docs.github.com/en/graphql). If you're looking for a client

null 822 Dec 4, 2021
IBM Developer 中文网站文章备份

IBM中文网站文章备份 疑似IBM中文网站将要关闭(已删除) 全部文章索引 2D、3D、物理和网络.md Activiti–新一代的开源BPM引擎.md AI与安全性.md AI语言.md AmbariMetrics详解.md Ambari——大数据平台的搭建利器.md Ambari——大数据平台的

labulaka521 210 Nov 30, 2021
KintoHub is an open source build and deployment platform designed with a developer-friendly interface for Kubernetes.

What is Kintohub? KintoHub is an open source build and deployment platform designed with a developer-friendly interface for Kubernetes. Build your cod

KintoHub 23 Nov 24, 2021
SigNoz helps developer monitor applications and troubleshoot problems in their deployed applications

SigNoz helps developers monitor their applications & troubleshoot problems, an open-source alternative to DataDog, NewRelic, etc. ?? ??

SigNoz 5.2k Nov 28, 2021
Zadig is a cloud native, distributed, developer-oriented continuous delivery product.

Zadig Developer-oriented Continuous Delivery Product English | 简体中文 Table of Contents Zadig Table of Contents What is Zadig Quick start How to use? Ho

KodeRover 913 Nov 29, 2021
Zadig is a cloud native, distributed, developer-oriented continuous delivery product.

Zadig Developer-oriented Continuous Delivery Product ⁣ English | 简体中文 Table of Contents Zadig Table of Contents What is Zadig Quick start How to use?

KodeRover 30 May 12, 2021
A strongly typed HTML templating language that compiles to Go code, and has great developer tooling.

A language, command line tool and set of IDE extensions that makes it easier to write HTML user interfaces and websites using Go.

Adrian Hesketh 112 Nov 19, 2021
The Ultimate Workshop Track for #golang Developer

layout title nav_order description permalink default An Ultimate GopherLabs Hands-on Labs 1 An Ultimate GopherLabs Hands-on Labs / Join GopherLabs Com

Sangam Biradar 144 Nov 9, 2021
A simple, semantic and developer-friendly golang package for datetime

Carbon 中文 | English carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,支持链式调用和 gorm、xorm、zorm 等主流 orm。 如果您觉得不错,请给个 star 吧 github:github.com/golang-module/carbon g

null 1.5k Dec 6, 2021
go-awssh is a developer tool to make your SSH to AWS EC2 instances easy.

Describing Instances/VPCs data, select one or multiple instances, and make connection(s) to selected instances. Caching the response of API calls for 1day using Tmpfs.

kenju 5 Oct 11, 2021
A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption

A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption

null 64 Nov 28, 2021
Devstack is Razorpay's Developer Experience Solution for cloud on laptop

devstack Devstack is Razorpay's Developer Experience Solution for cloud on laptop What is Devstack At razorpay, we run all our workloads on kubernetes

Razorpay 92 Nov 19, 2021
Developer Self-Service Across Clusters

Monoskope (m8) Monoskope (short m8 spelled "mate") implements the management and operation of tenants, users and their roles in a Kubernetes multi-clu

finleap connect 5 Nov 22, 2021
Used gRPC for the first time, and it was a amazing developer experience

gRPC Used gRPC for the first time, and it was a amazing developer experience. Edge points of using gPRC which I felt: Structured Code Uniform request

Mrigank Anand 5 Oct 11, 2021
Transfer your local .ENV files for another developer

Zip/Unzip local .env file Transfer your local .ENV files for another developer. for Zip: run in root where .env files ./ziper_local_env created "resu

Фарид 1 Oct 20, 2021
This is from the udemy course: Go: The Complete Developer's Guide (Golang)

Go Udemy course - "Go: The Complete Developer's Guide (Golang)" How to run the file: go run hello-world.go go run <filename>.go GO CLI commands: go ru

null 1 Oct 22, 2021
GoFarm is an Application Development Framework for especially Backend Developer with Golang

What is GoFarm GoFarm is an Application Development Framework for especially Backend Developer with Golang. Our goal is to develop easier, standardize

Alvin Leonardo 1 Nov 23, 2021
A BPMN engine, meant to be embedded in Go applications with minim hurdles, and a pleasant developer experience using it.

A BPMN engine, meant to be embedded in Go applications with minim hurdles, and a pleasant developer experience using it. This approach can increase transparency for non-developers.

Martin W. Kirst 3 Nov 22, 2021
Camerdevs, is dev cameroonian developer platform.

camerdevs Camerdevs, is dev cameroonian developer platform. Features The platform includes the functionnalities bellow: A Catalogue cameroonian develo

OSS Cameroon 0 Nov 25, 2021
Help developer to sync between local file and remote apollo portal web since portal web is so messy to use

apollo-synchronizer Help developer to sync between local file and remote apollo portal web since portal web is so messy to use Features download names

yeqown 2 Nov 4, 2021
Koyeb is a developer-friendly serverless platform to deploy apps globally.

Koyeb Serverless Platform Deploy a Go Gin application on Koyeb Learn more about Koyeb · Explore the documentation · Discover our tutorials About Koyeb

Koyeb 0 Nov 27, 2021
The fantastic ORM library for Golang, aims to be developer friendly

GORM The fantastic ORM library for Golang, aims to be developer friendly. Overview Full-Featured ORM Associations (Has One, Has Many, Belongs To, Many

Yadhu Sasidharan 0 Nov 11, 2021
Go SDK for working with the Nightfall Developer Platform

Nightfall Go SDK nightfall-go-sdk is a Go client library for accessing the Nightfall API. It allows you to add functionality to your applications to s

Nightfall AI 7 Nov 24, 2021