Docs/Para estudiantes/Preferencias de stack

Preferencias de stack

Configura tus lenguajes y frameworks preferidos para personalizar tu experiencia de formación. SecureCodingHub muestra automáticamente los desafíos en tu stack preferido.

Configurar tus preferencias

Cuando visitas la plataforma por primera vez, un asistente de 3 pasos te guía en la selección de tus lenguajes y frameworks preferidos:

PasoSelecciónOpciones
Paso 1Lenguaje de backendJavaScript, TypeScript, Python, Java, C#, PHP, Go
Paso 2Framework de frontendReact (TS/JS), Vue (TS/JS), Angular (TS/JS)
Paso 3Plataforma móvilSwift (iOS), Kotlin (Android)
app.securecodinghub.com/preferences
Paso 1 / 3 · Backend
Elige tu lenguaje de backend

Te mostraremos por defecto desafíos de SQL injection, SSRF y command injection en este lenguaje.

JS
JavaScript
Node.js · Express
TS
TypeScript
Node.js · NestJS
PY
Python
Django · FastAPI
JV
Java
Spring Boot
C#
C#
.NET 8
PHP
PHP
Laravel · Symfony
GO
Go
Gin · Fiber

Cómo funcionan las preferencias

Cada tema en SecureCodingHub tiene un stackType que se asigna a una de tus categorías de preferencia. Cuando abres un desafío, la plataforma selecciona automáticamente el lenguaje que coincide con tus preferencias.

Tipo de stackPreferencia asignadaEjemplos de temas
BackendTu preferencia de lenguaje backendSQL Injection, SSRF, Command Injection
FrontendTu preferencia de framework frontendXSS, DOM Clobbering, Prototype Pollution
MobileTu preferencia de plataforma móvilAlmacenamiento inseguro, inyección en WebView, certificate pinning

El lenguaje correcto se muestra por defecto al abrir un desafío. Siempre puedes cambiar a otro lenguaje mediante el selector dentro de cualquier desafío.

Saltarse un paso

Cada paso del asistente tiene un botón Omitir junto a su acción principal. Saltárselo no abandona el asistente: aplica un valor por defecto razonable para ese paso y te deja continuar. Los valores por defecto son:

  • Backend: JavaScript
  • Frontend: React (TypeScript)
  • Mobile: Kotlin (Android)

Omitir es la elección correcta cuando un paso no te aplica hoy: por ejemplo, un ingeniero frontend que se salta el paso de backend para coger el valor por defecto. Puedes volver más adelante y sobrescribir el valor por defecto desde el mismo asistente.

Cambiar las preferencias

El chip indicador de stack en la barra superior (que muestra los iconos de tu stack seleccionado) reabre el asistente al hacer clic: esa es la forma cotidiana de actualizar las preferencias. Los cambios se aplican de inmediato en todos los desafíos y temas. Las preferencias también viven en tu perfil bajo Preferencias de stack, lo que resulta útil cuando quieres revisar qué hay configurado sin volver a abrir el selector.

Cuando un tema no existe en tu lenguaje

No todos los desafíos están todavía en todos los lenguajes. Cuando abres un tema cuyo autor aún no ha proporcionado un fragmento para tu lenguaje preferido, la plataforma recurre a una cadena determinista: tu preferencia de stack para el área de ese tema, luego el valor por defecto definido por el autor del tema, luego JavaScript, y por último el primer lenguaje disponible. Verás cambiar la etiqueta del lenguaje en la cabecera del desafío, de modo que el fallback nunca es silencioso, pero no verás una pantalla de "tema no disponible".

Para administradores

Las preferencias se almacenan por usuario. Los administradores no pueden configurar preferencias por los estudiantes: cada desarrollador elige su propio stack. Esto garantiza que cada miembro del equipo se forme en el lenguaje con el que realmente trabaja a diario.

Sincronización entre dispositivos: Las preferencias se sincronizan entre dispositivos. Si inicias sesión desde otro navegador, tus preferencias se cargarán automáticamente.

Por qué importa el stack

Un desarrollador de TypeScript leyendo un desafío en PHP dedica la mayor parte de su atención a interpretar una sintaxis desconocida en lugar de a buscar la vulnerabilidad. La carga cognitiva es real y el coste en tiempo es real. Las preferencias de stack existen para que el lenguaje usado para enseñar un concepto no se convierta en una barrera para aprenderlo. Cuando la sintaxis te fluye, tu ojo va directo al límite de confianza y a la primitiva insegura. Esa es la memoria muscular que quieres construir. Un desafío en un lenguaje que solo lees a medias te entrena en la dirección equivocada: te conviertes en un depurador medianamente bueno de código desconocido, no en un revisor seguro del tuyo propio.

Por eso también las preferencias son por usuario y no por organización. Un administrador de equipo no puede obligar a un ingeniero de Python a hacer desafíos en Java. Cada desarrollador debe formarse en el stack que va a revisar, desplegar y guardiar. Consulta Modo práctica para saber cómo el lenguaje seleccionado determina el fragmento por defecto que se muestra en cualquier desafío.

Cuándo ampliar tus ajustes de stack

Las preferencias de stack no son permanentes. Los ingenieros full-stack que realmente alternan entre backend y frontend deberían elegir su backend y frontend principales y luego usar el selector de lenguaje dentro del desafío para cambiar a demanda. Los ingenieros que aprenden un nuevo lenguaje para un proyecto próximo son el otro caso habitual para ampliar: pasa unas semanas formándote en el nuevo stack para ganar fluidez de revisión antes de que aterrice el primer pull request. Puedes volver al anterior en cualquier momento desde los ajustes.

Un caso concreto digno de mención es el del ingeniero senior o staff que revisa pull requests en varios stacks. Elegir un único lenguaje backend oculta los patrones interlingüísticos que aparecen en vulnerabilidades de API e infraestructura adyacente. Rotar las preferencias trimestralmente es un hábito razonable para ese rol.

Cómo interactúa el stack con las asignaciones de equipo

Cuando un administrador de organización crea una asignación en Inicio rápido, elige una categoría, un tema o un escenario. No elige un lenguaje. Cada estudiante asignado ve el contenido en el lenguaje que coincide con sus propias preferencias de stack. Una única asignación de "OWASP Web Top 10" puede llegar como desafíos en Python para el equipo de backend, en React para el equipo de frontend y en Swift para el equipo de iOS. Ese es el diseño previsto: una asignación, muchos stacks, cobertura consistente. Los administradores no deberían intentar saltársela creando asignaciones duplicadas por lenguaje.