Skip to content

Instantly share code, notes, and snippets.

@codenoid
Created May 6, 2021 16:37
Show Gist options
  • Save codenoid/5e178dff2470eb12b9ad984d7211fcff to your computer and use it in GitHub Desktop.
Save codenoid/5e178dff2470eb12b9ad984d7211fcff 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