SQL Noir – Suç çözerek SQL öğrenme
(sqlnoir.com)- 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
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
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
Burada paylaşılan diğer projeler de iyi
Ben de öğrencilerin tarayıcıda kendi SQL kaçış oyunlarını yapabilmelerini sağlayan SQL Game Console ve SQL Game Editor projelerini ekleyeyim: https://eskuel.de
Sınıfta denemesi eğlenceliydi ve şu anda yalnızca Almanca destekliyor
Örnek oyun: https://eskuel.de/zoo/
Ç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
https://youtu.be/vNhBq3kjq_Q?t=2011
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
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
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
Çü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
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ı olurduGerç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_idyazdıktan sonrafrom interviews iönüne de--koyduğunuz anda o satır önceki satıra taşınıyor ve sözdizimi vurgulaması bozuluyorSanı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
--ekleyerek yorum satırı haline getirebilmeniz gerekirOlmuyorsa bu bir hatadır, araştıracağım
Eski sorguları ve bulduklarınızı kaydetmek için Notes sekmesini de kullanabilirsiniz