Hacker News new | ask | show | jobs
by james-skemp 1312 days ago
A number of applications I really enjoy are written in Go, so it's been on mind to learn enough to be dangerous.

Has anyone had good success with any particular resources?

8 comments

If you're really new to Go, but familiar with other programming languages, I would recommend starting with the tour (https://go.dev/tour/welcome/1) - I think it explains some of the differences between Go and other languages pretty well and gets you up to speed on the basics fast, without having to install anything. Once you have done that, you can continue with the "official" documentation listed on https://go.dev/doc/ which includes "Effective Go" (some useful recommendations) and the FAQ.
If you want a challenge, try "The Go Programming Language" by Alan A.A. Donovan and Brian W. Kernighan.

It's somewhat akin to what "The C Programming Language" (K&R) is to C. It's a fairly practical and on-point, and has a lot of (somewhat tricky) exercises, while still providing a complete overview of the language.

https://gobyexample.com/ is one of the best interactive "courses".
I maintain Go 101 books. Here are some articles highlighted by me: https://twitter.com/go100and1/status/1589549426988969986
A good place to start is their official "tour".

I found it a little bit redundant coming from already knowing common programming constructs and C, but it was still a good introduction to the syntax and especially for the more unique features like Goroutines.

https://go.dev/tour/list

The Donovan book is fine. It may be slightly outdated in places but nothing that would trip up a developer with prior experience in some other language. One of Go's virtues is it's simple enough you can be comfortable and productive with just a weekend of learning.
To start, The Little Book of Go is an awesome free resource. Then, to get a more in-depth look, the book Let's Go is also pretty good. Also, the Go Documentation itself.
Do you mean The Little Go Book?

https://www.openmymind.net/The-Little-Go-Book/

What are some examples? I've always thought of Go as a server-side language.
I built Homechart using Go and documented why/how here: https://homechart.app/blog/tech-stack-api/
I really loved your blog post. Also, your site is an interesting combination of bold, clean and simple. Really well done.
fzf, hub, syncthing. Possibly also scc if for some reason you're not running tokei or loc.

Maybe also frp and hugo.

Gitea and Hugo come to immediate mind. I thought there was a game framework that used Go as well (which I can't find at the moment).

As a .NET guy, I've actually started looking for tools built in Go since I know they'll be easy to run across the platforms I use, without extra dependencies.

Game framework you may be thinking of is called ebitengine.
.NET applications can be built as a single static binary, although IME it's usually much heavier than a Go alternative.

https://learn.microsoft.com/en-us/dotnet/core/deploying/sing...

I also exclusively host dotnet applications on Linux (and also develop them there), and it works just fine.

Oh I know, and I'll develop in .NET if I want to build something for Windows/Mac/Linux. (Similarly I've been hosting personal dotnet applications in Linux, although I've been building them on Windows/Mac. As someone who started back in .NET 2.0, it's amazing.)

But if I'm looking for a tool someone else built, .NET options are usually pretty slim.

Docker and corresponding tools.

https://github.com/abiosoft/colima

And many others, really.

> Docker and corresponding tools. https://github.com/abiosoft/colima

Neither sound like "applications I really enjoy". More like applications you suffer.

> And many others, really.

How about examples?

>More like applications you suffer. >How about examples?

Sorry, I'm not here to tease or please you.

I'm pretty sure you can use google or github search to look for popular Go based projects and try them out.

> Sorry, I'm not here to tease or please you.

So you replied to a comment asking for examples, without examples, because... your life passion is to be an ass?

No, I replied with examples that you personally find invalid for your personal reason.

And I'm not eager to bruteforce the "right answer".

Well, how about Kubernetes?
To update an old saw, Kubernetes is proof you can write Java in any language.
Caddy, Gotify, Photoprism