Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How to Start as Golang Developer?
11 points by v_ignatyev 13 days ago | hide | past | favorite | 8 comments
Hi everyone,

I'm a software developer with decades of experience making web apps and various side gigs (mostly Python, JS, TypeScript, Kotlin, Java).

I spent a whole year (from time to time) learning Rust and Tokio and finally decided that I can't find a job, because opportunities around Rust are either crypto- or hardware- related, all out of my focus.

How could I start as a Golang developer? I passed few tutorials and have got familiar with Golang syntax and felt in love with Goroutines. I am currently reading the Designing Data-Intensive Applications by Martin Kleppmann.

What is the best way to kickstart my path as Gopher? Thank you.






Back in the day when I started coding in Go, I basically did the Go Tour on the official website, and watched some of videos.

I paid close attention to learning how to write idiomatic Go. I also read a bunch of code from the std lib.

Then after a few days I jumped right into coding. I started with a simple CLI to do some heave lifting in our Ci/CD pipelines (for work) and then I also started coding some web apps for my perdonal use.

After this, I started designing and building a few systems that were needed internally at my workplace and I also started training other folks in Go.

That was back in 2017. Today we have several big systems running in production and a strong team of engineers all working and enjoying Go :)

I would recommend to anyone a similar path:

- learn the basics

- build and release things

- teach others who may be interested

At that time my background was as software engineer (~17 years) mainly writing Java and some Javascript


https://gobyexample.com/ was helpful for me to understand what is possible with Go. Visit a topic that seems interesting or completely unfamiliar and try to think of a small exercise that will allow you to practice the topic.

Another thing I did was implement a common tool like `ls` or `tree` or `grep` using go. This will allow you to compare the output and performance of your program against the binaries provided by the OS.

Lastly, there are some really cool libraries out there (see https://charm.sh/) with great communities. Try building something small and ask for feedback in the Discord channel.


Having experience in other languages it should be fairly easy to pick up. I personally bought the book Let's Go by Alex Edwards. It's a project based book where he teaches you Go by writing an API server. I found it really beneficial as I was familiar with API development but not with Go. After that I used what I learnt to create some side projects and the rest is history.

If you feel you're already past that point of learning then I'd just create little projects. Re-write one of your old ones in Go, and things like that.


Seconded. Check out both books by the author, they’re great!

https://lets-go.alexedwards.net/ https://lets-go-further.alexedwards.net/


Thank you for following up with the links, I also made a mistake in my post. It was Let's Go Further but hopefully OP figured that out.

Thank you!

Try learning Test driven development in conjunction with Go via “learn to with tests” [0]

I’ve been following along and it’s pretty powerful as you’re coming at go with a fresh programming paradigm, which helps the language features to take hold in your mind

[0] - https://quii.gitbook.io/learn-go-with-tests


I was applying for a job once, picked up a ticket in their OSS backlog, and learned go by following the official tutorial and trying to solve the ticket concurrently. Worked fine. Had the gist of the whole scene in a couple of days.

Given your background go should be easy to pickup.




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

Search: