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
5
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.
3