“Go is not a language“ for everything, ”Google created it to solve specific problems.”
Ilnaz Gilyazov, co-founder of AIMS and author of the program “ Golang-developer from scratch ” Netology
Why switched to Go . When we deployed a large number of microservices in Java / Kotlin, memory consumption greatly affected the cost of hardware. Cost optimization has led to the search for less resource-intensive alternatives. They tried Go - they reduced memory consumption several times. At the same time, we are not giving up Java / Kotlin, since you can neatly integrate all this together within the framework of the microservice architecture.
Why companies are switching to Go from other languages . Go is simpler than many languages and allows even large teams to create supported code without losing the quality of the code base, which is why companies pay attention to it. Usually it all starts with an experiment from the series "but if we don’t try to rewrite this piece to Go, they say that it will become faster / more efficient / consume less iron." If the experiment was successful, they continue to implement Go, rewriting other pieces, or starting to develop new services immediately on it. The promised opportunity to easily create a backend, optimized for high loads, encourages you to try the language when developing from scratch. But you need to understand that Go is not a language "for everything", Google created it to solve specific problems.
What is the threshold for entering Go and what you need to be able to . The entry threshold is low because Go was designed for quick study and application. There is no complicated syntax and many ways to do the same thing.
If we talk about backend development, then the set of knowledge is more or less typical:
the language itself and its infrastructure: syntax, standard library, connection of external dependencies;
- Git
- understanding of the work of frontend (web and mobile) and backend;
- network stack;
- SQL or one of NoSQL databases - depending on what is used in the company;
- Linux
- auto tests, CI / CD;
- microservices;
- Docker, Kubernetes.
The more a specialist knows, the better. Therefore, caching systems (for example, Redis), Messaging (RabbitMQ, Kafka), logging and so on will not be superfluous.
Often companies in their vacancies require knowledge of Python / PHP / another language, as well as "experience or the desire to learn / switch / write on Go".
How much demand and how much Golang developers earn . According to HeadHunter, in Russia there are more than 1800 job vacancies for developers at Golang. The average salary of a junior specialist is 80 thousand rubles.
Among employers you can see Yandex, Mail.ru, Rambler, Avito, Ozon, MTS, Megaphone. But there are not enough developers who could close these vacancies.
“Go's popularity is growing for only one reason - there are no alternatives.”
Rinat Khabibiev, Project Manager at TalentTech
Why switched to Go . He started working on Go due to the need for a more productive solution compared to popular scripting languages.
About the popularity of Go. Go is actively used for only one reason - there are no other alternatives. Everything that exists at the moment is either less productive (PHP, Ruby, Python), or too complicated (C / C ++, Rust), or has problems with the platform and compatibility with Linux (Java / Kotlin, Apple Swift).
About difficulties in immersion . Problems with immersion in Go, as a rule, do not arise for anyone. And since Go is mainly about web development, web developers get into it very quickly. As an auxiliary tool, Go is very good.
But at Go I really miss the things that I actively use in other programming languages and the lack of which interferes with my productive work: the lack of full support for the OOP paradigm and generics.
Is it possible to become a Golang developer without experience . You can become a Go developer without any experience with Go. With a good knowledge of another language, mastering Go is quite easy - an experienced employer knows this. In addition, often they look not at the experience with a specific tool, but at the cumulative experience in the industry.
“Go is developing rapidly, many childhood sores have already been resolved”
Alexander Tipugin, Senior Developer, PIRL Ventures
Why started working on Go . The reason to try Go was just at the intersection of personal interest in the language and the needs of the company. Then a new project arose, connected with the internal infrastructure, and the main requirements for it were high performance, multithreading, and the convenience of writing network code. Ruby and PHP, which at that time were the main tools in the company, did not really fit into these requirements. Since at that moment I just started looking in the direction of Go, it was decided to try it.
About the popularity of Go . I think a big role was played by the microservice mod. Dragging hefty frameworks from the world of monoliths into small, highly specialized services did not make sense, and everyone began to pay attention to Go. The popularity of Kubernetes, Docker, and other major Go projects also helps the language in this regard. Go is developing rapidly, many childhood sores have already been resolved, or are about to be decided in the second version.
About difficulties in immersion . Go is a fairly simple language. Minimum language constructs, only 25 keywords. No need to manage memory (there is a GC) and threads (there is a scheduler). To sit down and understand from scratch what is happening in the code, you do not need so much time. Another thing is that many things at first seem rather strange, some concepts (channels, goroutines) may not be immediately clear and obvious.
Is it possible to become a Golang developer without experience . Many companies are now actively looking for people with any background in terms of languages, if they are ready to learn Go and switch to it. Some of the familiar developers went on to Go like this.
“Go is a simple but very powerful language with excellent documentation and well-designed built-in tools.”
Danil Naumov, Backend developer of QIWI Blockchain Technologies
Why started working on Go . I started writing on Go because of the needs of the company. We implemented a project in which microservice architecture was chosen. Go was great for our purposes.
About the popularity of Go . Go is a simple but very powerful language with excellent documentation and well-designed built-in tools.
The language was created by Google as an alternative to C ++ and Java for application developers in the context of company tasks. Since Google needs a large number of developers, the language should be quite simple, with a low entry threshold, but at the same time fast, with the most convenient infrastructure. This largely determined the rapid growth and implementation of this language outside of Google.
About difficulties in immersion . No, because Go has very detailed documentation, as well as many good books, articles, a huge number of manuals and a large community.
Is it worth learning Go as the first language. In my opinion, yes. This is a fairly low-level, but at the same time easy-to-learn language that will allow you to understand the principles of memory, multithreading, and process synchronization.
Is it possible to become a Golang developer without experience. Finding a job without experience is quite difficult. But at the same time, given the growing need for developers on Go, it seems to me that knowledge of this language will be a big advantage.
From the editors
Go is a simple and convenient language, not overloaded with complex constructions, which is suitable for quick learning. With its help, applications are created in the most popular areas. Demand for Golang developers is growing, but there are not enough specialists.
At the “ Golang-developer from scratch ” course, we teach you how to develop microservices and full-fledged applications - students create an application for organizing a corporate social network from scratch and master a popular profession.