🐳 Изучаем Docker в терминале
Dockerlings предлагает более 15 упражнений, которые последовательно учат работать с контейнерами, Dockerfile, сетями, томами и многими другими важными аспектами Docker.
Главная особенность — это удобный TUI-интерфейс на базе Bubble Tea, позволяющий выполнять задания и сразу же проверять свои решения командой.
Все упражнения построены таким образом, чтобы вы действительно делали — запускали контейнеры, писали Dockerfile, разбирались в сетевых настройках и Docker Compose. Это не лекции, а практическая игра, которая помогает освоить реальные сценарии.
➡️ Поизучать Docker CLI
🐸 Библиотека Go-разработчика
#GoDeep
Dockerlings предлагает более 15 упражнений, которые последовательно учат работать с контейнерами, Dockerfile, сетями, томами и многими другими важными аспектами Docker.
Главная особенность — это удобный TUI-интерфейс на базе Bubble Tea, позволяющий выполнять задания и сразу же проверять свои решения командой.
Все упражнения построены таким образом, чтобы вы действительно делали — запускали контейнеры, писали Dockerfile, разбирались в сетевых настройках и Docker Compose. Это не лекции, а практическая игра, которая помогает освоить реальные сценарии.
#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13⚡2❤2
This media is not supported in your browser
VIEW IN TELEGRAM
🥱8😁1🤔1😢1
🔥 Выучи математику за 60 дней!
Чем важна математика расскажет Мария Тихонова - кандидат компьютерных наук, руководитель исследовательского направления SberAI, доцент факультета компьютерных наук и преподаватель НИУ ВШЭ на курсе «Математика для Data Science» от Proglib Academy.
👀 Мария - человек, который реально работает с LLM и делает так, чтобы модели понимали человеческую речь, а не делали вид.
Что еще внутри курса:
👇 👇 👇
Записаться на курс
Чем важна математика расскажет Мария Тихонова - кандидат компьютерных наук, руководитель исследовательского направления SberAI, доцент факультета компьютерных наук и преподаватель НИУ ВШЭ на курсе «Математика для Data Science» от Proglib Academy.
Что еще внутри курса:
- живые вебинары, на которых можно задать вопросы спикерам
- доступ к материалам в записи, если не успели на лекцию и чат
- 3 задания с практикой на Python и финальный проект с подробной обратной связью от экспертов курса
- актуальные знания: программа разработана в ноябре 2025г.
- программа без воды - 2 месяца только самого нужного для старта
- для старта нужны всего лишь знания школьной математики и основы Python
- скидка 40% до 30 ноября
- если оплатить до конца ноября, получите курс «Базовая математика» в подарок
Записаться на курс
Please open Telegram to view this post
VIEW IN TELEGRAM
👾2❤1
sync.WaitGroup — один из самых простых синхронизационных примитивов в Go. Его задача предельно ясна: дождаться, пока несколько горутин закончат работу.sync.WaitGroup состоит из трех операций: Add() говорит «я жду еще одну горутину», Done() говорит «эта горутина закончила», Wait() блокирует до того, как счетчик вернется к нулю.Но вот где начинаются проблемы:
Вызов Add() после запуска горутины:
go func() {
wg.Add(1) // слишком поздно!
doWork()
wg.Done()
}()
wg.Wait()Главная горутина может выйти из
Wait() прежде, чем дочерняя вызовет Add(). Вот вам race condition.Забыли Done():
go func() {
doWork()
// забыли wg.Done()
}()
wg.Wait() // будет висеть вечноWait() никогда не вернется, потому что счетчик никогда не уменьшится.Wait() в неправильном месте:
for _, item := range items {
go func(i Item) {
wg.Add(1)
defer wg.Done()
doWork(i)
}(item)
wg.Wait() // внутри цикла! это синхронное выполнение
}Wait() внутри цикла превращает параллельное выполнение в последовательное. Вы ждете каждой горутины перед запуском следующей.Запомните: WaitGroup — инструмент для синхронизации конца работы, а не управления её началом.
#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍6
🤖 ChatGPT выключен, а работа идёт как обычно
В мире разработки всё чаще говорят про AI, который помогает писать код быстрее и качественнее. Однако, встречаются примеры, когда выключение Copilot не приводит к заметным потерям в работе.
Возможно, скиллы и понимание задач дают больше, чем автодополнение от AI.
💬 Как думаете не отвлекают ли эти ИИ? Или всё-таки с ними куда лучше?
🔸 AI-агенты для DS-специалистов
🔸 Получить консультацию менеджера
🔸 Сайт Академии 🔸 Сайт Proglib
🐸 Библиотека Go-разработчика
#GoTalk
В мире разработки всё чаще говорят про AI, который помогает писать код быстрее и качественнее. Однако, встречаются примеры, когда выключение Copilot не приводит к заметным потерям в работе.
Возможно, скиллы и понимание задач дают больше, чем автодополнение от AI.
🔸 AI-агенты для DS-специалистов
🔸 Получить консультацию менеджера
🔸 Сайт Академии 🔸 Сайт Proglib
#GoTalk
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🥱4❤1
This media is not supported in your browser
VIEW IN TELEGRAM
🥱16🤔2
🤖 AI сейчас на пике — и математика снова в центре внимания.
Одна из топовых экспертов, кто сегодня участвует на AIJ, преподаёт у нас.
Мария Тихонова — PhD по Computer Science, руководитель направления в SberAI и доцент ВШЭ. Она работает с LLM каждый день и объясняет математику так, как она реально применяется в AI.
🔥 Экспресс-курс «Математика для DS» — 8 недель, чтобы закрыть пробелы и уверенно проходить собесы.
🎁 До 30 ноября:
→ скидка 40%
→ курс «Школьная математика» в подарок при оплате
→ бесплатный тест на знание основ математики
👉 Записаться на курс
«На конференции AIJ только и разговоров, что о AI и математике. Ведь в основе генеративных моделей Gen AI лежит фундаментальная математика.»
Одна из топовых экспертов, кто сегодня участвует на AIJ, преподаёт у нас.
Мария Тихонова — PhD по Computer Science, руководитель направления в SberAI и доцент ВШЭ. Она работает с LLM каждый день и объясняет математику так, как она реально применяется в AI.
🔥 Экспресс-курс «Математика для DS» — 8 недель, чтобы закрыть пробелы и уверенно проходить собесы.
🎁 До 30 ноября:
→ скидка 40%
→ курс «Школьная математика» в подарок при оплате
→ бесплатный тест на знание основ математики
👉 Записаться на курс
🥱3
В Go nil-срез — это валидный срез, просто пустой с длиной и ёмкостью ноль. При вызове append на nil-срезе Go автоматически создаёт новый массив нужного размера и возвращает новый срез с элементами. Поэтому добавлять значения можно сразу.
nil-мапа — это неинициализированная структура, которая не хранит данные. Попытка записать в такую мапу приведёт к панике. Мапу обязательно надо инициализировать с помощью make, чтобы она работала.
var a []int
a = append(a, 4, 5, 6) // работает, потому что Go выделяет память
fmt.Println(a) // [4 5 6]
var m map[int]int
// m[1] = 1 // паника, nil-мапа не инициализирована
m = make(map[int]int)
m[1] = 1 // теперь всё ок
🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2👏1
Для тех, кто занимается разработкой текстовых интерфейсов на Go, есть интересный инструмент — библиотека sysc-Go.
В библиотеке доступны разные категории эффектов: от классического цифрового дождя в стиле «Матрицы» и пламени Doom до красочных фейерверков и подводных анимаций с рыбой.
Есть и текстовые эффекты, которые оживляют ASCII-арт — например, огненный текст, эффекты типографики с имитацией печатной машинки или вращающиеся кольцевые анимации.
Чистая реализация на Go без зависимостей, удобный CLI-интерфейс с выбором и просмотром всех доступных эффектов, а также встроенный ASCII-редактор с живым предпросмотром.
🔹 Практический интенсив «Архитектуры и шаблоны проектирования»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍6❤3👾1
🎉 Большая распродажа Proglib Academy — минус 40% на всё!
📚 Выбирай свой курс:
▫️ «Экспресс-курс по математике для DS» — получи фундамент для построения успешной карьеры в Data Science
▫️ «Математика для DS» — для тех, кто хочет уверенно работать с данными;
▫️ «Основы Python» — чтобы начать писать код с нуля;
▫️ «Алгоритмы и структуры данных» — для будущих инженеров;
▫️ «Специалист по ИИ» или «AI-агенты», или «Машинное обучение» — для тех, кто хочет прокачаться в ИИ.
▫️ «Архитектуры и шаблоны проектирования» — чтобы писать гибкий, масштабируемый код как мидл+ разработчик.
▫️ «Основы IT для непрограммистов» — для тех, кто хочет понимать, как устроены технологии, не будучи разработчиком.
🎁 Бонусы ноября:
▫️ Розыгрыш MacBook Pro 14 — купи любой курс и пройди 2 недели обучения до 30 ноября.
▫️ Бесплатный тест по математике — за 5 минут покажет, какие темы стоит подтянуть перед DS.
👉 Выбрать курс со скидкой
📚 Выбирай свой курс:
▫️ «Экспресс-курс по математике для DS» — получи фундамент для построения успешной карьеры в Data Science
▫️ «Математика для DS» — для тех, кто хочет уверенно работать с данными;
▫️ «Основы Python» — чтобы начать писать код с нуля;
▫️ «Алгоритмы и структуры данных» — для будущих инженеров;
▫️ «Специалист по ИИ» или «AI-агенты», или «Машинное обучение» — для тех, кто хочет прокачаться в ИИ.
▫️ «Архитектуры и шаблоны проектирования» — чтобы писать гибкий, масштабируемый код как мидл+ разработчик.
▫️ «Основы IT для непрограммистов» — для тех, кто хочет понимать, как устроены технологии, не будучи разработчиком.
🎁 Бонусы ноября:
▫️ Розыгрыш MacBook Pro 14 — купи любой курс и пройди 2 недели обучения до 30 ноября.
▫️ Бесплатный тест по математике — за 5 минут покажет, какие темы стоит подтянуть перед DS.
👉 Выбрать курс со скидкой
🌚3
Go сам отслеживает, какие нужны зависимости, и добавляет к ним транзитивные (
// indirect) при go get. Когда библиотека удалена, многие верят, что go mod tidy наведёт полный порядок, но на деле она осторожно подходит к удалению и может оставить кучу неиспользуемого хлама.Рабочий способ чистки такой: коммитим текущее состояние, вручную убираем все строки
// indirect из go.mod, стираем go.sum, затем запускаем go mod tidy. Система пересчитает зависимости и вернёт только реально используемые. После этого сборка станет ощутимо быстрее, а зависимостей станет меньше.Для контроля лучше раз в квартал повторять процедуру и всё время использовать
go mod tidy перед коммитами.🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29
Please open Telegram to view this post
VIEW IN TELEGRAM
😁38❤3
Trie (префиксное дерево) — это структура данных, которая помогает эффективно хранить и искать строки. В Go она полезна, когда нужно быстро проверять префиксы, делать автодополнение или поддерживать поиск с подстановочными символами.
Когда стоит применять Trie
• Когда у вас большой словарь или список слов, требующих быстрого поиска
• Для функций
startsWith(prefix), когда нужно быстро проверить, есть ли слова с заданным префиксом• Когда нужны частичные совпадения с wildcard-символами — например, поиск по шаблонам с точками или звездочками
• Для реализации игр со словами, таких как Boggle, Scrabble или Wordle
• В автодополнении и DNS-lookup
• Для любых задач, где важна быстрая проверка строк по префиксу
Базовая структура:
package main
type TrieNode struct {
children map[rune]*TrieNode
isEnd bool // Флаг конца слова
value interface{} // Опционально: значение, связанное со словом
}
type Trie struct {
root *TrieNode
}
func NewTrie() *Trie {
return &Trie{
root: &TrieNode{
children: make(map[rune]*TrieNode),
},
}
}
Основные операции
Вставка слова:
func (t *Trie) Insert(word string) {
node := t.root
for _, char := range word {
if _, exists := node.children[char]; !exists {
node.children[char] = &TrieNode{
children: make(map[rune]*TrieNode),
}
}
node = node.children[char]
}
node.isEnd = true
}Поиск слова:
func (t *Trie) Search(word string) bool {
node := t.root
for _, char := range word {
if child, exists := node.children[char]; exists {
node = child
} else {
return false
}
}
return node.isEnd
}Автодополнение по префиксу:
func (t *Trie) StartsWith(prefix string) []string {
node := t.root
// Находим узел префикса
for _, char := range prefix {
if child, exists := node.children[char]; exists {
node = child
} else {
return []string{} // Префикс не найден
}
}
// Собираем все слова с этим префиксом
var results []string
t.dfs(node, prefix, &results)
return results
}
func (t *Trie) dfs(node *TrieNode, current string, results *[]string) {
if node.isEnd {
*results = append(*results, current)
}
for char, child := range node.children {
t.dfs(child, current+string(char), results)
}
}Использование префиксного дерева значительно ускоряет операции поиска и автодополнения по сравнению с простыми Map или Set. Хотя Trie требует больше памяти, выигрыш в скорости обычно оправдывает этот расход.
🔹 ML для старта в Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤5
📰 Дайджест недели
Прошла 47 неделя 2025 года. Вспомним какая она была.
— Экосистема Go в 2025
Go отмечает 16 лет, оставаясь популярным выбором для бэкендов и инфраструктуры. В 2025 растет использование фреймворков Gin и Fiber, тестовых библиотек testify и gomock, а AI-помощники активно интегрируются в рабочие процессы разработчиков
— Centrifuge v0.38.0
— Педагоги в Казахстане получат доступ к ChatGPT Edu
— Revive v1.13.0
— Google выпустили VS Code 2
Google запустили Antigravity — новую платформу для разработки программного обеспечения, ориентированную на работу с автономными AI-агентами.
🔸 Алгоритмы и структуры данных
🔸 Получить консультацию менеджера
🔸 Сайт Академии 🔸 Сайт Proglib
🐸 Библиотека Go-разработчика
#GoLive
Прошла 47 неделя 2025 года. Вспомним какая она была.
— Экосистема Go в 2025
Go отмечает 16 лет, оставаясь популярным выбором для бэкендов и инфраструктуры. В 2025 растет использование фреймворков Gin и Fiber, тестовых библиотек testify и gomock, а AI-помощники активно интегрируются в рабочие процессы разработчиков
— Centrifuge v0.38.0
— Педагоги в Казахстане получат доступ к ChatGPT Edu
— Revive v1.13.0
— Google выпустили VS Code 2
Google запустили Antigravity — новую платформу для разработки программного обеспечения, ориентированную на работу с автономными AI-агентами.
🔸 Алгоритмы и структуры данных
🔸 Получить консультацию менеджера
🔸 Сайт Академии 🔸 Сайт Proglib
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑💻 Ранняя пенсия с миллионами
$10-15 млн к 28 годам — звучит круто. Но стоит ли так рано бросать всё и уходить в свободное плавание?
Разработчик поделился, что накопил внушительную сумму довольно рано и думает не уйти ли ему на пенсию.
💬 А вы готовы уйти с работы, имея такой запас? Или работа для вас — это больше, чем просто деньги?
🔹 Практический интенсив «Архитектуры и шаблоны проектирования»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека Go-разработчика
#GoTalk
$10-15 млн к 28 годам — звучит круто. Но стоит ли так рано бросать всё и уходить в свободное плавание?
Разработчик поделился, что накопил внушительную сумму довольно рано и думает не уйти ли ему на пенсию.
🔹 Практический интенсив «Архитектуры и шаблоны проектирования»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#GoTalk
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚8😁4
protoc-gen-crud — это плагин для Protocol Buffers, который генерирует интерфейсы и реализации CRUD-операций.
Он создаёт два файла для каждого proto-файла: общий файл с интерфейсами (.pb.crud.go) и файл с конкретной реализацией для выбранной базы данных.
Поддерживаются основные операции создания, чтения, обновления и удаления как для SQLite, так и для PostgreSQL. Есть возможность работать с уникальными и составными ключами, временными метками, а также частичными обновлениями.
Установка сводится к добавлению плагина в
PATH и запуску protoc с указанием параметра --go-crud_out.🔸 Алгоритмы и структуры данных
🔸 Получить консультацию менеджера
🔸 Сайт Академии 🔸 Сайт Proglib
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👾1
📊 А правда, что математика в Data Science не нужна?
Нет. Без неё вы не пройдёте собес и не поймёте, почему модель ведёт себя странно. Линал, матан и вероятности — это база, без которой работа в ML превращается в угадайку.
🔥 Эту базу можно собрать за 2 месяца на экспресс-курсе «Математика для Data Science».
👩🏫 Кто ведёт курс:
→ Мария Тихонова
PhD, руководитель исследовательского направления в SberAI, доцент ВШЭ.
→ Диана Миронидис
Преподаватель ВШЭ, автор научпоп-материалов по математике для блога МТС.
→ Ксения Кондаурова
Преподаватель преподаватель T-Банка, автор курсов ЦУ и Edutoria.
→ Маргарита Бурова
Академический руководитель программ по аналитике и ML, Wildberries & Russ.
🎁 Что сейчас доступно:
→ бесплатный тест, чтобы узнать свой уровень математики;
→ скидка 40% до 30 ноября;
→ если оплатить до конца ноября, курс «Базовая математика» в подарок.
👉 Пишите менеджеру, если хотите попасть в поток
Нет. Без неё вы не пройдёте собес и не поймёте, почему модель ведёт себя странно. Линал, матан и вероятности — это база, без которой работа в ML превращается в угадайку.
🔥 Эту базу можно собрать за 2 месяца на экспресс-курсе «Математика для Data Science».
👩🏫 Кто ведёт курс:
→ Мария Тихонова
PhD, руководитель исследовательского направления в SberAI, доцент ВШЭ.
→ Диана Миронидис
Преподаватель ВШЭ, автор научпоп-материалов по математике для блога МТС.
→ Ксения Кондаурова
Преподаватель преподаватель T-Банка, автор курсов ЦУ и Edutoria.
→ Маргарита Бурова
Академический руководитель программ по аналитике и ML, Wildberries & Russ.
🎁 Что сейчас доступно:
→ бесплатный тест, чтобы узнать свой уровень математики;
→ скидка 40% до 30 ноября;
→ если оплатить до конца ноября, курс «Базовая математика» в подарок.
👉 Пишите менеджеру, если хотите попасть в поток
😁4❤1🌚1
В задаче нам дан массив из 0 и 1, который представляет собой двоичное число. Нужно для каждого элемента определить, делится ли число, образованное подмассивом от начала до текущей позиции, на 5.
Алгоритм решения задачи следующий:
Возьмите пустое число и двигаясь по массиву слева направо, добавляйте к этому числу новый бит — 0 или 1. Но чтобы не считать всё число целиком, потому что оно растёт и становится очень большим, мы каждый раз запоминаем только остаток от деления на 5.
Код решения:
func prefixesDivBy5(nums []int) []bool {
result := make([]bool, len(nums), len(nums))
var i = 0
var num int
for _, d := range nums {
num = ((num << 1) | d) % 5
result[i] = num == 0
i++
}
return result
}🔸 Основы IT для непрограммистов
🔸 Получить консультацию менеджера
🔸 Сайт Академии 🔸 Сайт Proglib
#ReadySetGo
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🥱2👍1
Golang-разработчик — от 200 000 на гибрид в МСК
Software Engineer — удалёнка по Испании с ЗП от 3 650 €
Golang разработчик в московский офис.
#GoWork
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱8❤1
Мы знаем, что вокруг Go много полезного контента — от блогов и телеграм-каналов до форумов и YouTube-каналов. А может вы автор такого контента?
💬 Пишите в комментариях свои любимые места, где вы черпаете знания про Go. Это могут быть популярные каналы, малоизвестные сообщества, новостные ленты или даже личные блоги.
#GoTalk
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5❤1
В поиске новой работы легко застрять в классическом сценарии с джоббордами, когда резюме тонут среди сотен таких же заявок, отклики растягиваются на недели, а автоматические системы решают, дойдет ли твой профиль до живого человека.
Есть более прямой маршрут к реальному собеседованию. Если выходить сразу на CTO, тимлидов или фаундеров, общение начинает строиться с людьми, которые действительно принимают решение о найме и понимают ценность конкретных технических навыков.
🔸 Специалист по ИИ
🔸 Получить консультацию менеджера
🔸 Сайт Академии 🔸 Сайт Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1