Skip to content

Instantly share code, notes, and snippets.

@kokizzu
Forked from codenoid/go-resource.md
Created May 10, 2021 06:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kokizzu/6468d695984930628a9ea1ece22db2ca to your computer and use it in GitHub Desktop.
Save kokizzu/6468d695984930628a9ea1ece22db2ca to your computer and use it in GitHub Desktop.
Some resources that have helped me learn golang over the last 3 years.

Some resources that have helped me learn golang over the last 3 years. I taught myself golang, it was a lot of grinding initially but I went through with it because I really liked the simplicity yet ability to be bare metal.

Here are some resources that have helped me in my journey. Sharing them here in case anyone is looking for study materials. [Disclaimer: These are links/notes collected over 3 years and not necessarily in order of expertise, but I will try my best to order them starting from basic ones and moving to more advanced resources]

Firstly - https://golang.org/ and https://golang.org/doc/ .Learn straight from the gophers mouth.

https://www.udemy.com/share/1013gw/ - Todd Mcloeds Course which I completed. Lays a strong and solid foundation of the most important golang concepts. I hope hes been updating his course. Highly recommend.

Tip: I created a repo while following the course. Helped drill the concepts in. Feel free to use this or or make something similar as your learn.

https://www.digitalocean.com/community/tutorial_series/how-to-code-in-go - Useful if you want some clear instructions on system setups, etc.

https://exercism.io/tracks/go - A recruiter introduced me to this. This is a cool and free resource to both practice Algo DS and learn important go concepts

https://blog.golang.org/ - Talk about dedication. Ive never seen such meticulous dedication to a programming languages blog. Some imp links include:

https://blog.golang.org/slices

https://blog.golang.org/slices-intro

https://blog.golang.org/strings

https://jordanorelli.com/post/32665860244/how-to-use-interfaces-in-go

https://eli.thegreenplace.net/2019/simple-go-project-layout-with-modules/

https://itnext.io/structuring-a-production-grade-rest-api-in-golang-c0229b3feedc

https://dave.cheney.net/ - This is a great GREAT resource, I've come to this blog more times than I can remember. Mostly visited by me - https://dave.cheney.net/2018/05/29/how-the-go-runtime-implements-maps-efficiently-without-generics#:~:text=The%20classical%20hashmap%20is%20an,drawn%20from%20the%20Go%20implementation).

https://research.swtch.com/interfaces

https://pdos.csail.mit.edu/6.824/schedule.html - The BIG one. I tried to follow the MIT Distributed Systems course, although I could only follow through till week 6. This taught me more (and gave more headaches) than any other resources here. If you can follow the course through and back it up with implementations, it will reflect highly on your profile.

Some resources for job search -

https://golang.cafe/

https://www.golangprojects.com/

https://www.welovegolang.com/

Misc - [They were on my bookmarks and could be a little vague but sharing them just in case]

https://www.reddit.com/r/golang/comments/dd7s3j/what_is_the_time_complexity_of_using_slices_as/

https://stackoverflow.com/questions/2818852/is-there-a-queue-implementation

[edit]Books that I have referred -

https://www.amazon.com/Kubernetes-Best-Practices-Blueprints-Applications/dp/1492056472/ref=sr_1_3?crid=1BV0YDTRDFRJX&dchild=1&keywords=kubernetes+best+practices&qid=1620273964&sprefix=kubernetes+best+practices%2Caps%2C489&sr=8-3

https://www.amazon.com/Concurrency-Go-Tools-Techniques-Developers/dp/1491941197/ref=sr_1_3?dchild=1&keywords=concurrency+in+go&qid=1620273872&sr=8-3

[edit]Resources mentioned by people in the comments -

u:tmack8080 - " ..an excellent introduction to Go by Microsoft: https://docs.microsoft.com/en-us/learn/paths/go-first-steps/ "

u:dacjames - "I would also add reading source code of Hashicorp projects if you're more of a learn by example kind of person like I am."

https://docs.microsoft.com/en-us/learn/paths/go-first-steps/ http://go101.org

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment