Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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
share|improve this question
2  
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! –  Kilian Foth May 20 '13 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. –  Ask Bjørn Hansen May 20 '13 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 '13 at 6:40

2 Answers 2

up vote 13 down vote accepted

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.

share|improve this answer

Go can be alot 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.

share|improve this answer
    
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 '13 at 6:11
    
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 '13 at 5:00

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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