2 puan yazan GN⁺ 2025-02-14 | 1 yorum | WhatsApp'ta paylaş
  • SQLNoir, dava dosyalarını açıp veritabanını sorgulayarak ipuçları bulduğunuz hikâye tabanlı bir SQL öğrenme oyunudur
  • Her dava; bir brifing, veritabanı şeması ve yerleşik SQL editörü sunarak sorgularla şüphelileri ve ipuçlarını doğrulamanızı sağlar
  • Filtreleme, join, agregasyon ve alt sorgular gibi gerçek SQL kalıplarını dava çözme süreci içinde tekrar tekrar pratik edebilirsiniz
  • Ayrı kurulum veya ortam yapılandırması gerekmeden başlanabilir; XP ve çözülen dava sayısıyla ilerleme durumu görülebilir
  • Başlangıç seviyesi davalar temel becerileri kapsar; ileri seviye davalar ise hiyerarşik join’ler ve zorlu koşullar gerektirerek geliştiricilere, veri analistlerine, öğrencilere ve eğitmenlere uygun hale gelir

Dava çözerek SQL öğrenme

  • SQLNoir, kullanıcıyı hikâye odaklı bir soruşturmanın içine sokar ve dava brifingiyle birlikte veritabanı şemasını sağlar
  • Kullanıcı, yerleşik editörde SQL sorguları çalıştırarak tabloları birbirine bağlar, şüphelileri eler ve mazeretleri doğrular
  • Dava akışı içinde pratik edilen SQL kalıpları şunlardır
    • Filtreleme
    • Join
    • Agregasyon
    • Alt sorgular
  • Ayrı kurulum veya ayar gerekmeden dava dosyasını açıp verileri hemen inceleyebilirsiniz

İlerleme durumu ve hedef kitle

  • XP ve çözülen dava sayısı ilerleme durumunu gösterir
  • Başlangıç seviyesi davalar SQL temellerini öğrenmeye yönelik kurgulanır; ileri seviye davalar hiyerarşik join’ler ve daha zorlu koşullar gerektirir
  • Şu kullanıcılar için uygundur
    • SQL temellerini ve join’leri uygulamalı olarak pratik etmek isteyen geliştiriciler
    • Gerçekçi sorgu senaryolarıyla mülakata hazırlanan veri analistleri
    • Kuru ders kitaplarındansa hikâye ve anlık geri bildirimle daha hızlı öğrenen öğrenciler
    • Öğrenenlerden ortam kurulumu istemeyen SQL alıştırmaları arayan eğitmenler

1 yorum

 
GN⁺ 2025-02-14
Hacker News yorumları
  • Eğlenceli ve hoşuma gitti
    Birkaç şey eklemek gerekirse, ilk vakadaki submit giriş alanına isim mi yoksa şüpheli ID’si mi girilmesi gerektiği net değil
    Çıktı sonuçlarında “notlara kopyala” düğmesi olsa iyi olurdu; ayrıca hangi fonksiyonların sunulduğuna ya da hangi SQL diyalektinin kullanıldığına dair dokümantasyon da olsa iyi olurdu
    Küçük projeleri gerçekten çözerek öğrenmek çok daha kolay olduğu için, oldukça değerli bir yöntem gibi görünüyor

    • Genel amaçlı uygulanmış gibi duruyor ve gönderilmesi gereken şey Objectives bölümünde yazıyordu
      Kullanıcı olarak bunun bir dedektif oyunu olmasından dolayı doğal olarak “şüpheli” adını istediği sonucuna vardım
  • Gerçekten eğlenceli
    Küçük bir iyileştirme olarak, SQLite veritabanını doğrudan indirmeye izin verip tercih ettiğimiz uygulamayla sorgulama yapabilsek, site de yalnızca brifing, notlar ve gönderim için kullanılsa iyi olurdu
    Ayrıca “SQL öğrenme” amaçlı denecekse biraz daha yönlendirme ya da örnek sorgular olması gerekiyor gibi
    Şu haliyle SQL bilmiyorsanız ne yapmanız gerektiği konusunda tamamen kaybolmanız kolay görünüyor; harika bir araç olsa da öğrenme aracı olarak henüz tam uygun değil

  • Fazla seçeneğin olmadığı bir alana güzel bir ek
    Aklıma SQL Island(https://sql-island.informatik.uni-kl.de) ve SQL Murder Mystery(https://mystery.knightlab.com) geliyor; SQL Noir’ın yaklaşımı ise ikincisine daha yakın, yönlendirmesiz bağımsız bir macera
    Ben, rastgele bir temel veritabanına alıştırmalar ekleyerek yönlendirmeli bağımsız maceralar oluşturabilen bir SQL oyun motoru olan SQLab üzerinde çalışıyorum: https://github.com/laowantong/sqlab
    Veritabanı dökümünü indirip şu anda MySQL, SQLite ve Postgres üzerinde herhangi bir yönetim arayüzüyle oynayabilirsiniz
    Aynı sayfada Fransız öğrenciler için tasarladığım uzun bir polis soruşturmasının bağlantısı da var; öğretmen veya araştırmacıysanız SQLab’ın ilkeleri burada açıklanıyor: https://arxiv.org/abs/2410.16120

  • Çocukken izlediğim MathNet’i hatırlattı
    Dragnet tarzı eğitici bir polis soruşturmasıydı; iki dedektif hesap makinelerini tabanca kılıfı gibi taşıyordu
    https://en.m.wikipedia.org/wiki/Mathnet

  • Hoşuma gitti; tarzı kendine özgü ve güzel
    SQL öğrenmenin, pratik yapmanın ve yeniden hatırlamanın eğlenceli bir yolunun başlangıcı gibi görünüyor
    Birkaç şey: sekmeler olmadan tek bir çalışma alanı olsa iyi olurdu. Sürekli sekmeler arasında gidip gelmek gerekiyor
    Önceki SQL sorgularını ve sonuçlarını kaydedebilmek iyi olurdu; şu anda sonuçları notlara kopyalıyordum
    Daha karmaşık hale geldikçe bu özellik önemli olacak gibi

    • İyi not
      Az önce yan yana görünümü ekledim; iki sekmeyi aynı anda görebiliyorsunuz, umarım yardımcı olur
      Diğer kullanıcıların önerdiği gibi sorguları notlara kaydedebilir ya da editörde yorum satırı haline getirebilirsiniz
    • Sorguları ve sonuçları notlar bölümüne her kopyaladığımda kendimi olay yerinde kapaklı not defterine not alırken hayal ettim
      Bir tek şapka eksik; birkaç kez de “Sadece gerçekleri anlatın, hanımefendi” dedim mi tamamdır
  • Fikir iyi ama UI’ın içine çekiciliği neredeyse yok
    İçine çekiciliği artırmak için otomatik tamamlama, geniş ekranda şemayı ve sorguyu birlikte görme özelliği, tablo adlarını ve sütun adlarını tek tıkla kolayca kopyalama özelliği gerekiyor
    Özellikle tablo adları seçilemiyor bile
    Yalnızca çalıştırılmış sorgunun üzerine yazabilmek yerine, çalıştırılmış sorgunun üstüne veya altına yeni sorgular eklemeye devam edebilsek iyi olurdu

    • Çoğunlukla katılıyorum ama otomatik tamamlama bence gizli bir özellik olmalı ya da varsayılan olarak kapalı gelmeli
      Çünkü içine çekiciliği azaltıyor ve kişinin kendi başına hatırlaması gereken kısmı da küçültüyor
      New Game Plus’ta açılacak şekilde olsa fena olmayabilir
    • Öneri için teşekkürler
      Az önce iki farklı sekmeyi aynı anda açan Side by Side görünümü ve tablo adını kopyalama düğmesini ekledim
    • command-/ ile kod bloklarını yorum satırı haline getirebilmek gerçekten çok kullanışlı olurdu
  • Gerçekten iyi bir fikir ve vakayı çözmek eğlenceliydi
    Junior programcılar için çizgi roman versiyonu faydalı olabilir
    SQL editörü bazen garip davranıyor ve doğru şekilde yazmayı engelliyor

  • Editörde yorum eklemeye çalışınca tuhaf davranıyor
    Yeniden üretme yolu: birkaç satır yazıp her satırın başına -- koyarak satır satır yorum yapmak
    Örneğin select i.*, s.*, from interviews i, join suspects s, on s.id = i.suspect_id yazdıktan sonra from interviews i önüne de -- koyduğunuz anda o satır önceki satıra taşınıyor ve sözdizimi vurgulaması bozuluyor

    • Doğru
      Sanırım az önce bu hatayı düzelttim
  • Üniversite zamanında hocamın SQL pratiği için buna benzer bir suç çözme mini oyunu linklediğini hatırlıyorum
    Epey içine girmiştim; en verimli tek satırlık çözümü bulmaya çalışacak kadar ilerlemiştim
    Yaptığınız için teşekkürler; SQL öğrenmek isteyenlere bunu ileteceğim gibi görünüyor

  • Epey eğlenceli; ücretsiz iki gizemi çözdüm ve çözmesi keyifliydi
    Küçük bir eksik, SQL editörünün yorumları desteklemesi iyi olurdu
    Yeni bir sorgu çalıştırmadan önce eski sorguyu yorum satırı yaparak geçmişi bırakmak, özellikle aynı sorguyu yeniden çalıştırmak gerektiğinde kullanışlı olurdu

    • Sorgu satırlarını -- ekleyerek yorum satırı haline getirebilmeniz gerekir
      Olmuyorsa bu bir hatadır, araştıracağım
      Eski sorguları ve bulduklarınızı kaydetmek için Notes sekmesini de kullanabilirsiniz