13kander
Возможно)
kostyaBro
А middle для меня это специалист в своем направлении
Ну и эта фраза размыта. Где заканчивается "направление"
Joe
У семи синйоров джун без базы
Dima
Не знал что для работы с микросервисами Необходимо углубленное знание сетей
Читать Таненбаума имеется в виду Modern Operating Systems. Вне зависимости от языка или направления (инженер SWE, администратор SRE, девопс) базовый набор знаний для специалиста. Классика.
13kander
Нашел )
Dmitriy
А на русском такая книга есть ?
Эта старая. В этом году новая вышла
13kander
Спасибо)
Dmitriy
mishhgun
Нашел )
а можете прислать, пожалуйста?
13kander
а можете прислать, пожалуйста?
https://www.litres.ru/book/endru-tanenbaum/sovremennye-operacionnye-sistemy-42227045/
mishhgun
благодарю!
Dmitriy
Полностью согласен. Но они понятны большинству
Michael
а есть middleware скиллы?
Dmitriy
Все ок. Профдерформации долгой работы с людьми)
Michael
уаухахухахуаху
Артём
а есть middleware скиллы?
Это называется нетворкинг
Vitaliy
#вакансия #job #работа #golang #http #restful #gin #echo #revel #docker #kuberntes #cloud Вакансия: Senior Golang developer; Компания: RedCloudLab; Уровень зп: от 280 000 до 374 000 ₽ net; Локация: На момент оформления надо быть на территории РФ, потом можно работать где угодно; Формат: удаленная работа; Занятость: полная занятость, 5/2. Мы – команда, которая создает платформу для работы с цифровыми активами в экосистеме крупного российского банка и ищем Senior Go (Golang) Developer в команду R&D проекта. Вам предстоит решать задачи совместно с разработчиками (Rust, Flutter), Devops, UI/UX и QA. Что предстоит делать: - Разработка высокоэффективной и масштабируемой бэкенд-инфраструктуры на языке Go для платформы ЦФА. - Оптимизация и улучшение производительности существующего кода. - Участие в анализе требований, проектировании и реализации новых функциональностей. - Взаимодействие с командой разработчиков и технических специалистов для достижения целей проекта. - Поддержка и развитие существующих продуктов. Требуемый опыт: - Опыт разработки на языке программирования Go (Golang) от 3-х лет. - Знание и опыт работы с веб-технологиями, включая HTTP, RESTful API и базы данных. - Опыт работы с фреймворками и инструментами, такими как Gin, Echo или Revel. - Знание принципов разработки микросервисов и опыт работы с контейнеризацией (например, Docker) и оркестрацией (например, Kubernetes). - Опыт работы с системами управления версиями, такими как Git. - Опыт использования Yandex Cloud. - Желание и способность быстро обучаться новым технологиям и концепциям. Будет плюсом: - Опыт работы с базами данных, такими как MySQL, PostgreSQL. - Знание принципов безопасности веб-приложений и опыт работы с соответствующими инструментами и методологиями. - Опыт работы с облачными платформами, такими как AWS, Azure или Google Cloud Platform. - Знание других языков программирования, таких как Python или JavaScript. Условия: - Возможность удаленной работы - ДМС после испытательного срока (Москва и СПб). - Уровень зп от 280 000 до 374 000 ₽ net; Контакты: По всем вопросам обращайтесь в Telegram @leonety_lety или на емаил igwtforever7@gmail.com
Diyorbek
Всем привет! Мне нужен совет. Я хочу устроиться на работу разработчиком golang. У меня пока нет опыта. что мне нужно изучать и какие проекты я делаю, чтобы было легко получить работу?
Diyorbek
.
Спасибо почитаю)
Azamat
Узбекистан? А зачем Golang?
Diyorbek
А какой опыт есть? Программировал в школе, в колледже/универе? На чем? Или совсем с нуля?
Я закончил университет. Я пробовал много стартап-проектов на python и его фреймворке django. Конечно, это не настоящий проект. это было только для обучения. но я сделал заявление в банке и мне посоветовали выучить golang. Я получил базовые знания. они сказали мне, что я должен научиться создавать микросервисы. но я думаю, что работать за границей интереснее. потому что я надеюсь получить там большой опыт работы над большими проектами.
Azamat
Как успехи?
Ravshanbek
Привет всем. У меня такой вопрос. В данный момент работаю как стажёр в одной компании(golang) Но не знаю как решить их задачу или же как написать код. Может кто нибудь дать совет что делать
Андрей
WB?
Ravshanbek
Да, но не всегда же под рукой chatGPT
Ravshanbek
Есть ли какой нибудь другой вариант кроме чата gpt?
Jxhor Lxryn
Иногда, конечно, лучше с чатгпт пообщаться или в гугле поискать
Дмитрий
Есть ли какой нибудь другой вариант кроме чата gpt?
Разделяй и властвуй разбей задачу на более мелкую
Jxhor Lxryn
Но чем специфичнее проблема, тем вероятнее, что нужно спросить у команды
Ravshanbek
Почему не спросить у ментора или просто опытного программиста из своей команды?
Да я все это делаю, общаюсь с опытными прогерами или же со своим ментором. Дело в том что не как не получается написать код. Т.е как то вапше не получается
Michael
Есть ли какой нибудь другой вариант кроме чата gpt?
попросить помощи у старших коллег, вам все равно нечего терять
Ravshanbek
Автосверка. Это связано с банком
Ravshanbek
Хорошо, спасибо)))
Viktor
Я закончил университет. Я пробовал много стартап-проектов на python и его фреймворке django. Конечно, это не настоящий проект. это было только для обучения. но я сделал заявление в банке и мне посоветовали выучить golang. Я получил базовые знания. они сказали мне, что я должен научиться создавать микросервисы. но я думаю, что работать за границей интереснее. потому что я надеюсь получить там большой опыт работы над большими проектами.
Чтобы найти первую работу на Go: 1) Практика Go + git + docker/docker-compose + REST + GRPC + SQL DB: 1.1) Простой проектик с парой, тройкой микросервисами, любая SQL DB, оформить на github с нормальной документацией. 1.1.1) Внешние запросы по REST, запросы между сервисами по GRPC. 1.1.2) БД и сервисы надо уметь поднимать в докер-контейнерах. 1.1.3) Вся конфигурация приложения из 2-3 микросервисов должна быть в docker-compose. 1.2) Зависимости должны быть закрыты за интерфейсами. 1.3) Тесты. Для начального уровня просто хороших юнит тестов с моками-заивисимостей будет достаточно. 2) Теория Go: 2.1) слайсы. внутреннее устройство, поведение при вызове append в различных кейсах 2.2) мапы. внутреннее устройство, ее потоконебезопасность, эвакуация 2.3) многопоточка. 2.3.1) какой тип многопоточки в Go. чем горутины от тредов отличаются 2.3.2) уметь синхронизировать горутины с помощью каналов. уметь написать воркер-пул 2.3.3) мьютексы - что это, зачем, когда используется 2.3.4) атомики - потыкать. понимать, где их можно использовать 2.4) сборщик мусора - почитать, как работает. почитать о том, когда предположительно память на хип аллоцируется, когда на стек. 2.5) планировщик - понимать модель MPG (вот отличное видео: https://www.youtube.com/watch?v=rloqQY9CT8I) 2.6) интерфейсы, их внутрянка. что такое дак-тайпинг. что такое встраивание. как приватность/публичность достигается. 3) Общая насмотренность. 3.1) Базы данных. Что такое индексы, зачем нужны, какие бывают, как связь много ко многим сделать. Какие бывают базы данных кроме SQL. Что такое ACID, что такое CAP-теорема. 3.2) Почитать про то, что такое Observability (просто минимально почитать, не углубляться). 3.2.1) Как собираются и отображаются метрики (оыбчно это Prometheus + Grafana) 3.2.2) Как собираются и отображаются логи. Зачем нужны логи (обычно это ELK) 3.2.2) Что такое трейсинг запросов и зачем он нужен. 3.3) Что такое брокеры сообщений, зачем нужны, когда используются (просто поверхностно ознакомиться). 4) Алгоритмы и структуры данных. 4.1) Можно смело идти по этому LeetCode треку: https://leetcode.com/explore/featured/card/the-leetcode-beginners-guide/ 4.2) Уметь определять сложность по времени и по памяти. 4.3) Из структур данных понимать по минимуму: массивы, динамические массивы, мапы, бинарный поиск, связные списки 5) Перед откликами просмотреть типичные задачки на собеседованиях. Посмотреть 2-3 ролика mock-собесов в ютубе, сделать выводы, проанализировать, доучить, что не знаешь. 6) Не стесняться много откликаться и проходить собесы до победного :) Это не менее важный пункт, чем первые пять :) P.S. вся инфа про те аспекты, что написаны выше, есть в свободном доступе
Alexey
Чтобы найти первую работу на Go: 1) Практика Go + git + docker/docker-compose + REST + GRPC + SQL DB: 1.1) Простой проектик с парой, тройкой микросервисами, любая SQL DB, оформить на github с нормальной документацией. 1.1.1) Внешние запросы по REST, запросы между сервисами по GRPC. 1.1.2) БД и сервисы надо уметь поднимать в докер-контейнерах. 1.1.3) Вся конфигурация приложения из 2-3 микросервисов должна быть в docker-compose. 1.2) Зависимости должны быть закрыты за интерфейсами. 1.3) Тесты. Для начального уровня просто хороших юнит тестов с моками-заивисимостей будет достаточно. 2) Теория Go: 2.1) слайсы. внутреннее устройство, поведение при вызове append в различных кейсах 2.2) мапы. внутреннее устройство, ее потоконебезопасность, эвакуация 2.3) многопоточка. 2.3.1) какой тип многопоточки в Go. чем горутины от тредов отличаются 2.3.2) уметь синхронизировать горутины с помощью каналов. уметь написать воркер-пул 2.3.3) мьютексы - что это, зачем, когда используется 2.3.4) атомики - потыкать. понимать, где их можно использовать 2.4) сборщик мусора - почитать, как работает. почитать о том, когда предположительно память на хип аллоцируется, когда на стек. 2.5) планировщик - понимать модель MPG (вот отличное видео: https://www.youtube.com/watch?v=rloqQY9CT8I) 2.6) интерфейсы, их внутрянка. что такое дак-тайпинг. что такое встраивание. как приватность/публичность достигается. 3) Общая насмотренность. 3.1) Базы данных. Что такое индексы, зачем нужны, какие бывают, как связь много ко многим сделать. Какие бывают базы данных кроме SQL. Что такое ACID, что такое CAP-теорема. 3.2) Почитать про то, что такое Observability (просто минимально почитать, не углубляться). 3.2.1) Как собираются и отображаются метрики (оыбчно это Prometheus + Grafana) 3.2.2) Как собираются и отображаются логи. Зачем нужны логи (обычно это ELK) 3.2.2) Что такое трейсинг запросов и зачем он нужен. 3.3) Что такое брокеры сообщений, зачем нужны, когда используются (просто поверхностно ознакомиться). 4) Алгоритмы и структуры данных. 4.1) Можно смело идти по этому LeetCode треку: https://leetcode.com/explore/featured/card/the-leetcode-beginners-guide/ 4.2) Уметь определять сложность по времени и по памяти. 4.3) Из структур данных понимать по минимуму: массивы, динамические массивы, мапы, бинарный поиск, связные списки 5) Перед откликами просмотреть типичные задачки на собеседованиях. Посмотреть 2-3 ролика mock-собесов в ютубе, сделать выводы, проанализировать, доучить, что не знаешь. 6) Не стесняться много откликаться и проходить собесы до победного :) Это не менее важный пункт, чем первые пять :) P.S. вся инфа про те аспекты, что написаны выше, есть в свободном доступе
В структуры данных я бы добавил деревья, но гайд мегакрутой
Diyorbek
Чтобы найти первую работу на Go: 1) Практика Go + git + docker/docker-compose + REST + GRPC + SQL DB: 1.1) Простой проектик с парой, тройкой микросервисами, любая SQL DB, оформить на github с нормальной документацией. 1.1.1) Внешние запросы по REST, запросы между сервисами по GRPC. 1.1.2) БД и сервисы надо уметь поднимать в докер-контейнерах. 1.1.3) Вся конфигурация приложения из 2-3 микросервисов должна быть в docker-compose. 1.2) Зависимости должны быть закрыты за интерфейсами. 1.3) Тесты. Для начального уровня просто хороших юнит тестов с моками-заивисимостей будет достаточно. 2) Теория Go: 2.1) слайсы. внутреннее устройство, поведение при вызове append в различных кейсах 2.2) мапы. внутреннее устройство, ее потоконебезопасность, эвакуация 2.3) многопоточка. 2.3.1) какой тип многопоточки в Go. чем горутины от тредов отличаются 2.3.2) уметь синхронизировать горутины с помощью каналов. уметь написать воркер-пул 2.3.3) мьютексы - что это, зачем, когда используется 2.3.4) атомики - потыкать. понимать, где их можно использовать 2.4) сборщик мусора - почитать, как работает. почитать о том, когда предположительно память на хип аллоцируется, когда на стек. 2.5) планировщик - понимать модель MPG (вот отличное видео: https://www.youtube.com/watch?v=rloqQY9CT8I) 2.6) интерфейсы, их внутрянка. что такое дак-тайпинг. что такое встраивание. как приватность/публичность достигается. 3) Общая насмотренность. 3.1) Базы данных. Что такое индексы, зачем нужны, какие бывают, как связь много ко многим сделать. Какие бывают базы данных кроме SQL. Что такое ACID, что такое CAP-теорема. 3.2) Почитать про то, что такое Observability (просто минимально почитать, не углубляться). 3.2.1) Как собираются и отображаются метрики (оыбчно это Prometheus + Grafana) 3.2.2) Как собираются и отображаются логи. Зачем нужны логи (обычно это ELK) 3.2.2) Что такое трейсинг запросов и зачем он нужен. 3.3) Что такое брокеры сообщений, зачем нужны, когда используются (просто поверхностно ознакомиться). 4) Алгоритмы и структуры данных. 4.1) Можно смело идти по этому LeetCode треку: https://leetcode.com/explore/featured/card/the-leetcode-beginners-guide/ 4.2) Уметь определять сложность по времени и по памяти. 4.3) Из структур данных понимать по минимуму: массивы, динамические массивы, мапы, бинарный поиск, связные списки 5) Перед откликами просмотреть типичные задачки на собеседованиях. Посмотреть 2-3 ролика mock-собесов в ютубе, сделать выводы, проанализировать, доучить, что не знаешь. 6) Не стесняться много откликаться и проходить собесы до победного :) Это не менее важный пункт, чем первые пять :) P.S. вся инфа про те аспекты, что написаны выше, есть в свободном доступе
это был лучший ответ! Большое спасибо за ваше время👍
Егор
Я бы даже закрепил данное сообщение)
Diyorbek
У меня есть предложение. давайте создадим группу для всех, кто ищет работу или изучает язык программирования golang. Я думаю, что здесь много людей, работающих разработчиками golang. каждую неделю или 2 раза в неделю какой-нибудь программист дает небольшой проект. например, если Андрей дает проект сегодня, то на следующий день у него может не быть времени. В этой ситуации может проверить другой разработчик. Конечно, эти проекты сначала легкие, потом сложнeе и продолжаются в таком порядке. у кого есть время оценит работу тех, кто делал этот проект. Это даст соискателям новый опыт и новый проект для их портфолио. Вы согласны?
Michael
Чтобы найти первую работу на Go: 1) Практика Go + git + docker/docker-compose + REST + GRPC + SQL DB: 1.1) Простой проектик с парой, тройкой микросервисами, любая SQL DB, оформить на github с нормальной документацией. 1.1.1) Внешние запросы по REST, запросы между сервисами по GRPC. 1.1.2) БД и сервисы надо уметь поднимать в докер-контейнерах. 1.1.3) Вся конфигурация приложения из 2-3 микросервисов должна быть в docker-compose. 1.2) Зависимости должны быть закрыты за интерфейсами. 1.3) Тесты. Для начального уровня просто хороших юнит тестов с моками-заивисимостей будет достаточно. 2) Теория Go: 2.1) слайсы. внутреннее устройство, поведение при вызове append в различных кейсах 2.2) мапы. внутреннее устройство, ее потоконебезопасность, эвакуация 2.3) многопоточка. 2.3.1) какой тип многопоточки в Go. чем горутины от тредов отличаются 2.3.2) уметь синхронизировать горутины с помощью каналов. уметь написать воркер-пул 2.3.3) мьютексы - что это, зачем, когда используется 2.3.4) атомики - потыкать. понимать, где их можно использовать 2.4) сборщик мусора - почитать, как работает. почитать о том, когда предположительно память на хип аллоцируется, когда на стек. 2.5) планировщик - понимать модель MPG (вот отличное видео: https://www.youtube.com/watch?v=rloqQY9CT8I) 2.6) интерфейсы, их внутрянка. что такое дак-тайпинг. что такое встраивание. как приватность/публичность достигается. 3) Общая насмотренность. 3.1) Базы данных. Что такое индексы, зачем нужны, какие бывают, как связь много ко многим сделать. Какие бывают базы данных кроме SQL. Что такое ACID, что такое CAP-теорема. 3.2) Почитать про то, что такое Observability (просто минимально почитать, не углубляться). 3.2.1) Как собираются и отображаются метрики (оыбчно это Prometheus + Grafana) 3.2.2) Как собираются и отображаются логи. Зачем нужны логи (обычно это ELK) 3.2.2) Что такое трейсинг запросов и зачем он нужен. 3.3) Что такое брокеры сообщений, зачем нужны, когда используются (просто поверхностно ознакомиться). 4) Алгоритмы и структуры данных. 4.1) Можно смело идти по этому LeetCode треку: https://leetcode.com/explore/featured/card/the-leetcode-beginners-guide/ 4.2) Уметь определять сложность по времени и по памяти. 4.3) Из структур данных понимать по минимуму: массивы, динамические массивы, мапы, бинарный поиск, связные списки 5) Перед откликами просмотреть типичные задачки на собеседованиях. Посмотреть 2-3 ролика mock-собесов в ютубе, сделать выводы, проанализировать, доучить, что не знаешь. 6) Не стесняться много откликаться и проходить собесы до победного :) Это не менее важный пункт, чем первые пять :) P.S. вся инфа про те аспекты, что написаны выше, есть в свободном доступе
Что к этим пунктам добавляется на миддла, сеньора?
Дмитрий
ребят кто модерирует чатом, можно чтобы такого не было, ну обычно таких перманентно банят
Дмитрий
@haarrp
Дмитрий
как-то не круто получается
Igor
Да я все это делаю, общаюсь с опытными прогерами или же со своим ментором. Дело в том что не как не получается написать код. Т.е как то вапше не получается
Может быть банальные вещи скажу, попробуй решать задачу с конца) 1. Что в итоге у тебя должно получится на выходе?.. 2. Например результат сравнения, что с чем требуется сравнить? 3. Как / откуда получить первый аргумент? 4. Как / откуда получить первый аргумент? 5. В каком они должны быть виде, какая структура данных?.. И т.д. И прям объявлять переменные и писать код их обработки. Так можно будет понять какая сигнатура получается у метода в первой итерации и уже с этим идти к наставнику / ментору.
leejoys
Автосверка. Это связано с банком
Попроси опытных коллег разбить тебе задачу на мелкие и простые, а их отнеси нейросетке и пусть тебе объяснит, как их решать. Причем не ограничивайся одним разом. Ставь вопросы ей по-разному. Проси дать алгоритм или писать псевдокод, написать на го с такими пакетами или другими, в разных фреймворках
leejoys
А, ну и не спеши сразу писать что-то. Я первую неделю вообще только код читал и задавал вопросы по нему.
leejoys
Причем со временем ничего не изменилось) если перебрасывают на совершенно новый участок, иногда целый день только на чтение этого участка кола уходит и изучение технологий, которые в нем применены
Dima
Неделю назад на Reddit подняли подобный вопрос: "Тестирование основных знаний в Go". В комментариях списки вопросов от базовых Слайсов с Мапами, заканчивая сборкой мусора. Еще рекомендуют маскировать эти вопросы, не напрямую "Расскажите про Собрщик Мусора в Go!" это шибко прямолинейно, и кандидад отарабанит заученную фразу. А так из под воль, "С какими сложностями можно столкнуться в Go из за реализации сборки мусора?", уже банальным заучиванием не отвертеться.
Dima
Вот вопрос, всем вопросам вопрос, чем стек в процессе отличается от кучи?
Alex
Для гофера? Ничем😁 Тут вам не Си, рантайм может сам решать что где разместить и/или переместить.
Dima
Для гофера? Ничем😁 Тут вам не Си, рантайм может сам решать что где разместить и/или переместить.
Мне нравиться ваш ответ. Он такой залихватский, агрессивный и прямолинейный. Что может и сработать.
Grushor
Вот вопрос, всем вопросам вопрос, чем стек в процессе отличается от кучи?
Сборщик по стеку не ходит. Размер стека определяется при компиляции в зависимости от всех возможных (даже недостижимых) для выделения в нём переменных. А дальше мне сказать трудно
Dima
Dima
Kam
мне задали вопрос, типо у нас капасити 5, мы добавляем еще 5 элементов) какой будет капасити? Вроде просто, а сбило с толку на некоторое время)
Michael
flat memory model
Alexander
мне задали вопрос, типо у нас капасити 5, мы добавляем еще 5 элементов) какой будет капасити? Вроде просто, а сбило с толку на некоторое время)
Логическая ловушка . Если так построено предложение , то ЕЩЕ указывает на то, что уже 5 элементов есть
Dima
Типичный вопрос на уточнение. Основа всех рекомендаций по интервью надо общаться и уточнять. Правда бывают такие люди, которые уточнения принимают за незнания, но с такими работать - это лишние проблеммы.
Kam
Еще попался на defer, не знал что переменная вычисляется в момент вызова.
Kam
Условно a := 7 defer fmt.Println(a) a =5 выведет все равно 7
Kam
Неправильно говорить что попался, просто не знал
Aleks
Еще попался на defer, не знал что переменная вычисляется в момент вызова.
Тут получается что не в момент вызова, так как defer в конце все делает. Скорее по принципу замыкания, что было в момент обьявления defer.
Aleks
Неправильно говорить что попался, просто не знал
Все знать не возможно. Но обычно на defer в реальных проектах вешают всякие закрытия файлов, разлок мютексов, вычитание waitGroup, и т.п. Я бы конечно спросил собеседующего, часто у них в проде в defer с переменными работают. Чисто поржать. :)
Kam
Тут получается что не в момент вызова, так как defer в конце все делает. Скорее по принципу замыкания, что было в момент обьявления defer.
Имею ввиду что можешь функцию добавить в defer. и она сразу отработает. func pr() int{ fmt.Println("1") return 2 }. defer fmt.Println(pr()) в момент когда дойдет до дефера выведится сразу 1, я про это имел виду)
Aleks
ну я не стал так делать) намотал на ус чисто) буду знать)
В России собесы это всегда цирк с конями, я конечно понимаю что они проверяют так знание ЯП, но с другой стороны возможно с подобным не когда и не придется столкнутся.
Dima
У меня сложилось такое ощущение, что алгоритмы стали частоколом против вайтишников.
Dima
Т.е. это гарантированный способ сразу устранить человека который пришел рубить деньгу и желательно без этих ваших книг и нуденья, а так хоп хоп и готово.
Алексий
недавно была статья на хабре, кто то собесился в яндекс, и 4 этапа были чисто алгоритмы...
ну, слушал истории из устройства в faang тоже не далеко ушли :D
Алексей
У меня сложилось такое ощущение, что алгоритмы стали частоколом против вайтишников.
Так алгосы можно задрочить потратив пару месяцев Вот сисдизайн задрочить не получится быстро