Golang вопросы собеседований
13.5K subscribers
631 photos
3 videos
1 file
433 links
@notxxx1 - админ

@Golang_google - Golang для разработчиков

@itchannels_telegram - 🔥лучшие из ит

@golangl - chat

@golangtests - golang tests

@golang_jobsgo - go chat jobs

@ai_machinelearning_big_data - AI

@data_analysis_ml

РКН: clck.ru/3FmtKd
加入频道
👣 Типовые вопросы с собеседования на Go-разработчика

Держите, тут обсуждение популярных вопросов, которые вам могут задать на собеседовании, к паре из них приведены ответы.
Здесь поднимается много тем, если ориентируешься во всех из них — с большой вероятностью оффер будет твой)

📎 Сами вопросы

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Выделение памяти: new() vs Foo{}

▶️В чём разница между созданием структуры через new(), и через имя структуры + фигурные скобки, т.е. Foo{}?
type Foo struct {
X int
}

f1 := &Foo{}
f2 := new(Foo)


▶️Эти две конструкции ничем не различаются, в обоих случаях создается элемент Foo и возвращается указатель *Foo на вновь созданный элемент.
Только в первом случае можно еще указывать параметры f1 := &Foo{100}.

Зачем нужны два одинаковых метода? Первый & является частью указателей и применяется для операций с ними, второй для явного создания пустого объекта.

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 50 простых вопросов по Go

Вопросы для начинающих, для тех, кто только вливается в Go

▶️ Вопросы с ответами

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Как сделать срез элементов с индексами и отсортировать?

▶️Итак, имеется вот такой слайс:
array := []int{10, 65, 21, 19, 43}   


Нужно сделать массив вида (value, index): [[10, 0], [65, 1], [21, 2], [19, 3], [43, 4]]
По сути, как в Python через enumerate: [(v, i) for v, i in enumerate(array)]. А потом, также как в Python отсортировать его: по value.

Как также сделать в Golang?


▶️Что ж, один из вариантов решения может выглядеть так:
package main

import (
"fmt"
"sort"
)

type Matrix [][]int

func main() {
data := []int{10, 65, 21, 19, 43}
var matrix [][]int
for index, value := range data {
matrix = append(matrix, []int{value, index})
}
sort.SliceStable(matrix, func(i, j int) bool {
return matrix[i][0] < matrix[j][0]
})

fmt.Println(matrix)
}


Результат: [[10 0] [19 3] [21 2] [43 4] [65 1]]

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Вопросы для подготовки к собеседованию на позицию Go-разработчика

Здесь довольно много вопросов, есть вопросы не только по Go, на и по Computer Science в целом, есть вопросы для разных грейдов: для junior, middle, senior, есть практические задания
Используйте, закрывайте свои слепые зоны, получайте оффер)

📎 Вопросы и ответы

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Задачи к собеседованию по Go

Неплохой список задач для подготовки к собеседованию, к некоторым приведено несколько вариантов решения — обычное, и без требования доп. памяти, скажем.

🔜 Задачи

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Неплохой список из 22 вопросов по Go

Некоторые из вопросов:
• Как эффективно склеивать множество строк?
• Как задать направление канала?
• Напиши собственную функцию Sleep, используя time.After
• Что такое буферизированный канал?
• Как работает Garbage Collection в Go?

📎 Вопросы

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Популярные ошибки в Go и способы их решения

В частности, освещаются такие ошибки как:
— загрязнение интерфейса
map и утечки памяти
— ошибка считать, что параллелизм всего ускоряет код
— неиспользование средств диагностики Go
— и другие ошибки

Основано на книге Тейва Харшани «100 ошибок Go и как их избежать»

▶️ Ошибки и способы их решить

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Задачи и решения для лайв-кодинга на Go

В этой заметке — задачи на лайв-кодинг для Go разработчиков; задачки наподобие этих часто встречаются на собеседованиях.

А вот сами задачи:
— Найти пересечение двух неупорядоченных слайсов любой длины
— Развернуть односвязный список
— Написать генератор случайных чисел
— Слить N каналов в один
— Сделать конвейер чисел
— Сделать кастомную WaitGroup на семафоре
— Алгоритм бинарного (двоичного) поиска
— Обход ссылок из файла

📎 Задачи

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM