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 did I learn Go? The Talon.One API is written in Golang including unit tests and an interpreter.
What should you 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.
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've done 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.
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.
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:
Features that are left out of Go:
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 much simpler.
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.
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.
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 get in touch!