Перейти к содержимому

Alta Personnel

Актуальность: 1 кв 2026

  • Чем вы занимались на последнем проекте и какую роль выполняли? hr-behavioral/about-you
  • Какой линтер для Go вам нравится больше всего и за что? go/stdlib-tooling
  • Сталкивались ли вы с линтером, который проверяет выравнивание полей в структурах? Как он называется? go/structs-methods
  • SQL - это декларативный или императивный язык? sql/general
  • Что такое первичный ключ? Какие свойства у него есть? sql/schema-design
  • Может ли первичный ключ быть составным? sql/schema-design
  • Что такое нормализация базы данных? sql/schema-design
  • С какой целью применяют денормализацию базы данных? Какие минусы у этого подхода? sql/schema-design
  • Какие инструменты и методы вы используете для отладки медленных SQL-запросов? sql/query-optimization
  • Как работает встроенная функция append в Go? Что происходит с capacity? go/slices-arrays
  • Как работают новые мапы? Чем они отличаются от старых реализаций? go/maps
  • Что произойдет при попытке чтения из закрытого канала? А при записи в закрытый канал? go/channels
  • Что такое интерфейсы в Go? Чем отличается interface{} от any? go/interfaces
  • Как в Go реализовать конкурентный доступ к общей переменной без гонок данных? go/concurrency
  • Что такое context.Context? Для чего используется и какие методы у него есть? go/context
  • В чем разница между sync.Mutex и sync.RWMutex? Когда предпочтительнее использовать второй? go/sync
  • Как в Go работает сборщик мусора? Какие фазы есть и как они влияют на производительность? go/memory-gc
  • Какие ORM для Go вы знаете? Какую считаете наиболее удачной и почему? sql/orm-drivers
  • С какими ORM для Go вы работали в реальных проектах? sql/orm-drivers
  • Какие задачи решает ORM? В каких случаях ее применение оправдано, а в каких - нет? sql/orm-drivers
  • Какие способы мониторинга производительности Go-приложения в продакшене вы знаете? devops/observability

Задача: Даны таблицы Orders и HistoricalOrder. Требуется найти заказы, у которых нарушен порядок смены статусов в цепочке: Новый - Получен - Отправлен - Доставлен/Отменен. sql/general

Заголовок раздела «Задача: Даны таблицы Orders и HistoricalOrder. Требуется найти заказы, у которых нарушен порядок смены статусов в цепочке: Новый - Получен - Отправлен - Доставлен/Отменен. sql/general»
Таблица `Orders`:
1 | Новый | 1 | 2000
2 | Отправлен | 1 | 2111
3 | Доставлен | 2 | 5000
4 | Доставлен | 1 | 3333
Таблица `HistoricalOrder`:
id | history_id | date | status | user | total
---|------------|------------|-----------|------|------
1 | 55 | 2024-01-01 | Новый | 1 | 2000
2 | 56 | 2024-01-01 | Новый | 1 | 2111
2 | 57 | 2024-01-01 | Получен | 1 | 2111
2 | 58 | 2024-01-02 | Отправлен | 1 | 2111
3 | 59 | 2024-01-01 | Новый | 2 | 5555
3 | 60 | 2024-01-02 | Получен | 2 | 5555
3 | 61 | 2024-01-02 | Отправлен | 2 | 5000
3 | 62 | 2024-01-03 | Доставлен | 2 | 5000
4 | 63 | 2024-01-01 | Новый | 1 | 3333
4 | 64 | 2024-01-02 | Получен | 1 | 3333
4 | 65 | 2024-01-02 | Отправлен | 1 | 3333
4 | 66 | 2024-01-03 | Доставлен | 1 | 3333
4 | 67 | 2024-01-03 | Отменен | 1 | 3333
4 | 68 | 2024-01-03 | Доставлен | 1 | 3333
аunc tmp(bar[]int) {
bar= append(bar, 1)
}
func main() {
var foo= []int{1, 2, 3}
bar:=foo[0:1]
tmp(bar)
fmt.Println(foo, bar)
}
  • Что изменится, если заменить bar = append(bar, 1) на bar = append(bar, 1, 1)? go/slices-arrays
  • А если на bar = append(bar, 1, 1, 1)? go/slices-arrays

Задача: Реализовать функцию merge, которая объединяет несколько каналов в один. go/channels

Заголовок раздела «Задача: Реализовать функцию merge, которая объединяет несколько каналов в один. go/channels»
func merge(chs ...<-chan int) <-chan int {
// ...
}