I am considering learning Go. As far as I know about it, it's a systems language geared toward parallel programming. (correct me if I'm wrong)

  • Should I have a very good understanding of C in order to be good Go programmer?
  • How much systems concepts (*nix OS concepts) I need to master before delving into Go
  • What other things I should know/learn before starting Go
  • 4
    It's much more likely that you acquire a good understanding of a concept by doing practical work related to it in a real programming language than that learning it in the abstract gives you a head start for a programming language. Humans are embodied creatures - start programming now! May 20, 2013 at 6:24
  • It's often more important to know what you don't know as what you actually know. I'd add to Mat's answer that your questions indicate that you know (or know that you don't know) plenty to get started. As Kilian said there's nothing better than actually doing the work to learn how to do the work. May 20, 2013 at 6:38
  • Sharing your research helps everyone. Tell us what you've tried and why it didn’t meet your needs. This demonstrates that you’ve taken the time to try to help yourself, it saves us from reiterating obvious answers, and most of all it helps you get a more specific and relevant answer. Also see How to Ask
    – gnat
    May 20, 2013 at 6:40
  • Go is designed to be easy to lean, so you don't need any special preparations - just go ahead and learn it. Should be easy.
    – Idan Arye
    May 20, 2015 at 13:04
  • Seriously, just go to tour.golang.org/welcome/1 and do the tutorial. It takes about one afternoon. In the end you'll learn go. You won't be a master yet but you'll get a feel of the language.
    – slebetman
    May 20, 2015 at 14:08

2 Answers 2


Go isn't specifically a "systems programming language", it's a general purpose programming language.

You don't need any prior knowledge of C to get started, it's not very close to C at all (even syntactically).

You don't need specific systems concepts (Unix or otherwise) either. A fair understanding of how to get things done on the command line and how to use a text editor are pretty much all you need - and since you can do the Tour of Go entirely from your favorite browser, even that's not required.

Go would be fine as a first programming language (except maybe that Go being a relatively young language, you might find a bit less documentation and tutorials around than for others, and the tools/ecosystem might have a few more rough edges).

All you need is time to go through tutorials and introductory material on golang.org and elsewhere, patience, and curiosity.


Go can be a lot easier to learn when compared to C. The only thing that may throw you off is pointers. I wrote a blog post that aims to be an introduction to pointers and in depth explanation of what they do.

A few pointer pointers.

  • I used to be a very good C programmer some years ago. But after I started full time python programming -- I never went back to C. So pointers is no problem for me.
    – treecoder
    Aug 12, 2013 at 6:11
  • 4
    Most of the developers I know who end up absolutely adoring Go actually come from a python/ruby background. Which is kind of ironic considering one of the core motivations to develop Go was to replace C++, and most C++ developers I know dislike Go. talks.golang.org/2012/zen.slide#1
    – mortdeus
    Aug 19, 2013 at 5:00
  • Rob Pike has written a very good blog post that tries to explain why C++ developers do not like Go - Less is exponentially more.
    – jhominal
    May 20, 2015 at 12:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.