Skip to content

Commit c036214

Browse files
committed
initial commit
0 parents  commit c036214

File tree

3 files changed

+160
-0
lines changed

3 files changed

+160
-0
lines changed

ReadMe.md

+159
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
# GoLang Developer Roadmap
2+
3+
> Roadmap to becoming a [GoLang](https://golang.org/) developer in 2019:
4+
5+
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 GoLang developer. I made this chart as a tip for everyone who asks me, "What should I learn next a GoLang developer?"
6+
7+
## Disclaimer
8+
9+
> 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 hip and trendy. You should grow some understanding of why one tool would be better suited for some cases than the other and remember hip and trendy does not always mean best suited for the job
10+
11+
## Give a Star! :star:
12+
13+
If you like or are using this project to learn or start your solution, please give it a star. Thanks!
14+
15+
## Roadmap
16+
17+
![Roadmap](./golang-developer-roadmap.png)
18+
19+
## Resources
20+
21+
1. Prerequisites
22+
23+
- [GoLang](https://golangbot.com/)
24+
- [Dep](https://github.com/golang/dep)
25+
- [SQL](https://www.w3schools.com/sql/default.asp)
26+
27+
2. General Development Skills
28+
29+
- Learn GIT, create a few repositories on GitHub, share your code with other people
30+
- Know HTTP(S) protocol, request methods (GET, POST, PUT, PATCH, DELETE, OPTIONS)
31+
- Don't be afraid of using Google, [Power Searching with Google](http://www.powersearchingwithgoogle.com/)
32+
- Read a few books about algorithms and data structures
33+
- Learn about implementation of a basic Authenctication
34+
- Solid principles, etc
35+
36+
3. Web Frameworks + Routers
37+
38+
1. [Echo](https://github.com/labstack/echo)
39+
2. [Beego](https://github.com/astaxie/beego)
40+
3. [Gin](https://github.com/gin-gonic/gin)
41+
4. [Revel](https://github.com/revel/revel)
42+
5. [Chi](https://github.com/go-chi/chi)
43+
44+
4. Databases
45+
46+
1. Relational
47+
1. [SQL Server](https://www.microsoft.com/en-us/sql-server/sql-server-2017)
48+
2. [PostgreSQL](https://www.postgresql.org/)
49+
3. [MariaDB](https://mariadb.org/)
50+
4. [MySQL](https://www.mysql.com/)
51+
2. Cloud Databases
52+
- [CosmosDB](https://docs.microsoft.com/en-us/azure/cosmos-db)
53+
- [DynamoDB](https://aws.amazon.com/dynamodb/)
54+
3. Search Engines
55+
- [ElasticSearch](https://www.elastic.co/)
56+
- [Solr](http://lucene.apache.org/solr/)
57+
- [Sphinx](http://sphinxsearch.com/)
58+
4. NoSQL
59+
- [MongoDB](https://www.mongodb.com/)
60+
- [Redis](https://redis.io/)
61+
- [Apache Cassandra](http://cassandra.apache.org/)
62+
- [LiteDB](https://github.com/mbdavid/LiteDB)
63+
- [RavenDB](https://github.com/ravendb/ravendb)
64+
- [CouchDB](http://couchdb.apache.org/)
65+
66+
5. ORMs
67+
68+
1. [Gorm](https://github.com/jinzhu/gorm)
69+
2. [Xorm](https://github.com/go-xorm/xorm)
70+
71+
6. Caching
72+
73+
1. [GCache](https://github.com/bluele/gcache)
74+
2. Distributed Cache
75+
1. [Go-Redis](https://github.com/go-redis/redis)
76+
2. [GoMemcached](https://github.com/bradfitz/gomemcache)
77+
78+
7. Logging
79+
80+
1. Log Frameworks
81+
- [Zap](https://github.com/uber-go/zap)
82+
- [GLog](https://github.com/google/glog)
83+
- [ZeroLog](https://github.com/rs/zerolog)
84+
- [Logrus](https://github.com/sirupsen/logrus)
85+
2. Log Management System
86+
- [Sentry.io](http://sentry.io)
87+
- [Loggly.com](https://loggly.com)
88+
89+
8. Real-Time Communication
90+
91+
1. [Socket.IO](https://socket.io/)
92+
93+
9. API Clients
94+
95+
1. REST
96+
- [Gentelman](https://github.com/h2non/gentleman)
97+
- [GRequests](https://github.com/kennethreitz/grequests)
98+
- [heimdall](https://github.com/heimdal/heimdal)
99+
2. [GraphQL](https://graphql.org/)
100+
101+
10. Good to Know
102+
103+
- [Validator](https://github.com/chriso/validator.js/)
104+
- [Glow](https://github.com/pytorch/glow)
105+
- [GJson](https://github.com/tidwall/gjson)
106+
- [Authboss](https://github.com/volatiletech/authboss)
107+
- [Go-Underscore](https://github.com/ahl5esoft/golang-underscore)
108+
109+
11. Testing
110+
111+
1. Unit, Behavior, Integration Testing
112+
1. [GoMock](https://github.com/golang/mock)
113+
2. [Testify](https://github.com/stretchr/testify)
114+
3. [GinkGo](https://github.com/onsi/ginkgo)
115+
4. [GoMega](https://github.com/onsi/gomega)
116+
5. [GoCheck](https://github.com/go-check/check)
117+
6. [GoDog](https://github.com/DATA-DOG/godog)
118+
6. [GoConvey](https://github.com/smartystreets/goconvey)
119+
2. E2E Testing
120+
- [Selenium](https://github.com/tebeka/selenium)
121+
- [Endly](https://github.com/viant/endly)
122+
123+
12. Task Scheduling
124+
125+
- [Gron](https://github.com/roylee0704/gron)
126+
- [JobRunner](https://github.com/bamzi/jobrunner)
127+
128+
13. MicroServices
129+
130+
1. Message-Broker
131+
- [RabbitMQ](https://www.rabbitmq.com/tutorials/tutorial-one-javascript.html)
132+
- [Apache Kafka](https://www.npmjs.com/package/kafka-node)
133+
- [ActiveMQ](https://github.com/apache/activemq)
134+
- [Azure Service Bus](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview)
135+
2. Message-Bus
136+
- [Message-Bus](https://github.com/vardius/message-bus)
137+
- [GoKit](https://github.com/go-kit/kit)
138+
- [Micro](https://github.com/micro/go-micro)
139+
140+
15. [Go-Patterns](https://github.com/tmrts/go-patterns)
141+
142+
143+
## Wrap Up
144+
145+
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.
146+
147+
Idea from : [ASP.NET Core Developer Roadmap](https://github.com/MoienTajik/AspNetCore-Developer-Roadmap)
148+
149+
## Contribution
150+
151+
The roadmap is built using [Draw.io](https://www.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](https://compressor.io/compress)).
152+
153+
- Open a pull request with improvements
154+
- Discuss ideas in issues
155+
- Spread the word
156+
157+
## License
158+
159+
[![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/)

golang-developer-roadmap.png

650 KB
Loading

0 commit comments

Comments
 (0)