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, Reqres, or even SoapUI. All excellent options.
Or you could spend an evening take A Tour of Go and follow a tutorial like this one 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.
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, net/http, or use one of the many mature, excellent frameworks for Go:
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 help clean up your formatting, and testing is built right in.
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. 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 - A one-stop center for Go Resources
- Go Core Language - Courses from beginner to expert
- Introducing Go - An amazing Go book for beginners
- The Go Programming Language - A deeper dive for learning the Go language
- The Go Bootcamp
Also, here are 10 places 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!. I'll help you out in any way I can. Till then, Go build some cool stuff!!
Top comments (17)
Hello Jeremy, I wanted to say good things about the article, it contains good aspects but as others said, it lacks research...and can lead developers to bad decisions, e.g.
martini (deprecated)
with 11k stars and thegorilla/mux
with 12.5k stars but you ignored kataras/iris that Go developers support and trust with 18.8k stars and hundreds of feature requests(!), despite the fight against it when it was initially published. It shaked the Go community to think deeper and see what a tool like that can offer, nowadays many frameworks follows the Iris API and copy its features.Please do research of issues, stars, community, google trendings and e.t.c. before publishing an article like that.
Thanks,
Gerasimos Maropoulos. Author of Iris
I didn't "Ignore" Iris, I have never heard of it. I will check it out.
I listed the frameworks I have used and am familiar with. And Martini is no longer being maintained, but there are still many people using it, and it's worth looking at to learn from.
Hey Makis,
I just wanted to say great job with Iris!
I wish I knew it earlier before I used echo. Although echo is actually good too.
Cheers
Hello Petros, thanks man. Its never too late for a change though 🤠
No.
Go is great for web services, there's no need for an article to prove that, but I think most of the frontend developers out there are already familiar with Javascript/Typescript.
I don't feel like there's a specific language web devs should start their backend journey with, that's non-sense, but if there was one: why wouldn't they start with NodeJS, the ecosystem is rich, has a vibrant community and the language + building tools + best practices are very similar, if not the same.
So, why not start with baby steps and focus on the actual new backend topics you have to learn than the language and the platform itself?
I think people should choose languages by trying it themselves.
Or based on the problem they want to solve.
I am currently looking at the differences between Node, Python, Java and Go as backend languages.
Try .net core, graphql with hotchocolatte is really nice!
Oh cool I did not know about that one. Actually my thought process has changed now. I am trying to expand my skillset by learning a new language and not just for backend development. Also for use cases and future proofing. For example learning Python and Java would open the door to Android App development.
Using this for reference insights.stackoverflow.com/survey/...
Flutter would be much cooler (crossplatform app development and works really good) or if android only then I suggest you kotlin with jetpack, python is overrated, I mean fo data science it is cool but I wouldnt use it for anything else.
I don't doubt that its cool in fact I already have some courses on Flutter and Dart which I have had for a long time but never started. However if I am to learn something new then there needs to be job prospects available for it. Just searching on a few job boards brings up hundreds of hits for Python and Java jobs. More than Go, Kotlin and Rust.
If I was to learn Flutter is it going to lead to more job opportunities or will they just end up as personal side projects because not enough companies are hiring developers that use that tech stack? That is my concern.
I understand, I think we are from different countries, and that results in different needs in the tech field 🙂
I think the language doesn't matter.
In the end we should focus more on the libraries, communities and the ecosystem. For example, Python is a poor choice for web dev (slower adoption of new web techs in the community, not statically typed, etc), but the only (ok, an extrapolation, but you get it) viable choice for data science.
As for Go, a pretty solid choice for web dev, but certainly not all full stack devs should learn Go, that's non-sense.
Very weird list of reasons. I can think of a bunch of languages that would come up first to pair for a front-end dev. Only the speed is a kind of differentiator to Python, Ruby, and others. Everything else can be aplied to most languages.
Good article! I'm going to get at look at Go right inspired by your article. Here in Brazil it has no much attention, but I think it will be a good choice for a project of mine.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.