Saturday, May 21, 2011

Table of Contents

Section 1: Audience, Programming, Go Philosophies, Setup

Installing and configuring Go

Section 2

A step by step approach to Hello World in Go Updated for Go1
Typical early errors while programming Go
Compiling and linking with Makefile Outdated since go command.

Section 3

Memory, variables in memory, and pointers
Control structures - Go if else statement
Control structures - Go for loop, break, continue, range Updated for Go1
Control structures - Go switch case statement
Control structures - Go defer statement
Multiple return values from Go functions Updated for Go1

Section 4 - Objected Oriented Programming in Go? Or lack thereof

Structs in Go - instead of classes in Object Oriented Programming
Anonymous fields in structs - like object composition
Methods on structs
Inheritance and subclassing in Go - or its near likeness
Multiple inheritance in Go
Interfaces in Go
Interfaces in Go - Part 2: Aiding adaptable, evolutionary design
Polymorphism in Go
Summary of object oriented programming goodness in Go, without the pain

Section 5 - Goroutines, channels: parallel programming and communications

Channels in Go
Channels in Go - range and select

Section 6 - Web Programming

Web Programming with Go - first web Hello world Updated for Go1
Go Templates Updated for Go1
Go Templates - Part 2 Updated for Go1
Go Templates - Part 3 - Template Sets Updated for Go1
Using an external api in a Go web program - urlshortener from Google APIs
OAuth2: 3-legged authorization in a Go web application

Section 7 - Google AppEngine for Go

Google AppEngine for Go - Installation and Setup
Analysing a Google AppEnginge for Go program
Using an external api in a Go AppEngine program - urlshortener from Google APIs


Go packages and goinstall - creating and using your own packages in Go
gotest - unit testing and benchmarking Go programs Updated for Go1
Formatting Go code with go fmt Updated for Go1
GoLang talks and tutorials - videos New
My favorite ideas in the Go ecosystem - a usability perspective New


  1. It would be very convenient to go to the next and previous article.

  2. Thank you Миша.
    Since the articles can be read and learnt from in any order, it made more sense to have a table of contents. I hope you will still be able to use it well.

  3. Yes thank you has become much easier))

  4. Very good tutorial, how about continue it explainning some pkg like io, html, ...

  5. thank you LSK. will definitely do - had to take a break to get some other things done.

  6. Great stuff, really shows off the simplicity of the language! Is there a way to directly download these as a big package for offline use?

  7. Great tutorials, softens the cap between java and Go :). Thanks!

  8. Great Articles with great examples. Would love to read some on go reflection.

  9. Thanks Mr. Sathish, your tutorial is very insightful!

  10. Great work, the most lucid tutorials I have come across. Thank you very much.

  11. thanks, it's very nice.

  12. Just wanted to add my thanks for these articles, you've done a great job.

  13. I love these tutorials and I wish there were more. Probably the best resource for learning go I have found on the web.

  14. u r great. thank u.

  15. wow! Great Job :) Thank u man

  16. Hello,
    Do you want me to forward to your .blogspot ?

  17. Great tutorials, thank you!
    Some examples need to be updated for GO v1

  18. Thanks a lot fot these great tutorials.....Pardeep Bajwa

  19. can you add rpc and jsonrpc?

  20. Hi, can you make a direct link to:
    somewhere in menu on the right?

    Cheers, thanks for nice tutorial!

  21. good set of tuts, some code needs to be updated for Go 1

  22. Can you please update template code to Go1 .. thanks

  23. As a total newbie I am afraid I got myself totally lost by attempting to follow the section "Checking we have it setup right". After much suffering I realize that trying to get the command 8g to work misled me now that the go command is available. It would seem essential for you to update this section so that everyone can benefit from the rest of your hard work! Thanks

    1. Sorry about that, have updated that page now to reflect go1.

  24. The best Go tutorial, I found so far. Thank you so much Satish!

  25. Can you add some tutorial on image manipulation,such as image thumbnail (resizing) and stitching two images with some angle, text to image conversion etc. Unfortunately I found there is almost no tutorials in golang talking about these areas. Thanks in advance.

    1. I've not used the image package at all and it might take me a while to write about it - especially since I'm also slightly backed up on some other posts that I want to put up based on what I'm working on right now.

      But maybe you can look at some of the existing image related go projects on github for some guidance before I can get to a proper article:

  26. Hi Sathish,

    I am desperately trying to write a small program for image manipulation, but unable to make any progress. I tried whatever I have learnt so far. I am trying to do something :

    Your help will be highly appreciated, if you can show some light . This look something that may be helpful, but I have no idea how to use it.

  27. I've attempted an answer at the stackoverflow page that you seem to have posted at. Hope that helps somewhat.

    1. I have made changes in grahics-go package to rotate the image and place it a particular x, y axis value. It was hardcoded to place rotated image over the destination image.

      However I am trying to set up the opacity of the source image when I paste it on destination image. I am using DrawMask function. But It seems I have missed something. I have posted the question at as well. Any clue what am I missing?

  28. Thanks Sathish. I will take it forward :)

  29. Thanks! Very helpful tutorial

  30. Hi Sathish,

    Thanks a lot. This is very helpful :)

  31. Sathish -
    I learned more from your GoLang tutorials then several resources on Go and a book on Go combined.

    Thank you for explaining these concepts in such a clear, easy to understand concept. It is too bad others, in particular, book writers cannot explain things in such a way as you do.

    Outstanding job!

  32. This is must have tutorial. I'm reading this after got oficial "A Tour of Go" and write some silly programs and this tutorial helps me get lever higher as here is some features described i didn't see yet.
    Thanks for this tutorial and it's good written so I can understand it :))

  33. Hello! I'm trying to learn go, but all the information I've found so far was kinda confusing, but I found this site and is very useful and all the tutorials are well explained.

    Thanks a lot! :D

  34. sir can you please give a post on use and importance of go language for future

  35. Fantastic! Thank you for your effort!

  36. This comment has been removed by the author.

  37. Good site found fruitful for education.

  38. This is a very great start to Golang. I think you should put all the resources on Github so that other Go programmer can add in or make correction. Btw thanks for the awesome tutorial.

  39. I wish every one a very Happy New Year 2017.

  40. It is amazing and wonderful to visit your site. Thank you for sharing this information.


If you think others also will find these tutorials useful, kindly "+1" it above and mention the link in your own blogs, responses, and entries on the net so that others also may reach here. Thank you.

Note: Only a member of this blog may post a comment.