/30-days-of-go

Daily exercises for 30 days to learn Go

Primary LanguageGo

30 Days Of Go

Learn the basics of Go in 30 days. This is a collection of exercises that I've used to learn Go. Here we will look into some baisc computer science topics and learn how to move bytes around!

Feedback is appreciated!

If you want to share your knowledge on how to write more idiomatic Go code, feel free to write me on twitter or create a pull request.

Writing tests is a good way to learn a new language. Pick your exercise, break the code or implement your own solution and make the tests pass. go test runs the tests go run .go to execute a exercise

(ノ◕ヮ◕)ノ Have fun!

Hello World

01-hello-world - Our very first Go program!

02-unit-tests - Yes we will unit test our examples. Go's shipped with a very good unit testing package called testing. We will also explore testify since it gives us assertion and mocking abilities.

03-functions - Funcitons in Go are first class citizens and supports many known patterns from functional programming. Let's learn the syntax of functions.

Go is all about types

04-slices - We want to be able to hold multiple values. Here we learn about the power of slices that are built on top of arrays.

05-maps - Go has maps. Let's check it out!

06-structs - Here we look into structs and how to create your own types!

07-interfaces - Polymorphism is a fancy word, lets put together a simple illustration.

Abstract data structures

08-lists - So far we've learned about some of the built in types and data structures in Go. Time to pracctice our new knowledge by implementing our own data structures. First out is Lists!

09-linked-lists - Linked list is an old fella, but still a very well known and used abstraction. Here we will create a simple version.

10-trees - Trees are very well known structures. Lets figure out how to traverese a tree.

11-binary-search-trees Binary trees are special in the way that each node can have a maximum number of two children. Here we will explore the famous Binary Search Tree.

Concurrency for the future

Go routins Channels

build a web server

--