Instantly share code, notes, and snippets.

@lestrrat /stages.md
Last active Nov 24, 2018

Embed
What would you like to do?
Seven Stages of Becoming a Go Programmer
  • stage 1: You believe you can make Go do object oriented programming. You want to do this by using clever struct embedding.
  • stage 2: You believe goroutines will solve all of your problems. You want to use goroutines for anything and everything that you can, who cares if the code becomes a bit more complicated
  • stage 3: You believe that instead of object oriented programming, interfaces will solve all of your problems. You want to define everything in terms of interfaces
  • stage 4: You believe channels will solve all of your problems. You want to do everything from synchronization, returning values, and flow control using channels.
  • stage 5: You now believe Go is not as powerful as people claim it to be. You feel like you're stripped of all of the nice tools and constructs that other languages provide.
  • stage 6: You realize that stages 1~5 were all just your imagination. You just didn't want to accept the Go way. Everything starts to make sense.
  • stage 7: You are now at peace. You now write everything, including what you would've normally used Perl/Ruby/Python for, in Go. if err != nil no longer bothers you. You only use goroutines and channels when you must. You are one with the Gopher. You feel its glorious chi, and cry when you realize his mercy for allowing your to write code in such a majestic language.
@julianfrank

This comment has been minimized.

julianfrank commented Sep 15, 2017

Agreed

@gbbr

This comment has been minimized.

gbbr commented Sep 15, 2017

Love it! So true!!!

@dvrkps

This comment has been minimized.

dvrkps commented Sep 16, 2017

💯

@harkamals

This comment has been minimized.

harkamals commented Sep 16, 2017

Brilliant!

@danil

This comment has been minimized.

danil commented Oct 9, 2017

:-D

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