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:
| Paso | Selección | Opciones |
|---|---|---|
| Paso 1 | Lenguaje de backend | JavaScript, TypeScript, Python, Java, C#, PHP, Go |
| Paso 2 | Framework de frontend | React (TS/JS), Vue (TS/JS), Angular (TS/JS) |
| Paso 3 | Plataforma móvil | Swift (iOS), Kotlin (Android) |
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 stack | Preferencia asignada | Ejemplos de temas |
|---|---|---|
| Backend | Tu preferencia de lenguaje backend | SQL Injection, SSRF, Command Injection |
| Frontend | Tu preferencia de framework frontend | XSS, DOM Clobbering, Prototype Pollution |
| Mobile | Tu preferencia de plataforma móvil | Almacenamiento 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.
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.