43796
admin - @haarrp https://t.me/golangl - golang чат https://t.me/golangtests go тесты https://t.me/ai_machinelearning_big_data машинное обучение @itchannels_telegram РКН: clck.ru/3Fmx3s #VRHSZ
👣 Решаем задачи. Реализуем алгоритм «Посмотри-и-скажи» (Count and Say).
«Посмотри-и-скажи» — это последовательность чисел, начинающаяся следующим образом:
1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211,… (последовательность A005150 в OEIS).
Каждое последующее число генерируется из предыдущего путём конкатенации цифры, из которой состоит группа одинаковых цифр и количества цифр в этой группе, для каждой группы одинаковых цифр в числе.
Решим задачу с leetcode: https://leetcode.com/problems/count-and-say
Пример1: Input: n = 1
Output: '1'
Пример2:Input: n = 4
Output: '1211'
Explanation:
countAndSay(1) = '1'
countAndSay(2) = say '1' = one 1 = '11'
countAndSay(3) = say '11' = two 1's = '21'
countAndSay(4) = say '21' = one 2 + one 1 = '12' + '11' = '1211'
Ограничения:- 1 <= n <= 30
Решение: func countAndSay(n int) string {
dp := make([]string, n + 1)
dp[1] = '1'
var current, next string
counter := 1
for i := 2; i <= n; i++ {
current = dp[i - 1]
next = ''
counter = 1
for j := 1; j < len(current); j++ {
if current[j - 1] == current[j] {
counter++
} else {
next += strconv.Itoa(counter) + string(current[j - 1])
counter = 1
}
}
next += strconv.Itoa(counter) + current[len(current) - 1:]
dp[i] = next
}
return dp[n]
}
👉 Пишите свое решение в комментариях👇
@Golang_google
👣 Тестовое задание дорожки в парке
Составьте программу, реализующую алгоритм Крускала для вычисления минимальной суммарной длины дорожек в парке аттракционов. Дорожки должны быть проложены таким образом, чтобы между любыми двумя аттракционами существовал маршрут.
Программа должна считывать со стандартного потока ввода количество аттракционов и их координаты. При этом координаты каждого аттракциона задаются парой целых чисел (в декартовой системе).
Программа должна выводить в стандартный поток вывода минимальную суммарную длину дорожек с точностью до двух знаков после запятой.
Например, для входных данных12
2 4
2 5
3 4
3 5
6 5
6 6
7 5
7 6
5 1
5 2
6 1
6 2программа должна выводить число 14.83.
👉 Пишите ваше решение в комментариях👇
@Golang_google
Level up для back-end разработчиков, тимлидов и администраторов — это умение разрабатывать микросервисную архитектуру и создавать масштабируемые, fault-tolerant приложения! Хотите сделать первый шаг в этом направление? Тогда приглашаем на открытые уроки онлайн-курса «Microservice architecture» OTUS с экспертами-практиками.
🗓 3 апреля в 20:00 — «Брокеры сообщений: RabbitMQ и Kafka»
Чтобы обеспечить асинхронную связь между микросервисами, нужен брокер сообщений, например — Kafka или RabbitMQ. На занятии вместе с Евгением Непомнящим, опытным разработчиком, мы ознакомимся с основными принципами работы этих брокеров, а также посмотрим на их использование в live demo.
👉 Для регистрации пройдите вступительный тест — https://otus.pw/4Fmq/
🗓 17 апреля в 20:00 — «Модульные монолиты и DDD»
На этом открытом уроке рассмотрим основные паттерны для построения и написания модульных монолитов. Особое внимание уделим паттернам DDD. Урок проведет Станислав Щетинников, директор по развитию.
👉 Для регистрации пройдите вступительный тест — https://otus.pw/UNBs/
А если вам понравятся бесплатные уроки, продолжить обучение можно будет уже на курсе. Оплата курса возможна в рассрочку.
👨🏻💻 Интересно функциональное программирование? Начните изучение Scala — это один из самых высокооплачиваемых языков программирования в мире. Его используют многие крупные компании, такие как Twitter, LinkedIn, Тинькофф-банк и крупнейшие производители ПО. Перейти в эту область тебе поможет онлайн-курс «Scala Developer» от OTUS.
Пройди вступительный тест, чтобы проверить свой уровень подготовки для курса и получить доступ ко всем открытым-урокам.
На курсе тебя ждет 4 месяца интенсивной практики и поддержки экспертов по Scala. На нем ты:
- научишься использовать Akka для создания микросервисов,
- освоишь функциональное программирование и библиотеку ZIO,
- освоишь модульные тесты на основе инвариантов свойств и многое другое.
👉🏻 Вступительный тест — https://otus.pw/b8KB/
Курс рассчитан на разработчиков с опытом от 1 года на Java или с опытом от 3-х лет на других языках ООП.
Реклама. Информация о рекламодателе на сайте www.otus.ru.
Открытые практикумы DevOps, Linux, Networks и Golang by Rebrain: расписание на апрель 2023
Мы проводим бесплатные практикумы на всевозможные IT темы. Основное — Kubernetes, Docker, Ansible, Gitlab CI, Linux, Kafka , MySQL, Golang и др. Работаем в консоли, разбираем реальные кейсы на практике. Анонсы публикуем на нашем канале в Telegram
👉Подключайтесь
🗓4 апреля DevOps: Проверка состояния работоспособности сервисов с помощью haproxy (Александр Крылов - Lead DevOps В ПАО СК Росгосстрах)
🗓5 апреля Linux: ZFS (Андрей Буранов - Специалист по UNIX-системам в компании VK)
🗓6 апреля Golang: Перекладываем JSON без рутины (Павел Грязнов - Go Senior Developer)
🗓11 апреля DevOps: Запускаем MySQL, Percona Server и MariaDB с помощью Docker (Николай Лавинский - Технический директор в ООО “Метод Лаб”)
🗓12 апреля Linux: Установка Linux Ubuntu (Андрей Буранов - Специалист по UNIX-системам в компании VK)
🗓13 апреля Networks: Сегментация сети без разделения на подсети (Ольга Яновская - Руководитель направления Networks by Rebrain, разработчик в Pyzzle.ISP)
🗓18 апреля DevOps: REBRAIN & Selectel ELK: как собрать логи в одном месте (Николай Лешев - DevOps в Selectel)
🗓19 апреля Linux: ФСТЭК для Linux. Часть 1 (Андрей Буранов - Специалист по UNIX-системам в компании VK)
🗓20 апреля Golang: Профилирование Golang (Сергей Парамошкин - Технический менеджер Яндекс.Поиск)
🗓26 апреля Linux: Механизмы отказоустойчивости в Linux (Даниил Батурин - Основатель проекта VyOS)
🗓27 апреля Networks: Контейнеры и сети (Роман Стельмах - Cетевой инженер - Cisco, Huawei, HP)
Бесплатные практикумы по DevOps, Linux, Networks и Golang от REBRAIN каждую неделю. Подключайтесь!
👨💻 Хотите освоить лучшие инструменты по разработке микросервисной архитектуры?
Ответьте на 11 вопросов, чтобы проверить достаточно ли ваших навыков, чтобы строить архитектуру микросервисов и попасть на курс — «Microservice Architecture» от OTUS.
На полном курсе вы научитесь проектировать сложный бэкенд и работать с легаси-проектами, разбираться с трудными ситуациями и находить нестандартные решения. Все это на практике, с реальными кейсами и под руководством команды экспертов!
👉 Пройти тест — https://otus.pw/X2Av/
💣 После прохождения у вас будет возможность записаться на курс по спец. цене и оформить рассрочку. А также вы получите доступ к записям 27 открытых уроков курса.
#vacancy #golang
FUNCORP — международная компания, которая с 2004 года разрабатывает развлекательные технологичные UGC-сервисы с миллионами пользователей по всему миру, ищет Senior Golang Developer (Instagram Reels & TikTok search engine).
Требования:
- Уверенное владение Golang
- Опыт работы с высокими нагрузками: знания о репликации, шардинге, балансировке запросов очень пригодятся
- Умение применять тестирование
- Знания HTTP, REST, умение строить API
Задачи:
- Разработка и поддержка в команде разработчиков HTTP API для веба и мобильных клиентов
- Реализация нетривиальной бизнес-логики, работа с большими данными
Вилка: от 4 500 до 5 000 EUR на руки
Возможно оформление: договор услуг, подряда, ГПХ
Требуемый опыт работы: 3–6 лет
Полная занятость, удаленная работа
Узнать требования можно здесь http://bit.ly/3KdNCtr, а отправить резюме по почте job@fun.co или Насте в Telegram @a_malygina
🖥 Шпаргалка по командам Git на русскомecho "# название" >> README.md - создание файла README.mdgit init - инициализация репозиторияgit add README.md - добавления файла README.md в проектgit commit -m "first commit" - получает проиндексированный снимок состояния и выполняет его коммит в историю проектаgit remote add origin https://github.com/stanruss/название.git - команда, которой устанавливается подключение к удаленному серверу и git репозиторию, размещающемуся на нем.git push -u origin master - кзменения отправляются на удаленный серверgit log --oneline - посмотреть все коммиты.git checkout . - восстановить все.git checkout "код коммита" - вернуть до состояния этого коммита.git checkout master - вернуться в ветку мастер.
Восстановить файлы на локальном компьютере:
```git fetch --all
git reset --hard origin/master или git reset --hard origin/<название_ветки>
```git add text.txt - Добавить файл в репозиторийgit rm text.txt - Удалить файлgit status - Текущее состояние репозитория (изменения, неразрешенные конфликты и тп)git commit -a -m "Commit description" - Сделать коммитgit push origin - Замерджить все ветки локального репозитория на удаленный репозиторий git push origin master - Аналогично предыдущему, но делается пуш только ветки mastergit push origin HEAD - Запушить текущую ветку, не вводя целиком ее названиеgit pull origin - Замерджить все ветки с удаленного репозиторияgit pull origin master - Аналогично предыдущему, но накатывается только ветка mastergit pull origin HEAD - Накатить текущую ветку, не вводя ее длинное имяgit fetch origin - Скачать все ветки с origin, но не мерджить их в локальный репозиторийgit fetch origin master - Аналогично предыдущему, но только для одной заданной веткиgit checkout -b some_branch origin/some_branch - Начать работать с веткой some_branch (уже существующей)git branch some_branch - Создать новый бранч (ответвится от текущего)git checkout some_branch - Переключиться на другую ветку (из тех, с которыми уже работаем)git branch # звездочкой отмечена текущая ветвь - Получаем список веток, с которыми работаемgit branch -a # | grep something - Просмотреть все существующие ветвиgit merge some_branch - Замерджить some_branch в текущую веткуgit branch -d some_branch - Удалить бранч (после мерджа)git branch -D some_branch - Просто удалить бранч (тупиковая ветвь)git show d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4 - Изменения, сделанные в заданном коммитеgit push origin :branch-name - Удалить бранч из репозитория на сервереgit reset --hard d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4 - Откатиться к конкретному коммиту и удалить последующие (хэш смотрим в «git log»)git push -f - залить на сервер измененные коммитыgit clean -f - Удаление untracked files
#git #github #doc #cheatsheet
@Golang_google
🔥 12 приёмов Go, которые помогут в работе
Работая над производственными проектами, я заметил, что часто дублирую код и использую одни и те же определённые методы, не осознавая этого до тех пор, пока не перепроверю свой код.
Чтобы избавиться от этой проблемы, я собрал небольшие скрипты, которые оказалось весьма полезным для меня. Я также подумал, что они могут быть полезными и для других.
Ниже приведены некоторые полезные и универсальные фрагменты кода, случайно выбранные из моих работ, без какой-либо конкретной классификации.
▪ Читать
@Golang_google
Weekend Offer для PHP-разработчиков ВКонтакте пройдет уже 25-26 марта
Отправляйте отклик до 23 марта и получите шанс присоединиться к команде крупнейшей социальной сети в России и странах СНГ за одни выходные.
Будут рассмотрены также кандидатуры разрабов, которые пишут и на других языках, если они кодят на PHP и готовы переходить на него.
Откликнуться можно по ссылке.
Всем, привет👋
Проводим небольшое исследование по просьбе одной уважаемой компании: хотим выяснить, кого вы считаете мировым лидером среди технологических компаний.
Поделитесь своим мнением — а мы потом поделимся результатами.
Пройти короткий (всего 2 вопроса, займет меньше минуты) опрос можно вот тут
👩💻 Поболтаем с Go-разработчиками?
Приглашаем всех, кому интересен язык Golang, на talk-сессию с Senior Go-разработчиками! Встреча состоится 22 марта в 20:00 мск в преддверии старта онлайн-курса «Golang Developer. Professional» в OTUS.
📢В прямом эфире вы сможете задать свои вопросы, а опытные разработчиками ответят на каждый из них. Стоит ли учить Go 2023 году, с чего начинать переход и чего ожидать, с какими трудностями можно столкнуться, что самое крутое в работе и что не нравится — в общем, любые вопросы, которые только могут прийти вам в голову.
🚀Вас ждут нетворкинг, новые знания, живые эмоции и тот самый толчок для развития!
➡️Записаться на ламповую беседу можно по ссылке: https://otus.pw/8tpg/
👣 Сli
Инструмент GitLab CLI, написанный на Go, позволяющий работать с GitLab в командной строке.
⏩ Gitlab
@Golang_google
👣 Примеры, упражнения и тесты на Golang
Лучший способ изучить новый язык программирования — это практика. В этом репозитории собрано более 100 задач для Go. Изначально автор создал проект для своего курса, но позже добавил упражнения для всех желающих изучить этот язык:
🖥 Github
@Golang_google
Weekend Offer Backend в Яндекс 1–2 апреля
Вы — бэкенд-разработчик с опытом от трёх лет и имеете опыт разработки на Go, Java, Python, C++, Scala? Приходите 1–2 апреля на мероприятие Weekend Offer Backend и устройтесь в Яндекс за два дня.
Выполните тестовое задание, пройдите две секции и получите офер. Мы предлагаем работу в гибком формате: удалённую, в смешанном режиме или в любом офисе или коворкинге Яндекса в 20 городах России и мира. Варианты обсуждаются индивидуально с каждым кандидатом.
Зарегистрироваться
Открытый практикум DevOps by Rebrain: Запускаем MySQL, Percona Server и MariaDB с помощью Docker
Успевайте зарегистрироваться. Количество мест строго ограничено! Запись практикума “DevOps by Rebrain” в подарок за регистрацию!
👉Регистрация
Время проведения:
11 Апреля (Вторник) в 19:00 по МСК
Программа практикума:
🔹Посмотрим, как можно одновременно запустить три варианта MySQL на одном хосте с помощью Docker
🔹Обсудим, как проводить базовые операции с базами данных в контейнерах
🔹И другие особенности работы в Docker
Кто ведет?
Николай Лавинский - Технический директор в ООО “Метод Лаб”. Веб-разработчик более 15 лет. Преподаватель технологий на онлайн-платформах. Спикер конференций HighLoad++, РИТ++. Специализация: ускорение сайтов и веб-приложений
Бесплатные практикумы по DevOps, Linux, Networks и Golang от REBRAIN каждую неделю. Подключайтесь!
👣 7 интересных библиотек Go, с помощью которых вы сможете улучшить свой следующий проект
Вы когда-нибудь обнаруживали, что застряли в середине проекта, пытаясь решить сложную проблему? Что ж, вы не одиноки. Многие разработчики сталкиваются с такими проблемами при создании программного обеспечения, и именно в данных ситуациях пригождаются библиотеки.
Они помогают вам легко создавать сложные и трудоёмкие программы, экономя ваше время и усилия. С таким количеством библиотек может быть трудно решить, какую из них использовать. Итак, я составил список из 7 библиотек Go, которые обязательно помогут вам на вашем пути разработчика.
▪ Читать
@Golang_google
🖥 pgx - PostgreSQL Driver and Toolkit
Эта библиотека предоставляет возможность взаимодействия с базами данных PostgreSQL на языке Go с помощью быстрого и эффективного драйвера, позволяющего с легкостью выполнять SQL-запросы, транзакции и массовые операции.
🖥 Github
@Golang_google
👣 Bob — билдер SQL-запросов для Go с поддержкой PostgreSQL, MySQL и SQLite.
https://github.com/stephenafamo/bob
@Golang_google
👣 Bot Aquarium
Проект на Go для работы с Linux-контейнерами,кль управляемые искусственным интеллектом.
🖥 Github
@Golang_google
👣 Testcontainers для Go
Библиотека Go, упрощающая создание и очистку зависимостей на основе контейнеров для автоматизированных интеграционных/smoke тестов.
Она позволяет разработчикам программно определять контейнеры, которые следует запускать как часть теста, и очищать эти ресурсы после завершения теста.
🖥 Github
@Golang_google
🧾 Алгебра анонимных сетей
В настоящее время существует огромное количество всеразличного рода анонимных (скрытых) сетей, начиная с теоретически доказуемых (DC-сети, Queue-сети, Entropy-сети) и заканчивая практически используемыми (Tor, I2P, Mixminion).
При таком количестве реализаций было бы очень удобно обобщить структуру всех таковых систем и привести их к общим составляющим. В результате подобных действий, мы сможем не только лучше понять то, как строятся современные анонимные сети, но и то, как их можно улучшать.
▪ Читать
@Golang_google
Почему мы всё время начинаем и бросаем учить английский?
Одна из причин — мы не знаем свой уровень языка. В итоге берёмся за контент, который нам не по силам. Например, сериал «Друзья» часто советуют смотреть тем, кто начинает учить язык, но в нём полно юмора, который начинающие пока понять не могут.
В итоге разрыв знаний удручает и мотивация снова падает.
Если вы готовы дать английскому ещё один шанс, мы поможем поверить в свои силы и довести дело до конца.
Приходите на бесплатную консультацию в Яндекс Практикум:
- Проведём устный тест на уровень языка,
- Покажем, чего реально добиться за полгода изучения,
- Расскажем, как наши курсы помогут достичь цели.
Записаться
👣 WRP – «Прокси-сервер» на Go, который позволяет использовать старые браузеры в современной сети
Он работает путем рендеринга веб-страницы в изображение GIF или PNG с интерактивной картой изображений.
🖥 Github
@Golang_google
👣 Вопросы и ответы для собеседования Back-end/Golang разработчика и не только
Здесь собрана большая коллекция вопросов и ответов на них, необходимых не только для прохождения собеседований, но и для комплексного развития кругозора.
🖥 Github
@Golang_google
👣 go DiskUsage()
Довольно быстрый анализатор использования диска, написанный на Go.
🖥 Github
@Golang_google
👣 Задача телефонные линии
На строительном участке нужно создать телефонную сеть, соединяющую все бытовки. Для того, чтобы телефонные линии не мешали строительству, их решили проводить вдоль дорог. Составьте программу, реализующую алгоритм Прима для вычисления минимальной общей длины телефонных линий для указанной конфигурации участка. Граф конфигурации участка должен быть представлен в программе в виде списка инцидентности.
Программа должна считывать со стандартного потока ввода количество бытовок , количество дорог , соединяющих бытовки, и информацию об этих дорогах. При этом каждая дорога задаётся тремя целыми числами , и , где и — номера соединяемых дорогой бытовок (), а — длина дороги.
Программа должна выводить в стандартный поток вывода минимальную общую длину телефонных линий.
Например, для входных данных7
10
0 1 200
1 2 150
0 3 100
1 4 170
1 5 180
2 5 100
3 4 240
3 6 380
4 6 210
5 6 260
программа должна выводить число 930.
Пишите свой ответ в комментариях👇
@Golang_google
👣 Задачи на алгоритмы и их решения
The Algorithms — проект с открытым исходным кодом, созданный группой разработчиков для понимания структур данных и алгоритмов на разных языках. Любой желающий может внести свой вклад в проект или помочь решить задачу других:
1. Go
2. JavaScript
3. Python
4. Java
@Golang_google
🔥Если вы ищете удаленную работу, неполный рабочий день или фриланс, этот список для вас.
В нем собран огромный список работодателей по всему миру, которые работают удаленно и часто набирают сотрудников.
Не забудьте подтянуть английский.
@Golang_google