7 Reasons Why Front End Developers Going Full Stack Should Choose Go
Tags: webdev, beginners, programming, learning
Published: 2020-08-14 15:49:52

---
title: 7 Reasons Why Front End Developers Going Full Stack Should Choose Go
published: true
description: You want to become a full stack developer someday, so where do you start? Google's Go language is an excellent place.
tags: webdev, beginners, programming, learning
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/22bx6afv7y7ak5xblq5v.jpg
canonical_url: https://www.jeremymorgan.com/blog/golang/why-choose-go-backend/
---
So you're a front end developer, and you want to learn some backend stuff. You want to become a *full stack* developer someday, so where do you start? Google's Go language is an excellent place.

For instance, let's say you want to build a RESTful API to test the calls from your React Application. You could use [JSONPlaceholder](https://jsonplaceholder.typicode.com/), [Reqres](https://reqres.in/), or even [SoapUI](https://www.soapui.org/). All excellent options.

Or you could spend an evening take [A Tour of Go](https://tour.golang.org/welcome/1) and follow a [tutorial like this one](https://tutorialedge.net/golang/creating-restful-api-with-golang/) to build a local API that does exactly what you want, and mocks whatever you want. Right on your local machine!

Here are some reasons front end developers should choose Go as their jumping in point when going to full stack.

## 1. Go Is Cross-Platform

Where do you develop applications? Likely Mac, Windows, or Linux. Go works identically on all of these platforms. You can build Go applications in whatever environment you'd like, and push them to whatever environment you choose.

I like to "Jump around" operating systems when I'm working, and I've found the experience to be similar across all the platforms.

## 2. The Learning Curve

Go is a programmer-friendly language. If you're familiar with JavaScript, it isn't a far leap to learn Go.

``` Go
sum := 0
for i := 1; i < 5; i++ {
    sum += i
}
fmt.Println(sum)
```
It's very similar to C, and although it's a compiled language, it's not as finicky as C or C++. As you get more advanced, you'll see many differences from JavaScript. But when you're starting, much of it will be very intuitive.

## 3. Web Applications Are First Class with Go

If you're a front-end developer, obviously web applications will be a big concern for you. The Go ecosystem stacks up very well in this respect.

You can build REST or GraphQL APIs in Go several ways. You could do it with the [Go Standard Library](https://bit.ly/GoStandardLibrary), [net/http](https://golang.org/pkg/net/http/), or use one of the many mature, excellent frameworks for Go:

* [Gin Gonic](https://gin-gonic.com/)
* [Sinatra](https://github.com/go-martini/martini)
* [Gorilla](http://www.gorillatoolkit.org/)
* [Beego](https://beego.me/)

If you want to build robust, stable web applications in Go, you have some great options.

## 4. Clean Code

The Go language doesn't force good code but certainly encourages it. The compiler is opinionated and requires some conventions that ensures your code looks consistent. Built-in tools like [fmt](https://blog.golang.org/go-fmt-your-code) help clean up your formatting, and [testing is built right in](https://golang.org/pkg/testing/).

## 5. Get a Lot Done Quickly

Go is a language that offers the great performance of a language like C++ with the simplicity of a language like Python. It's easy to get a lot done with a small amount of code in Go. You won't find yourself doing a ton of low-level stuff that takes thousands of lines of code to complete. While some view this simplicity as hampering, it's great when you're starting out.

## 6. Abundant Learning Resources

There are so many places you can learn Go, it's difficult to choose where to start. Here's your answer: [A Tour of Go](https://tour.golang.org/welcome/1). This is the first stop for learning.

Once you start looking for resources to learn more, there are a ton of great places to go.

* [Go.dev](https://go.dev/) - A one-stop center for Go Resources
* [Go Core Language](https://bit.ly/GoCoreLanguage) - Courses from beginner to expert
* [Introducing Go](https://amzn.to/30O2vfA) - An amazing Go book for beginners
* [The Go Programming Language](https://amzn.to/2Clug5E) - A deeper dive for learning the Go language
* [The Go Bootcamp](http://bit.ly/35sYBYV)


Also, here are [10 places to Learn GoLang](https://www.jeremymorgan.com/tutorials/golang/how-to-learn-golang/).

## 7. Performance

Ok, so most of the "why you should use Go" articles start with performance. This is because Go is *screaming fast*. I didn't mention it first because if you're a front end dev just getting your toes in the water, it doesn't matter how fast your todo backend app is while you're learning.

However, as you gain proficiency and start building real applications, Go scales up nicely. Whether it's a small microservice or an extensive enterprise application, Go offers superior performance. Go features:

* Concurrency
* No virtual runtime
* Efficient value storage
* Compiler optimizations
* Non-blocking I/O

If you're going to take the leap to the backend, why not hitch your wagon to something fast and powerful?

## Summary

If you're a front-end developer and curious about "making the jump" to full stack, you should give Go a look. It's easy to create basic applications to get started and easy to build out something "real" fast.

If you decide to jump into Go, [let me know what you think!](http://bit.ly/JeremyCMorgan). I'll help you out in any way I can. Till then, Go build some cool stuff!!