2 puntos por GN⁺ 2025-02-14 | 1 comentarios | Compartir por WhatsApp
  • SQLNoir es un juego de aprendizaje de SQL basado en historias en el que abres expedientes de casos y consultas bases de datos para encontrar pistas
  • Cada caso ofrece un resumen, el esquema de la base de datos y un editor SQL integrado para que verifiques sospechosos y pistas mediante consultas
  • Permite practicar repetidamente patrones reales de SQL, como filtrado, joins, agregaciones y subconsultas, dentro del proceso de resolución de casos
  • Puedes empezar sin instalación ni configuración de entorno, y ver tu progreso mediante XP y la cantidad de casos resueltos
  • Los casos para principiantes cubren los fundamentos, mientras que los casos avanzados exigen joins jerárquicos y condiciones complejas, por lo que está pensado para desarrolladores, analistas de datos, estudiantes e instructores

Aprende SQL resolviendo casos

  • SQLNoir introduce al usuario en una investigación centrada en la historia y proporciona tanto el resumen del caso como el esquema de la base de datos
  • El usuario ejecuta consultas SQL en el editor integrado para conectar tablas, descartar sospechosos y verificar coartadas
  • Los patrones de SQL que se practican dentro del flujo del caso incluyen:
    • Filtrado
    • Joins
    • Agregaciones
    • Subconsultas
  • Sin instalación ni configuración adicional, puedes abrir un expediente y empezar a investigar los datos de inmediato

Progreso y público objetivo

  • Los XP y la cantidad de casos resueltos muestran el progreso
  • Los casos para principiantes están diseñados para aprender los fundamentos de SQL, mientras que los avanzados requieren joins jerárquicos y condiciones más exigentes
  • Es adecuado para:
    • Desarrolladores que quieren practicar manualmente los fundamentos de SQL y los joins
    • Analistas de datos que se preparan para entrevistas con escenarios de consulta realistas
    • Estudiantes que aprenden más rápido con historias y retroalimentación inmediata que con manuales secos
    • Instructores que buscan ejercicios de práctica de SQL que no exijan configurar un entorno a los alumnos

1 comentarios

 
GN⁺ 2025-02-14
Comentarios de Hacker News
  • Divertido, me gusta.
    Para aportar algunas cosas: en el primer caso no queda claro si en el campo de envío hay que poner el nombre o el ID del sospechoso.
    Estaría bueno que en los resultados hubiera un botón de “copiar a notas”, y también documentación sobre qué funciones están disponibles o qué dialecto de SQL se usa.
    Como es mucho más fácil aprender resolviendo proyectos pequeños de verdad, me parece un enfoque bastante valioso.

    • Parece que lo implementaron de forma genérica, y lo que había que enviar estaba escrito en la sección Objectives.
      Como usuario, al ser un juego de detectives, naturalmente inferí que querían el nombre del “sospechoso”.
  • Muy divertido.
    Como pequeña mejora, estaría bueno poder descargar directamente la base de datos SQLite para hacer consultas con la app que uno prefiera, y usar el sitio solo para el briefing, las notas y el envío.
    Además, si es para “aprender SQL”, creo que necesitaría un poco más de guía o consultas de ejemplo.
    Tal como está, si no sabes SQL es fácil quedar completamente perdido sobre qué hacer; es una herramienta genial, pero todavía no encaja del todo como herramienta de aprendizaje.

  • Es una buena incorporación a un campo donde no hay muchas opciones.
    Se me ocurren SQL Island (https://sql-island.informatik.uni-kl.de) y SQL Murder Mystery (https://mystery.knightlab.com), y el enfoque de SQL Noir se parece más al segundo: una aventura independiente no guiada.
    Estoy creando SQLab, un motor de juegos de SQL que permite añadir ejercicios a una base de datos base arbitraria para crear aventuras independientes guiadas: https://github.com/laowantong/sqlab
    Puedes descargar dumps de bases de datos y jugar actualmente en MySQL, SQLite y Postgres con cualquier interfaz de administración.
    En la misma página también hay un enlace a una investigación policial larga diseñada para estudiantes franceses, y si eres docente o investigador, los principios de SQLab se explican aquí: https://arxiv.org/abs/2410.16120

  • Me recuerda a MathNet, que veía de chico.
    Era una serie policial educativa al estilo Dragnet, donde dos investigadores llevaban calculadoras como si fueran fundas de pistola.
    https://en.m.wikipedia.org/wiki/Mathnet

  • Me gusta; el estilo es particular y está muy bien.
    Parece el comienzo de una forma divertida de aprender, practicar y refrescar SQL.
    Algunas cosas: preferiría un único espacio de trabajo sin pestañas. Termino yendo y viniendo entre pestañas todo el tiempo.
    Estaría bueno poder guardar consultas SQL anteriores y sus resultados; por ahora estaba copiando los resultados a las notas.
    A medida que se vuelva más complejo, creo que esta función será importante.

    • Buen comentario.
      Acabo de implementar la vista lado a lado, para poder ver 2 pestañas al mismo tiempo; espero que ayude.
      Como sugirieron otros usuarios, también puedes guardar consultas en las notas o dejarlas comentadas en el editor.
    • Cada vez que copiaba una consulta y sus resultados a la sección de notas, me imaginaba tomando apuntes en una libreta de tapa abatible en la escena del crimen.
      Solo me falta el sombrero y decir unas cuantas veces “solo los hechos, señora” para completar la escena.
  • La idea es buena, pero la inmersión de la UI es casi nula.
    Para aumentar la inmersión harían falta autocompletado, poder ver el esquema y la consulta juntos en pantallas grandes, y una forma sencilla de copiar nombres de tablas y columnas con un clic.
    En particular, los nombres de tablas ni siquiera se pueden seleccionar.
    En vez de solo permitir sobrescribir una consulta ya ejecutada, estaría bueno poder seguir agregando nuevas consultas arriba o abajo de las consultas ejecutadas.

    • Coincido en casi todo, pero creo que el autocompletado debería ser una función oculta o estar desactivado por defecto.
      Porque reduce la inmersión y también las partes que uno debería recordar por sí mismo.
      Quizá estaría bien habilitarlo en New Game Plus.
    • Gracias por las sugerencias.
      Acabo de implementar una vista Side by Side para abrir dos pestañas distintas al mismo tiempo, y un botón para copiar nombres de tablas.
    • Sería realmente útil poder comentar bloques de código con command-/.
  • Es una idea muy buena, y fue divertido resolver el caso.
    Quizá una versión en cómic ayudaría a programadores junior.
    A veces el editor SQL se comporta de forma extraña y no deja escribir correctamente.

  • Cuando intento agregar comentarios en el editor, se comporta raro.
    La forma de reproducirlo es escribir varias líneas y luego comentar una por una poniendo -- delante de cada línea.
    Por ejemplo, después de escribir select i.*, s.*, from interviews i, join suspects s, on s.id = i.suspect_id, en cuanto agrego -- también delante de from interviews i, esa línea se mueve a la línea anterior y se rompe el resaltado de sintaxis.

    • Sí.
      Creo que acabo de corregir ese bug.
  • Recuerdo que en la universidad un profesor nos pasó un enlace a un minijuego de resolver crímenes parecido a este para practicar SQL.
    Me enganché bastante, hasta el punto de intentar encontrar la solución de una sola línea más eficiente.
    Gracias por crearlo; creo que se lo voy a pasar a gente que quiera aprender SQL.

  • Bastante divertido; resolví los dos misterios gratuitos y fue satisfactorio.
    Una pequeña pena es que estaría bueno que el editor SQL admitiera comentarios.
    Si uno pudiera comentar consultas anteriores antes de ejecutar una nueva, dejando el historial, sería cómodo, sobre todo cuando haya que volver a ejecutar la misma consulta.

    • Deberías poder comentar líneas de consulta agregando --.
      Si no funciona, es un bug y lo voy a investigar.
      También puedes usar la pestaña Notes para guardar consultas antiguas y lo que vayas descubriendo.