Sarah is a backend developer who has been part of the Talon.One team since January 2017.
I've been working with Golang for the last six months and I want to share insights from my experience, why it's a language worth learning, plus a few tips and tricks to make it less painful.
Why I learned Go? The Talon.One API is written in Golang including unit tests and an interpreter.
What you should remember? Embrace the differences between Golang and Object-Oriented languages.
The code is easy to maintain, modify and manage. It may be a completely new programming language to learn, but the philosophy behind Go was to create a language which allows developers to follow an important software design practice: simplicity.
My background and experience
Working at Talon.One for the last six months has been my first experience as a full-time developer. Having studied electrical engineering at MIT, I have had some programming courses and written programs for past projects.
Before Talon.One, my development experience was mainly with Python, which is regarded as a very readable and understandable language syntax-wise. I was quite apprehensive about my new challenge, having worked with a comprehensive language in the past.
The best strategy for learning
I admit it was tricky to relinquish old habits at first. For my first tasks, I dove into one Golang topic at a time. My first project involved inputs with many different types and this lead me to utilize interfaces heavily.
These tasks pushed me but were not overwhelming and I would highly recommend a similar strategy for new Gophers.
It quickly became apparent that Golang is easy to read and start coding right away
What's different about go
The true inspiration for Go comes from C meaning it uses basic data types, uses pointers, and compiles very efficiently.
Similarities to Object Oriented languages:
- If statements
- For loops.
Features that are left out of Go:
- No inheritors
- No generics
- No exceptions
These excluded language features can be very useful and convenient, but everything is possible in Golang. It might require more lines of code or more thought, but the result will be simple.
What I like about the structure
A great feature of Go is the package structure. Functions and types created in different files are global throughout a package. That means you can keep your functions organized in many files without the hassle of using import statements throughout a directory.
It also means that when a package is imported, all the public functions and types can be accessed. This flexibility allows teams to arrange package structures as they wish.
What made learning less painful
Practice tutorials are immediately applicable to real world development, which was a huge bonus.
Even though Go is a relatively new language, there is an extensive amount of documentation, tutorials, and tools. A Tour of Go is a detailed tutorial provided on the Golang website; it goes through all the key features and uses.
A frustration I had with Python was the jump from learning to development.
Developing software for real-world applications required a new set of skills. Go was a completely different experience. The tutorials alone provide skills that are vastly applicable to real-world development.
First I completed the tutorials and a small project. Then almost immediately, I began contributing to an API with features and complex architecture.
The simple structure of Golang makes it easier to grasp abstract parts of a complex API.
My advice is to practice and use all of the resources available online.
Some tips and resources for a new Gopher:
- The Go Programming Language website
- The Go Programming Language (Book) - book with everything you need to know about Golang
- Go By Example - walk-throughs of Go's builtin functions, package functions, and other features
- Meetups like Women Who Go Berlin - join a Meetup in your city to meet fellow Gophers and gain practical experience. Talon.One recently hosted a successful Go study group
Final words of wisdom
I use Golang nearly every day, and am so glad Talon.One chose to work with this language. Go has been a key part in my smooth transition into full-time software development.
Go is a powerful tool; it is an efficient compiler language for development and enables developers to easily produce simple code. On-boarding new developers, collaborating with colleagues, and integrating into an existing project is easier. What more could a developer ask for?
If you have questions about Go or working at Talon.One, leave a comment or get in touch!
Subscribe to our newsletter
Get insights and inspiration for mastering promotion marketing.
Thanks for subscribing to the Talon.One newsletter!
This is Part 1 in the series Behind the Scenes at Talon.…
As developers, we are always looking for ways to get the job…
Buggy software sucks. That's why we use End-to-End testing at Talon.One…
Check out our Community Guidelines.