Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
"Learning Go" Book (miek.nl)
106 points by espeed on May 4, 2012 | hide | past | favorite | 36 comments


Could you please put this up on Leanpub (http://www.leanpub.com)? It will take care of the compiling for you, and I'd like to pay a bit for it.

Also, leanpub is awesome (I'm not affiliated with them, but I'm a very happy user).


If anyone is interested in Go (Golang) we're hiring Go developers at Torbit. http://torbit.com/jobs


The latest version should be at the bottom of this list: http://www.miek.nl/files/go/


I'm tempted to learn Go just because it's a new language and I think it would be awesome to be part of a budding community.


I highly recommend Go. It is the most fun I've had learning a new language since Java.

(I don't enjoy Java programming nearly as much these days as I think the language has mostly languished and I'm not too fond of the FactoryOfFactoryFactories culture that has grown around it).

Even if you don't end up using Go a lot, it will make you question a lot of the complexity that is taken for granted in other languages you use and probably also make your code better in other languages (not in the sense that you will do things exactly the way you do them in Go, that would be foolish to attempt, but in the way you may begin to approach things with a fresh set of eyes in terms of how much flexibility you can maintain while also starting from a small set of simple concepts).


[deleted]


Like others have pointed out, the latest daily version is at the bottom of the list. But I dont know enough of Go to know if the book content is up to date with the latest changes.


Hm, page 66 of the newest version uses a deprecated example but with the note "TODO: aint true anymore in Go1 (vector is gone)".

So it's not completely up to date, but the author recognizes it.


Whoops, I missed that. The commits are fairly recent so I'm guessing the new version is pretty well up-to-date.


I was expecting a book on learning Go, the game. I was disappointed.

I hate it when people name new things with a name that obviously conflicts with something else that's likely to be known and discussed in the same community.


I think someone said this the last time someone posted something about the Go language. Considering that we talk about the Go language here a lot more than the game, it shouldn't be a surprise.

I'm gonna tag this message so I can point it out the next time someone expresses their disappointment. Not so easy to search for the word go. :-)

TAGS: golang, disappointment, go, melling



I get a chuckle out of Google's final status regarding the naming conflict with Francis McCabe's Go!: http://code.google.com/p/go/issues/detail?id=9


Summary: Go!, $!?@ yourself.



My favorite book for learning Go (the game)...

http://www.amazon.com/Learn-Play-Go-Masters-Ultimate/dp/1453...


I hate when people name things common names/words like "Go". "Dart" is also bad.


Then Java, Chrome, Ruby, Rails, Bash, Curl, Python, Apache, Lynx, Scheme, Unity and dozens of other project names must infuriate you :).


Mostly it's an annoyance at trying to find relevant web pages on the topic. In that regard the more prolific the software the more it can get away with a common word as a name.

"Go" is the worst of the bunch by far. "Dart" is pretty bad, "Java", "Chrome" and "Python" would be just as bad but they have swarmed the search results so much that it doesn't bug me.


I find that using the search terms "go language" (without the quotes) works a lot better--at least for any conflationary n-gram based search engine, like Google. Just think of it as a type annotation :)


No to mention "C", the worst of all.


Or Apple.


I am reading this book now and will send a commit with typo fixes when finish.

Even after Effective Go and gotour I found a lot of useful information in this book. Thanks the author for his work! :)


>I am reading this book now and will send a commit with typo fixes when finish.

Oh, the irony.


Looks good and up to date. Just the right amount of pages for a programming language book, IMO it shouldn't exceed 200 pages. Thank you.


What is the canonical way to convert this to ASCII? Can it be done with nroff? Tried l2a and hevea. No luck.


I think the best way can be to convert the source to html using LaTeX2HTML and then convert the html files to txt using

    cat foo.html | w3m -dump -T text/html > foo.txt 
(w3m a text based web browser)


I would use pdftotext on the pdf file. It's not perfect, but neither is stripping commands from the .tex source (macros will not be evaluated).


This is a great resource, especially for being free and the source being available, but in case miek is reading... what is with the left margin on even numbered pages?


On first glance this looks excellent, but I have to question producing a book on a language so steeped in unicode with a markup language that makes it so unwieldy.

eg. $\Phi{}$ = Φ


To be fair, $\Phi$ is actually not the same as Φ (U+03A6). Not to mention all the other advantages of LaTeX, which I am not going to rehash.


Don't we have successors such as XeTeX which are capable of handling unicode?

How do you type Φ in LaTeX?


If you \usepackage[utf8x]{inputenc}, a lot of UTF-8 input will just work.

Greek is an exception though; it would always interpret e.g. α as \textalpha, which doesn't exist, instead of \alpha, which does. The only solution I could find was to write a simple package defining each of the \textgreek as \greek.

There are a few other exceptions (⨂ and ↦ come to mind), and I haven't worked out how to add support for a character (instead of just redefining it like I did with the greek). But the situation is mostly okay. I currently have this line in a LaTeX document for example, and it works fine:

Given $R$-modules $M,N$, their tensor product is an $R$-module $M ⊗_R N$ together with an $R$-bilinear map $b: M × N → M ⊗_R N$ satisfying: whenever $φ:M×N→P$ is bilinear, $∃!g:M⊗N→P$ linear such that $φ = g∘b$.


Sure, if you manage to enter the character XeTeX will be happy to typeset it. It's not a LaTeX issue, it's an editor/desktop issue. I don't really know about maths, but I'm guessing keyboard input for many special symbols is hard. I use (Xe)LaTeX to input phonetic symbols, and I hung onto tipa (the LaTeX package that gives you IPA from ASCII) for a long time, until I discovered C-x RET C-\ ipa-x-sampa.


You can also use TeX mode so that typing \phi will give you φ :).

Also, the very first time you use an input mode, you can just type C-\ to choose it. After you choose one C-\ toggles between that and the standard one, which is why you need C-x RET C-\ to choose another one instead.


True, but φ is still not the same as $\phi$ :) (and it still doesn't save on typing).

I know about C-\, but I set up my input modes via 'LaTeX-mode-hook anyway :)


I don't know--entering \Phi isn't that bad. You don't need the {} bit, which would be annoying to type. With a clever editor (Emacs) you can even automatically complete it most of the time, so it isn't a real issue.

It's also certainly easier than learning a new keyboard layout (KDE actually offers a keyboard for APL, for example) as long as you're not going to be using too many special characters.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: