Free Book: An Introduction to Programming in Go
golang-book.com
golang-book.com
My only regret is that this format makes it really hard to print in one motion. Could you provide a link for a PDF version?
The animal on the cover looks really hilarious too!
Where do most people go to buy PDFs? Is it really a large-enough market to worry about?
Other than that, all the ebooks I've bought from individual storefronts, often from having seen them on HN, have come as a PDF/epub/mobi bundle to work on any device.
If it's not DRM protected, but rather a "secure" PDF, you'll need some other tools that can remove the owner password. About.com has a list here: http://pcsupport.about.com/od/toolsofthetrade/tp/pdf-passwor...
You can also install a local version, I've been working through it, and it's great for fiddling with on the plane.
Edit: After reading the first few chapters, I made a false assumption. It looks like the book is aimed at people new to computing (or, at least, it doesn't make the assumption that the reader has programmed before).
I guess the target audience is programming novices who have never written anything like source code before. Go seems like a strange choice for a first language, being neither foundational (C, Assembler, Scheme/Lisp) nor front-end scripty (JS, Logo, Scratch).
I would add that in high schools we are still taught Pascal here in Poland. I was 15 years ago, and I heard that Pascal is still the first language.
Kindle: http://www.amazon.com/An-Introduction-Programming-Go-ebook/d...
Paperback: http://www.amazon.com/An-Introduction-Programming-Caleb-Doxs...
What did you use to write it? Nice job!
Not that installing Linux is difficult, just that A. I suspect we'll see a lot more people on Linux computers, especially in the developing world, and B. beginning programmers should be introduced to the concept of Linux as a programming environment
Go is dead simple to install to Linux via either binary or source. Even building it from scratch on non-standard Linux systems like embedded armv5 systems is easy. Basically if you have a non-broken gcc already, go will build just by invoking one single shell script they provide.
I write the code in Windows (Sublime Text 2), compile in Windows, but target GOOS=linux, GOARCH=ARM, GOARM=5 and end up with an executable that I can easily rsync and run over on the ARM device. The cross-compiling available in Go is much easier to setup initially than the usual situation of having to build an entire toolchain for your target.
I did a web search and came up with this https://sites.google.com/site/gopatterns/object-oriented/cla..., maybe the book should reference that somewhere early (maybe not because the intro seems to touch on computer programming in general so I would assume that it was for first-time programmers).
http://www.tiobe.com/index.php/content/paperinfo/tpci/index....
I like Go, and it gets a lot of good press. Is TIOBE not accurately portraying Go's popularity?, or is there some other explanation as to why few people use it?
Sorry, not related to the book (which looks cool, btw).
2. It lets you fiddle with the 'normalized comparison' to weight the sources differently. If you play right, you can make your favorite language win!
Not sure if stackoverflow tags are a great indicator. TIOBE tries to use job listings and google trends. Searching job listings/search engines for 'go' probably wouldn't return much results (because of the ambiguous name) which is why its a lot lower than it should be.
The two are not mutually exclusive. Rather, I'd think they're directly proportional. A very straightforward and simple yet popular language should have very few questions, which doesn't seem to be the case; conversely, brainfuck is particularly cryptic and should have many questions, yet it does not.
StackOverflow is admittedly .NET heavy, but since SV is somewhat anti-Microsoft, perhaps this will balance things out.
The key to Googlability for everything is to put the right context keywords. Nobody just google's "go" (or "java" for that matter). They google stuff like "go string type", "go programming", "go install", etc.
That said, the bare "go" search term gives the go website as the fourth result in Google when I try it.
I think if you could Google when Python was in it's infancy, you would get 100s results for pythons (the snakes) before you saw Python pages...
Google search algorithm is not so naive as to understand "go" as a generic token only. It can tell from context which pages are related to "go" the language and which merely use the verb "go". The reverse is how old engines used to work, Altavista and co, where you had tons of irrelevant exact matches.
It says:
Go also provides a shorter syntax for creating arrays:
x := [5]float64{ 98, 93, 77, 82, 83 }
We no longer need to specify the type because Go can figure it out. Sometimes arrays like this can get too long to fit on one line, so Go allows you to break it up like this:
However the type is specified as `float64`
float64 myfloat64array[] = new(float64[5], ...)
var x [5]float64 = [5]float64{ 98, 93, 77, 82, 83 }
But I explained ":=" earlier so I can see how that would be confusing.
The official Go website http://golang.org has everything you need, including the spec [1] and the insightful Effective Go [2].
http://www.amazon.com/An-Introduction-Programming-Go-ebook/d...
#container { padding:60px }
Btw, great resource, the more the merrier.Build from source? Any caveats?