P
prepair.app
Comenzar entrevista →
EnglishУкраїнськаРусскийDeutsch
🦫

Junior Go BackendPreguntas de entrevista Golang

Junior · sin experiencia / menos de 1 año

Las entrevistas de Go se enfocan en goroutines, channels, interfaces, y manejo de errores — el lenguaje es pequeño, así que las preguntas van a fondo en vez de ir a lo ancho. Aquí están las más comunes con respuestas modelo. Junior: teoría básica, definiciones y casos prácticos simples.

Pruébalo — sin cuenta necesaria
Preparando tu pregunta…

Temas para prepararte

Goroutines y el scheduler
Channels y select
Interfaces y composición
Manejo de errores
Slices y maps
Context y cancelación

7 preguntas de nivel Junior con respuestas

1

¿Cuál es la diferencia entre un array y un slice?

Respuesta

Un array tiene una longitud fija que es parte de su tipo — [3]int y [4]int son tipos distintos. Un slice es una vista sobre un array: un puntero, una longitud y una capacidad. Usarás slices para casi todo; los arrays aparecen principalmente como el storage subyacente que nunca nombras.

2

¿Qué pasa cuando haces append a un slice pasando su capacidad?

Respuesta

Go asigna un nuevo array subyacente más grande, copia los elementos a través y devuelve un slice apuntando al nuevo. El slice viejo sigue apuntando al array viejo — por eso append devuelve un valor que debes asignar. Ignorar el retorno es el bug clásico de principiante, y funciona hasta que se excede la capacidad.

3

¿Qué es el zero value, y por qué Go tiene uno?

Respuesta

Cada tipo tiene un cero usable: 0 para números, "" para strings, nil para punteros, maps y slices. Significa que una variable declarada siempre está inicializada, así que no hay estado indefinido que leer por accidente. La consecuencia práctica es que un struct con zero values sensatos a menudo no necesita constructor.

4

¿Cuál es la diferencia entre un value receiver y un pointer receiver?

Respuesta

Un value receiver recibe una copia, así que las mutaciones no sobreviven a la llamada; un pointer receiver opera sobre el original. Usa un puntero cuando el método muta, o cuando el struct es lo bastante grande como para que copiarlo cueste. Mezclar los dos en un tipo es donde la gente se confunde, porque el method set de T y *T entonces difieren.

5

¿Cómo funciona el manejo de errores, y por qué no hay excepciones?

Respuesta

Los errores son valores ordinarios devueltos junto al resultado y verificados en el call site. Es verboso a propósito: el camino donde algo falla es visible en el código en vez de escondido en un stack unwind. panic existe para situaciones genuinamente irrecuperables, y usarlo para control de flujo es un code smell que cualquier revisor marcará.

6

¿Qué es una goroutine, y en qué se diferencia de un hilo?

Respuesta

Una goroutine es una función programada por el runtime de Go en vez del sistema operativo. Empieza en un par de kilobytes y crece, así que cientos de miles son algo ordinario, donde la misma cantidad de hilos del SO no lo sería. El runtime las multiplexa sobre un pequeño pool de hilos reales.

7

¿Qué hace `defer`, y cuándo corre?

Respuesta

Programa una llamada para cuando la función que la rodea retorna, de cualquier forma que retorne. Eso lo hace el lugar correcto para cerrar un archivo o liberar un mutex, junto a la línea que lo abrió o bloqueó. Los argumentos se evalúan en el statement defer, no en la ejecución — lo que sorprende a quienes difieren algo usando una variable de loop.

🦎

Leer respuestas no es suficiente

En una entrevista real hablas bajo presión. Cam hace estas mismas preguntas, evalúa cada respuesta y muestra exactamente qué mejorar.

Practicar entrevista de Junior Go Backend →
Gratis · 3 entrevistas al mes

Otros niveles — Go Backend

Middle Go BackendSenior Go BackendTodas las preguntas de Go Backend

Otras especializaciones

🔍Junior Manual QA🤖Junior QA AutomationJunior Java Backend🐍Junior Python Backend🐘Junior PHP Backend🟢Junior Node.js Backend💎Junior Ruby on Rails🔷Junior C++🟨Junior JavaScript⚛️Junior React Frontend