Go is one of the most popular programming languages. In this article we answer your questions about how you can learn Golang online and what the prospects for Go-developers are. Plus we show you all the necessary courses, books, links and YouTube channels.
The demand for Go language and its prospects
The “Hottest Programming Languages” section of the annual State of Software Engineers Hired report showed that engineers with Go development experience receive an average of nine interview requests, making Go one of the most popular programming languages in the world.
Let’s find out what Go is
Go (often also Golang) was developed by Google in 2009. The idea was to have a language with C++ efficiency, but with readability comparable to Python. Apart from Google, the Go language is used by Uber, Fabric, Sendgrid, Medium, Dropbox, Netflix, Cloudflare, American Express, Salesforce, IBM, Target, Twitch, Twitter, Uber and Docker, as well as the Russian Mail.ru Group, Tinkoff, Avito and Ozon. A detailed list of companies that use Golang can be found in the GoUsers repository – you can navigate through it when analyzing employment opportunities.
Why did you have to create another language?
Today, young programmers are not so much researchers as “Googlers”. Few novice programmers are ready to understand really complicated languages and fundamental informatics, but everyone wants to be in demand and be able to create competitive software. The best way to meet these needs is to offer a language they can easily master and find a highly paid job.
How does Go meet these requirements?
The Go entry threshold is really low. Even as a person with zero programming experience, you can easily learn Go and start programming. It’s a language with simple syntax and detailed technical documentation.
Studying Go will also give you basic knowledge about the operating system and computer design, memory handling, multi-threading, process synchronization.
Thus, Go is the ideal language to enter the programming world. Switching to Golang will be even easier if you already have programming experience in C-like languages.
What can I write on Go, in what industries is it used in?
In addition to creating microservices and network applications, Golang dominates the web application market. Among them, Go-developers are hired by well-known companies that have decided to gradually rewrite their systems in this highly effective language. For example, in 2018, the online store Ozon announced that it was hiring 200 Go developers, betting on this language for its reliability and speed.
In general, Go can be used for anything and is widely used by the IT industry, especially in web development. But of course, each language is for its own niche. For machine learning, for example, Python is still more preferable. Although there are other opinions.
Is Go honored among programmers?
Let’s look at a few ratings to see how Go is valued by the global developer community.
Let’s start with one of the best known, TIOBE. The rating is based on results of 25 search engines, including Google, Yahoo!, Wikipedia, Amazon, Bing. The rating shows that the Go language has moved from 16th to 12th place in the last year.
Red Monk uses GitHub and StackOverflow data to compare languages. The parameters on which the rating is made are the frequency of discussions and use of language in projects. As of January 2020. Go was ranked number 12.
The PYPL ranking is based on Google’s analysis of document search frequency. The more requests, the more popular the language is. This rating shows that as of July 2020, the Go language is rapidly climbing the ladder of popularity and is already in 13th place.
Thus, the general trend is that Go is becoming more and more popular every year. Now is the time to start learning the language, whether you are a beginner or an experienced developer.
The knowledge base for self-study Go
How to learn Go online
While this is a relatively new language, Go has well-developed online learning sources that are sufficient for anyone to learn the language from scratch. The best source that most people, including me, use to learn Go is Tour Go Lang. The tour consists of several modules, each of which covers an important feature of Go. To the right of the theoretical material is a panel for practical experiments. The course is available in 20 languages, including Russian, and is a program that can even be used offline.
This website is quite enough to learn the basics of Go, but for further study, a list of resources that you can use depending on your preference for learning GoLang will be useful.
Go by Example is an online platform for learning Go with practical examples for each of the topics covered. You can see a sample program and immediately experiment with your variant in your browser.
“Creating Web Apps with Golang – an interactive tutorial that covers the main Go topics. The chapters are short, but carefully crafted at the same time. The tutorial is ideal for people who want to create web applications.
Gophercises is a free online course dedicated to creating a variety of mini apps, packages and tools that will help you master Go perfectly.
If almost all previous sources required English, the next two courses from Mail.ru Group on Coursera are entirely in Russian. The course is designed for people with experience in web programming.
The Go programming language is probably one of the best books about Go. It covers the basics and then goes deeper into deeper topics. The drawback of the book is that it doesn’t cover a higher level language such as the web.
Go in practice is a book about the basics, web application development, microservices, and even deployment. It’s a useful reading for a developer who wants to use Go for web applications.
An Introduction to Programming in Go is a great book for beginners in the world of programming who are more comfortable to learn from books.
Go in 5 minutes – there are weekly 5-minute screenscreens on the channel, each of which considers one of the practices or Go programming templates.
GoLang in 7 hours – a 7-hour course that will teach you the basics of Go programming and help you practice the material you’ve learned.
Learn Go in one video lesson in 30 minutes! (Rus) is a 30-minute video that gives a brief overview of the basic concepts of Go.
Programming on Go. Introduction | TechStream (Rus) – YouTube course dedicated to the main themes of Go language from Mail.ru. Everything you need to know about Go language and its use in production.
GopherCon Russia – GopherCon Russia conference videos.
Golang Piter – video conference Go-developers in St. Petersburg.
Go bridge forum is perhaps the friendliest place for a newcomer to ask a question.
If you need help with more complex technical questions.
StackOverflow – forums, questions and answers, job search.
Hub Go – articles, cases, work and freelance.
Reddit branch – /golang section.
Telegram – our channel @goproglib (6 thousand developers have already signed up).
What knowledge and skills need Go-developers in everyday work?
Let’s now see what skills you will need to get a Junior, Middle or Senior level job based on vacancies posted at HeadHunter. Firstly, to work in this field you will need English skills at least at the documentation reading level. And then by category:
Experience with Go
Ability to write and maintain code according to the Go style guide
Experience of working with databases
Knowledge of Git, Linux / Unix
Acquaintance with SQL
Ability to write basic tests
Go (preferably with different frameworks)
HTML5 and CSS
Experience with SQL and NoSQL storages such as PostgreSQL, Redis, MongoDB, RabbitMQ, Kafka
Understanding of containerization principles, experience with Docker and Kubernetes
Experience of integration with third-party Web services API
Test writing skills
Knowledge of REST, HTTP, JSON
Experience of participating in highload projects, creating scalable solutions
Knowledge of microservice architecture
Experience in developing languages such as Python, PHP, Perl, Typescript, Node.js, etc.
5+ years of professional experience with complex web server services.
5+ years of software development experience
2+ years experience in software development at Golang
API development experience (GraphQL / gRPC / REST)
Experience in developing service-oriented solutions;
Experience in building highly loaded systems.
To find your first job on Go for juniors with a Go skill set, you must create a portfolio with Go-centric projects. You can come up with your own projects or contribute to open source and include this in your resume. Another way is to take paid online courses to help you create and improve your portfolio projects. For experienced developers with ready-made portfolios, one or two fully developed projects on Golang are enough to get an interview invitation.
Developer salaries at Golang are high. For example, the median salary of Golang developers is 150,000 rubles. On the HeadHunter website you can see how much Go developers earn in Russia: Junior GoLang Developer 65-80 thousand ₽, Middle GoLang Developer – 100-200 thousand ₽ and Senior GoLang Developer from 200 thousand ₽.
It will take a lot of time and effort to achieve your goal – to become a Go-developer. In addition, it is very important to always remain punctual and focused so as not to lose track. However, as soon as you receive a job interview invitation, you will feel proud and satisfied with the journey you have made.
If you feel that you are not able to comprehend everything on your own and need the help of professionals, you can always find excellent courses and programming schools. For example, the GeekBrains Go-developer course will guide you through all the topics and technologies needed to become a Go programmer. At the end of the course, you will have 5 projects to help you build your portfolio and start applying to job exchanges. If you want to learn more about the course, click on the link below and start your Go-development path.