У цій статті я зроблю огляд деяких з найцінніших онлайн-ресурсів, що допоможуть вам вивчити та досконало оволодіти мовою програмування Golang.
Зважаючи на те, що кожен навчається по-різному, я розгляну текстові матеріали, навчальні посібники, відео та популярні курси, присвячені Golang.
Голанг набуває все більшої популярності, і ви безсумнівно закохаєтесь у Go, як тільки почнете його досліджувати.
Повний посібник для розробників
З аудиторією близько 50 тисяч студентів, цей ресурс є одним із найповніших пакетів для вивчення Go, починаючи з азів. Курс добре структурований та підходить для більшості учнів. Після придбання ви отримуєте довічний доступ. Якщо ви віддаєте перевагу повним відеокурсам, то це ідеальний вибір!
Цей курс чудово підходить як для початківців, так і для тих, хто бажає повторити базові концепції. Він включає 9 годин відеоматеріалу, а також додаткові кодові ресурси та завдання.
Деякі з тем, що розглядаються на курсі:
- Налаштування середовища, встановлення та основи мови.
- Пакети та організація файлів
- Змінні, функції, масиви та слайси
- Детальний розгляд мап, структур та інтерфейсів
- Канали та горутини (паралельне програмування)
Інтенсивний навчальний курс
З понад 300 лекціями, повний курс Bootcamp на Udemy – це, безсумнівно, вдала інвестиція та чудове місце для вивчення Golang. Під час навчання ви створюватимете програми, такі як:
- Парсер журналів
- Сканер файлів
- Фільтр спаму
Крім того, курс пропонує понад 1000 практичних вправ.
Окрім охоплення основних концепцій Go, таких як структури, інтерфейси та канали, курс містить цікавий проект, де ви навчитесь анімувати стрибаючий м’яч.
По завершенню курсу ви також отримаєте сертифікат.
Знайомство з Go
Я великий прихильник офіційної документації, блогів та посібників Golang. Цей інтерактивний курс безкоштовний і не вимагає налаштування локального середовища. Просто відкрийте веб-сайт та почніть вивчати основи з практичними прикладами коду для кожної теми.
Це ідеальний курс для старту, якщо ви просто хочете дослідити та вивчити основи без будь-яких додаткових налаштувань.
Приклади Go
Це не зовсім повноцінний курс, а скоріше місце, де можна швидко пригадати основи. Сайт охоплює всі концепції з коротким описом та повним прикладом коду. Сайт є максимально простим, що робить його ідеальним для навчання. Ось кілька базових тем, які там розглядаються:
- Змінні та константи
- Цикл for
- Оператори If/Else і Switch
- Масиви та слайси
- Мапи
- Діапазон
- Функції
та майже всі інші необхідні теми! Завітайте на сайт та додайте його в закладки для подальшого використання.
Вивчіть X за Y хвилин
Якщо вам потрібен швидкий огляд основ, Вивчіть X за Y хвилин – чудовий ресурс не тільки для Go, але й для багатьох інших мов програмування. Ресурс створено спільнотою, і він охоплює багато тем на одній сторінці. Станьте частиною цієї спільноти, коли добре освоїте Go.
Ось фрагмент коду з цього ресурсу, що ілюструє паралельне програмування в одній функції.
// We'll use inc to increment some numbers concurrently. func learnConcurrency() { // Same make function used earlier to make a slice. Make allocates and // initializes slices, maps, and channels. c := make(chan int) // Start three concurrent goroutines. Numbers will be incremented // concurrently, perhaps in parallel if the machine is capable and // properly configured. All three send to the same channel. go inc(0, c) // go is a statement that starts a new goroutine. go inc(10, c) go inc(-805, c) // Read three results from the channel and print them out. // There is no telling in what order the results will arrive! fmt.Println(<-c, <-c, <-c) // channel on right, <- is "receive" operator. cs := make(chan string) // Another channel, this one handles strings. ccs := make(chan chan string) // A channel of string channels. go func() { c <- 84 }() // Start a new goroutine just to send a value. go func() { cs <- "wordy" }() // Again, for cs this time. // Select has syntax like a switch statement but each case involves // a channel operation. It selects a case at random out of the cases // that are ready to communicate. select { case i := <-c: // The value received can be assigned to a variable, fmt.Printf("it's a %T", i) case <-cs: // or the value received can be discarded. fmt.Println("it's a string") case <-ccs: // Empty channel, not ready for communication. fmt.Println("didn't happen.") } // At this point a value was taken from either c or cs. One of the two // goroutines started above has completed, the other will remain blocked. learnWebProgramming() // Go does it. You want to do it too. }
Стисло та по суті, використайте цей ресурс, якщо хочете отримати швидкий огляд будь-якої конкретної теми Golang.
Gotime
Якщо вам подобається аудіоформат навчання, то Gotime – чудовий подкаст. Багато відомих розробників діляться своїм досвідом та тим, як вони використовують Go у своїх компаніях. Також варто звернути увагу на GopherCon (конференцію Golang), де провідні фахівці діляться своїми знаннями.
Ці спільноти обговорюють останні тенденції та вдосконалення Go.
Ось кілька популярних подкастів:
Книги
Існує багато чудових книг по Golang. Ось деякі з найпопулярніших:
Блоги
В інтернеті є кілька гарних блогів, присвячених Golang. Також є багато статей про середовище розробки, які можуть бути вам корисними. Ось декілька з них:
YouTube
Віддаєте перевагу відеоформату навчання?
Тоді обов’язково перегляньте цей навчальний посібник для початківців від freeCodeCamp.
Висновки
Я рекомендую пройти один з наведених курсів, якщо ви новачок, а також приєднатися до спільноти Golang. Діліться своїми знаннями зі світом і робіть свій внесок у розвиток Go. Сподіваюся, ця інформація була для вас корисною та бажаю вам успіхів у вивченні Go.