Τι νέο υπάρχει
Ιστορικό ενημερώσεων του SQL Arena. Οι νεότερες εκδόσεις στην κορυφή.
Every task is now solved by writing SQL — new task formats and catalog filters, plus new task packs.
- New task types: debugging, data-quality checks, index design, query rewriting, schema design with constraints, transactions & locking, and access permissions (GRANT/REVOKE).
- New catalog filters: by task format, difficulty, solved status, dialect (PostgreSQL/MySQL) and favorites.
- Permissions tasks are graded by the resulting privilege set (least privilege enforced).
- Transaction tasks are graded under real concurrency: safe debits, atomic transfers, idempotency, isolation levels and row locks.
- New task packs: ride-hailing analytics, data modification, schema design, recursive hierarchies and product events.
- Your chosen SQL dialect (PostgreSQL/MySQL) now persists across tasks.
- Most tasks now show a preview of the expected output.
- Hundreds of new step-by-step hints, plus an AI mentor that explains the errors in your query.
- Every format is now code-writing: you write real SQL instead of picking an answer.
- Task descriptions are living business scenarios in Russian and English; difficulty levels recalibrated.
- AI task generation: descriptions now read as a real business scenario and no longer give away the solution — formulas, SQL function names and dry table listings are kept out of the text.
- Company examples on the home page and in Premium are now locale-aware: the Russian site shows Russian employers, every other locale shows international ones (Tesla, Uber, Microsoft, Spotify, Meta) whose tasks we carry.
- Removed a stray privacy notice banner on the user profile page.
Το περιβάλλον μιλά πλέον όλες τις γλώσσες της ΕΕ — 21 νέες γλώσσες.
- Προστέθηκαν 21 γλώσσες της ΕΕ: Γερμανικά, Γαλλικά, Ιταλικά, Ολλανδικά, Πολωνικά, Ρουμανικά, Ελληνικά, Τσεχικά, Ουγγρικά, Σουηδικά, Δανικά, Φινλανδικά, Σλοβακικά, Βουλγαρικά, Κροατικά, Λιθουανικά, Σλοβενικά, Λετονικά, Εσθονικά, Ιρλανδικά και Μαλτέζικα. Επίλεξε μία στον διακόπτη γλώσσας ή εντοπίζεται αυτόματα από τη χώρα και τη γλώσσα του browser σου.
- Η σελίδα «Αναφορά σφάλματος» είναι πλέον «Σχόλια» (στο /feedback) με δύο καρτέλες: «Αναφορά σφάλματος» και «Πρόταση βελτίωσης». Οι προτάσεις βελτίωσης φτάνουν στην ομάδα όπως και οι αναφορές σφαλμάτων.
- Στις ρυθμίσεις του προφίλ εμφανίζεται πλέον η ημερομηνία λήξης της συνδρομής, ενώ η διατύπωση «εφάπαξ πληρωμή» αφαιρέθηκε.
- Το αναπτυσσόμενο μενού του διακόπτη γλώσσας είναι πλέον πιο συμπαγές.
- Τα προφίλ ανοίγουν ξανά από την κατάταξη για τους συνδεδεμένους χρήστες — η ιδιωτικότητα κρύβει ένα προφίλ μόνο από ανώνυμους επισκέπτες. Το αναγνωριστικό URL του προφίλ δεν μπορεί πλέον να διαγραφεί, οπότε κάθε προφίλ παραμένει προσβάσιμο μέσω συνδέσμου.
- Η πληρωμή με ξένη κάρτα (η καρτέλα Visa/MC) στο ρωσικό site τιμολογείται πλέον σωστά σε USD και διεκπεραιώνεται μέσω Paddle, αντί να ανοίγει το YooKassa με ποσό σε ρούβλια.
Πιστοποίηση: δώσε μια εξέταση με χρονόμετρο και κέρδισε ένα επαληθεύσιμο πιστοποιητικό επιπέδου.
- Εξετάσεις πιστοποίησης: τρία επίπεδα (Foundations / Practitioner / Expert), 8 ασκήσεις το καθένα, χρονόμετρο ανά άσκηση, βάση επιτυχίας 7 στις 8. Κάθε προσπάθεια λαμβάνει το δικό της dataset, οπότε οι απαντήσεις δεν μπορούν να απομνημονευτούν εκ των προτέρων.
- Ένα επαληθεύσιμο πιστοποιητικό με κωδικό QR που οδηγεί στο δημόσιο προφίλ σου· στο προφίλ εμφανίζεται πλέον μια ενότητα πιστοποιητικών.
- Διέγραψε τον λογαριασμό σου απευθείας από τις ρυθμίσεις του προφίλ.
- Οι ρυθμίσεις προφίλ ανασχεδιάστηκαν σε καθαρό στιλ λίστας με ενότητες· οι χρήστες Premium αποκτούν έναν κινούμενο δακτύλιο γύρω από το avatar τους.
- Η βαθμολόγηση ενισχύθηκε σε 324 ασκήσεις: εκτελείται πλέον σε κρυφό dataset, οπότε δεν μπορείς πια να περάσεις προσαρμόζοντας τη λύση στο ορατό παράδειγμα.
- Η αυτόματη συμπλήρωση του editor προτείνει πλέον τα ονόματα CTE που δηλώνονται μέσω WITH όταν πληκτρολογείς FROM/JOIN.
- Ο AI Mentor βλέπει πλέον το σφάλμα και το τρέχον ερώτημά σου ακόμη και μετά το Run — ένα νέο κουμπί «Explain my error» σου επιτρέπει να συζητήσεις οποιοδήποτε σφάλμα, συμπεριλαμβανομένων των συντακτικών.
- Άσκηση #91: η βαθμολόγηση εκτελείται πλέον σε κρυφό dataset — δεν μπορείς πια να περάσεις προσαρμόζοντας τη λύση στο ορατό παράδειγμα (π.χ. μέσω LIMIT ή hardcoded μήκους).
- Άσκηση #13: αφαιρέθηκε από την εκφώνηση η υπόδειξη φίλτρου που έδινε την απάντηση — τώρα εξάγεις μόνος σου τη λύση.
- Ο Χάρτης Δεξιοτήτων καλύπτει πλέον κάθε κατηγορία ασκήσεων (προστέθηκαν CTE, DDL, συναλλαγές, βελτιστοποίηση) και είναι μεγαλύτερος και πιο ευανάγνωστος.
- Η υπόδειξη «τι να βελτιώσεις» του Χάρτη Δεξιοτήτων δείχνει πλέον το θέμα με τις περισσότερες άλυτες ασκήσεις αντί για ένα τυχαίο.
- Το ετήσιο γράφημα δραστηριότητας εμφανίζει ξανά τα πλήρη ονόματα των μηνών αντί να τα περικόπτει σε ένα μόνο γράμμα.
- Οι λύσεις που επιστρέφουν διάστημα χρόνου (π.χ. η διαφορά δύο ωρών) δεν εμφανίζουν πλέον σφάλμα κατά την υποβολή.
- Άσκηση #88: τα δεδομένα διορθώθηκαν — οι αναχωρήσεις από το Παρίσι έχουν πλέον διαφορετικές διάρκειες αντί για τρεις πανομοιότυπες γραμμές.
- Η αναίρεση (Ctrl+Z) στον editor κρατά πλέον ξεχωριστό ιστορικό ανά καρτέλα ερωτήματος.
- Άσκηση #624: η εκφώνηση αναφέρει πλέον ότι η μέση τιμή πρέπει να στρογγυλοποιείται σε 2 δεκαδικά ψηφία.
- Οι προτάσεις του SQL editor δεν διπλασιάζονται πλέον μετά την πλοήγηση μεταξύ ασκήσεων.
- Άσκηση #621: οι σύλλογοι χωρίς μέλη εμφανίζονται πλέον στο αποτέλεσμα με μηδενικά έσοδα.
- Η δυσκολία της άσκησης #831 άλλαξε από EXPERT σε MEDIUM.
Το SQL Arena είναι πλέον πολύγλωσσο: Αγγλικά, Ισπανικά και Πορτογαλικά, το καθένα με τα δικά του URL σελίδων και αυτόματο εντοπισμό περιοχής.
- Διακόπτης γλώσσας: Ρωσικά, Αγγλικά, Ισπανικά (Ισπανία και Λατινική Αμερική) και Πορτογαλικά.
- Στην πρώτη επίσκεψη το site ανοίγει στη γλώσσα της περιοχής σου και η επιλογή σου απομνημονεύεται.
- Κάθε γλώσσα έχει τα δικά της URL σελίδων (/en, /es, /es-419, /pt-br) που μπορείς να μοιραστείς με ασφάλεια.
- Πληρωμή Premium στο τοπικό σου νόμισμα: RUB, USD, EUR ή BRL ανάλογα με την περιοχή.
- Το αγγλικό site υποστηρίζεται πλήρως· οι μεταφράσεις στα Ισπανικά και Πορτογαλικά κυκλοφορούν σταδιακά.
Οι ασκήσεις δημιουργίας πίνακα δέχονται οποιαδήποτε έγκυρη μορφή, οι υποδείξεις σφάλματος είναι πλέον σχετικές και διορθώθηκε μία άσκηση με διφορούμενη απάντηση.
- Η άσκηση «πιο δημοφιλές ζεύγος μαθημάτων»: τα δεδομένα δείγματος επέτρεπαν αρκετές εξίσου έγκυρες απαντήσεις, ενώ ο βαθμολογητής δεχόταν μόνο μία. Η άσκηση έχει πλέον μία μοναδική σωστή απάντηση.
- Οι ασκήσεις CREATE TABLE απέρριπταν μια σωστή λύση όταν ο μαθητής ονόμαζε έναν περιορισμό (π.χ.
CONSTRAINT ... PRIMARY KEY). Η βαθμολόγηση συγκρίνει πλέον τη δομή του πίνακα — τα ονόματα περιορισμών αγνοούνται. - Μια αποτυχημένη άσκηση δημιουργίας πίνακα εμφάνιζε μια άσχετη υπόδειξη «πρόσθεσε ORDER BY». Η υπόδειξη είναι πλέον εύστοχη — σχετικά με στήλες, τύπους, NOT NULL και κλειδιά.
Οι ασκήσεις τροποποίησης δεδομένων λύνονται ακριβώς όπως λέει η εκφώνηση — χωρίς αδήλωτο επαληθευτικό SELECT.
- Οι ασκήσεις INSERT/UPDATE/DELETE και συναλλαγών (συμπεριλαμβανομένων UPSERT, MERGE, SKIP LOCKED) δεν απαιτούν πλέον αδήλωτο επαληθευτικό SELECT. Βαθμολογούνται πλέον με βάση την τελική κατάσταση του πίνακα και η σελίδα της άσκησης εμφανίζει μια σημείωση «δεν χρειάζεται καταληκτικό SELECT».
- Top λύσεις: οι υπηρεσιακοί λογαριασμοί δεν εμφανίζονται πλέον στη λίστα — όπως και στον δημόσιο πίνακα κατάταξης.
Οι ασκήσεις δημιουργίας πινάκων και ευρετηρίων λύνονται πλέον ακριβώς όπως λέει η εκφώνηση — χωρίς αδήλωτο SELECT· η ζωντανή ανανέωση του πίνακα κατάταξης λειτουργεί ξανά.
- Οι ασκήσεις DDL (CREATE TABLE, ALTER, CREATE INDEX, ξένα κλειδιά) δεν απαιτούν πλέον αδήλωτο επαληθευτικό SELECT. Βαθμολογούνται πλέον με βάση το τελικό σχήμα της βάσης και η σελίδα της άσκησης εμφανίζει μια σημείωση «δεν χρειάζεται καταληκτικό SELECT».
- Σελίδα πίνακα κατάταξης: αποκαταστάθηκε η ζωντανή ανανέωση — η σύνδεση WebSocket του πίνακα κατάταξης δεν αποτυγχάνει πλέον.
- Διάγραμμα σχήματος: σε κάποιες ασκήσεις δεν εμφανίζονταν συνδέσεις μεταξύ πινάκων — τα βέλη των ξένων κλειδιών εμφανίζονται πλέον στο διάγραμμα.
- Ο διάλογος «Σωστά!» δεν εμφανίζει πλέον μια πτώση κατάταξης ως άνοδο — το σήμα κατάταξης εμφανίζεται μόνο σε γνήσια προαγωγή.
Οι ασκήσεις CREATE / ALTER TABLE και άλλες λύσεις πολλαπλών βημάτων μπορούν να υποβληθούν ξανά — το όριο εντολών ανά υποβολή ήταν πολύ αυστηρό.
- Το όριο εντολών ανά υποβολή ανέβηκε από 3 σε 20: οι ασκήσεις DDL (CREATE TABLE, ALTER, ευρετήρια, triggers) και τα DML πολλαπλών βημάτων δεν απορρίπτονται πλέον με σφάλμα «υπερβολικά πολλές εντολές».
Η παραλλαγή MySQL των ασκήσεων του καταλόγου συγχρονίστηκε ξανά με την PostgreSQL — κάποιες ασκήσεις MySQL βαθμολογούνταν σε ξεπερασμένα δεδομένα.
- Η παραλλαγή MySQL εκατοντάδων ασκήσεων εκτελούνταν σε ξεπερασμένο dataset — τα seeds συγχρονίστηκαν ξανά, η απάντηση στη MySQL συμφωνεί ξανά με την PostgreSQL.
- Έξι ασκήσεις που λειτουργούσαν μόνο σε PostgreSQL έχουν πλέον λειτουργική παραλλαγή MySQL.
- Οι ασκήσεις CREATE TABLE / CREATE INDEX / ALTER βαθμολογούνται με βάση το τελικό σχήμα του πίνακα — μια λανθασμένη δομή δεν γίνεται πλέον δεκτή ως σωστή.
- Οι ασκήσεις INSERT που χρησιμοποιούν CURRENT_TIMESTAMP / NOW() δεν απορρίπτουν πλέον μια σωστή απάντηση λόγω διαφοράς στον χρόνο εκτέλεσης.
- Παραδείγματα εξόδου που αποκάλυπταν κατά λάθος την ακριβή απάντηση αντικαταστάθηκαν με δείγματα χωρίς spoiler· η σειρά των γραμμών επιβάλλεται όπου το απαιτεί η άσκηση.
- Ένας έλεγχος σε όλο τον κατάλογο ευθυγράμμισε την εκφώνηση, τα δεδομένα βαθμολόγησης και τη λύση αναφοράς σε αρκετές δεκάδες ασκήσεις όπου είχαν αποκλίνει μεταξύ τους.
Διορθώθηκε η βαθμολόγηση λύσεων πολλαπλών εντολών — ένα DELETE/UPDATE με τελικό SELECT βαθμολογείται πλέον σωστά.
- Οι ημερομηνίες και ώρες στα αποτελέσματα ερωτημάτων εμφανίζονται πλέον καθαρά ως
2024-01-15 08:00:00αντί για την τεχνική μορφή ISO.
- Οι ασκήσεις DML (DELETE, UPDATE, INSERT) με επαληθευτικό SELECT δεν απορρίπτουν πλέον μια σωστή απάντηση ως «επιπλέον στήλες».
- Άσκηση #768: η εκφώνηση συμφωνεί πλέον με τη βαθμολογούμενη απάντηση.
- Η υπόδειξη λανθασμένης απάντησης δεν προτείνει πλέον σύγκριση με το μπλοκ παραδείγματος, το οποίο εσκεμμένα δεν είναι ακριβές.
- Οι ασκήσεις καθαρού UPDATE / DELETE / INSERT βαθμολογούνται πλέον με βάση την τελική κατάσταση του πίνακα — μια λανθασμένη τροποποίηση δεν γίνεται πλέον δεκτή ως σωστή.
Διορθώθηκαν πέντε ασκήσεις όπου το κείμενο της εκφώνησης δεν συμφωνούσε με το σχήμα και την απάντηση.
- Ασκήσεις #762, #763, #764, #765, #809: η εκφώνηση ξαναγράφτηκε ώστε να συμφωνεί με το πραγματικό σχήμα και την αναμενόμενη απάντηση.
- Η δημιουργία ασκήσεων με AI, ο AI Mentor και η φόρμα αναφοράς σφαλμάτων: σε rate-limit εμφανίζουν πλέον «επανάληψη σε N δευτερόλεπτα» αντί για «ThrottlerException».
Διορθώθηκε η άσκηση #17 — ο βαθμολογητής επέστρεφε NULL λόγω σφάλματος στο σχήμα.
- Άσκηση #17 (
average-post-hiatus): το σχήμα ευθυγραμμίστηκε με το seed, ο βαθμολογητής λειτουργεί ξανά.
Στην άσκηση «Move old rows to archive in one go — race-free» (#789), η εκφώνηση ζητούσε μια στήλη customer_id που δεν υπάρχει στο σχήμα. Η διατύπωση ευθυγραμμίστηκε με το πραγματικό σχήμα και τον βαθμολογητή: id, status, amount.
- Άσκηση #789 (
hard-cte-atomic-archive): η περιγραφή ανέφερε μια ανύπαρκτη στήληcustomer_id. Η διατύπωση συμφωνεί πλέον με το σχήμαorders/orders_archiveκαι με τις αναμενόμενες στήλεςid, status, amount.
Το μήνυμα «Too many requests» εμφανίζει πλέον το ακριβές όριο και τα δευτερόλεπτα μέχρι την επαναφορά αντί για το κρυπτικό «ThrottlerException». Το rate-limit στην πλευρά του server ανέβηκε ώστε η γρήγορη πλοήγηση στο track να μην φτάνει πια το ταβάνι.
- Το rate-limit στην πλευρά του server για τα κανονικά αιτήματα API ανέβηκε 5×. Η γρήγορη μετάβαση μπρος-πίσω μεταξύ ασκήσεων εντός ενός track (10+ παράλληλα mount fetches) δεν φτάνει πλέον το ταβάνι και δεν επιστρέφει 429.
- Σε rate-limit κατά το Submit ή το Run, το μήνυμα εμφανίζει πλέον το πραγματικό όριο και τα ακριβή δευτερόλεπτα μέχρι την επανάληψη. Προηγουμένως εμφανιζόταν μόνο το κρυπτικό «ThrottlerException: Too Many Requests» χωρίς υπόδειξη αναμονής.
Το «Start» στην κάρτα του track ξεκινά ξανά πραγματικά το track — ένα αόρατο overlay συνδέσμου της κάρτας απορροφούσε το κλικ και το δρομολογούσε στη σελίδα λεπτομερειών του track.
- Στο
/trainer/tracks, το κουμπί «Start» σε μια κάρτα track δεν οδηγεί πλέον στη σελίδα λεπτομερειών αντί να ξεκινήσει το track. Το κλικ-οπουδήποτε-στην-κάρτα → λεπτομέρειες διατηρείται.
SQL sandbox: φέρε τους δικούς σου πίνακες και ερωτήματα — χωρίς άσκηση, χωρίς βαθμολόγηση. Επιπλέον, μια ενιαία ευρεία διάταξη bento σε πίνακα κατάταξης, πρόοδο, tracks, ασκήσεις και sessions.
- Νέα σελίδα
/sandbox— Monaco editor, πάνελ σχήματος, πάνελ αποτελεσμάτων, καρτέλες δεδομένων ανά πίνακα, αποσπάσματα προθέρμανσης. Τα ανώνυμα sessions λήγουν μετά από 30 λεπτά αδράνειας, οι συνδεδεμένοι χρήστες έχουν 7 ημέρες. - Αποθηκευμένα fiddles: έως 5 στο δωρεάν, απεριόριστα στο Premium. Βιβλιοθήκη με αναζήτηση, αντιγραφή συνδέσμου, διαγραφή και εναλλαγή ιδιωτικότητας.
- Ενιαία ευρεία διάταξη στις σελίδες προσωπικού χώρου — My Fiddles, Πρόοδος, Πίνακας κατάταξης, Sessions, Ασκήσεις, Tracks και η σελίδα λεπτομερειών track μοιράζονται πλέον ένα κέλυφος με gradient hero και ένα συνεπές πλέγμα καρτών.
Τα βέλη αλλαγής θέσης στον πίνακα κατάταξης επέστρεψαν — προηγουμένως η στήλη ήταν κενή επειδή δεν υπήρχε στιγμιότυπο αναφοράς για σύγκριση.
- Ο δείκτης «ανέβηκε / έπεσε / καμία αλλαγή» επέστρεψε δίπλα σε κάθε γραμμή του πίνακα κατάταξης. Το στιγμιότυπο αναφοράς της προηγούμενης εβδομάδας προστέθηκε με seed· το κανονικό εβδομαδιαίο cron θα συνεχίσει να το ανανεώνει.
Διορθώθηκε ένα σφάλμα όπου η επανυποβολή μιας ήδη λυμένης άσκησης αφαιρούσε σιωπηλά Power — το μπόνους «first-try» διαγραφόταν. Σε όλους τους επηρεαζόμενους χρήστες το Power επανυπολογίστηκε.
- Η επανυποβολή λύσης για μια ήδη λυμένη άσκηση δεν διαγράφει πλέον το μπόνους «first-try» — το Power για εκείνη την άσκηση παραμένει το ίδιο όπως αμέσως μετά την πρώτη επιτυχημένη υποβολή.
- Η άσκηση #107 (ανάλυση δαπανών ανά είδος βιβλίου για το 2005) δεν απαιτεί πλέον συγκεκριμένη σειρά γραμμών — γίνεται πλέον δεκτή οποιαδήποτε ταξινόμηση, σύμφωνα με τη διατύπωση της εκφώνησης.
Διορθώθηκε το πάνελ σχήματος ΒΔ σε αρκετές ασκήσεις — οι πορτοκαλί γραμμές σχέσεων μεταξύ συνδεδεμένων πινάκων δεν σχεδιάζονταν.
- Σε κάποιες ασκήσεις το πάνελ «Σχήμα» δεν εμφάνιζε τις σχέσεις μεταξύ πινάκων (τα πορτοκαλί βέλη 1:N) — οι σχέσεις που έλειπαν προστέθηκαν στα datasets.
Διορθώθηκε η άσκηση «Split customers into low / mid / high spenders»: το δείγμα απάντησης και η λύση αναφοράς είχαν αποκλίνει από την εκφώνηση — τώρα όλα χρησιμοποιούν το customer id και τα τμήματα low / mid / high.
- Άσκηση «Split customers into low / mid / high spenders» (#757): το δείγμα απάντησης και η λύση αναφοράς συμφωνούν πλέον με την εκφώνηση — στήλες
customer_id,segment, τμήματαlow/mid/high, ταξινόμηση κατάcustomer_id.
Μια μεγάλη επανασηματοδότηση «Arena»: νέα αρχική σελίδα, ένας εκ νέου φτιαγμένος πίνακας κατάταξης με βάθρο και ζωντανές ενημερώσεις, οι πόντοι μετονομάστηκαν σε «Power» με σήμα μάρκας τσεκούρι μάχης, ανακατασκευασμένα learning tracks και προσαρμοστική δημιουργία ασκήσεων με AI που διαβάζει πραγματικά τις πρόσφατες υποβολές σου.
- Μια νέα καρτέλα «League» — οι 30 χρήστες πιο κοντά σου σε Power. Φίλτρα δυσκολίας στην παγκόσμια καρτέλα (το Power επανυπολογίζεται ανά κλίμακα). Βέλη ανόδου / πτώσης δίπλα σε κάθε θέση — κίνηση εβδομάδας προς εβδομάδα.
- Επιτεύγματα: τα emoji αντικαταστάθηκαν με διανυσματικά εικονίδια χρωματισμένα ανά κατηγορία, τα tooltips του browser εμφανίζουν τοπικοποιημένα ονόματα· στο
/statsείναι ένα πλέγμα με popovers σε πάτημα στο κινητό. Νέο επίτευγμα «10 Expert». - Πέρασε τον δείκτη πάνω από ένα όνομα στον πίνακα κατάταξης για μια μίνι κάρτα χρήστη. Ένα κουμπί «Share rank» — ο σύνδεσμος οδηγεί στο δημόσιο προφίλ σου με μια προεπισκόπηση OG.
- Η αρχική σελίδα ξαναγράφτηκε υπό τη μάρκα «Arena»: ένας δυναμικός τίτλος «Sharpen SQL. Take the offer.», ένας ζωντανός πίνακας σκορ στο hero, μια κλίμακα κατάταξης με καρφίτσα «You», ενότητες για trainer / tracks / AI / Mock Interview mode / πρόοδο, και μια καταληκτική λωρίδα «The axe is in your hand. Swing.». Έτοιμη για κινητά.
- Οι πόντοι μετονομάστηκαν σε «Power». Ο κεραυνός αντικαθίσταται από ένα τσεκούρι μάχης — τώρα στο λογότυπο, στο favicon και στην προεπισκόπηση κοινοποίησης συνδέσμου.
- Η σελίδα του πίνακα κατάταξης ξαναγράφτηκε από την αρχή: ένα βάθρο top-3 (χρυσό / ασημί / χάλκινο), μια προσωπική κάρτα προόδου με μπάρα προς την επόμενη κατάταξη, μία ενιαία sticky μπάρα φίλτρων, η κλίμακα κατάταξης ακριβώς κάτω από την επικεφαλίδα, μια καρφιτσωμένη γραμμή «you» όταν είσαι εκτός των top 50, και ζωντανές ενημερώσεις — ο πίνακας αντιδρά ομαλά στις λύσεις άλλων χωρίς ανανέωση.
- Τα learning tracks ανακατασκευάστηκαν. Analyst / Backend / QA / Data Engineering — ~50 επιμελημένες ασκήσεις το καθένα: μερικοί αντιπρόσωποι ανά κελί θέμα×δυσκολία, από προθέρμανση έως EXPERT, με έμφαση σε προβλήματα πραγματικών συνεντεύξεων. Προστέθηκε ένα track Data Engineering καθώς και ένα ειδικό track προετοιμασίας συνέντευξης.
- Το κουμπί «Generate for me» είναι πλέον γνήσια προσαρμοστικό: διαβάζει τις τελευταίες 40 υποβολές σου, επιλέγει το θέμα με τη χειρότερη πρόσφατη ακρίβεια και βαθμονομεί τη δυσκολία στο επίπεδό σου — αν κολλήσεις η επόμενη πέφτει ένα σκαλί, ένα σερί την ανεβάζει.
- Οι νέοι επισκέπτες προσγειώνονται στο θέμα «Night» από προεπιλογή (προηγουμένως «Evening»). Αν έχεις ήδη επιλέξει θέμα, η επιλογή σου διατηρείται.
- Άσκηση «Say in one number: how many active customers» — η κανονική λύση απαιτούσε πελάτες με ≥2 πληρωμένες παραγγελίες ενώ η περιγραφή λέει «τουλάχιστον μία φορά». Διορθώθηκε ώστε να συμφωνεί με την περιγραφή.
Οι ασκήσεις EXPERT αποδίδουν πλέον πραγματικά 75 power ανά λύση (έως 281 με μπόνους) αντί για τα 10 του επιπέδου EASY. Το συνολικό power για χρήστες που είχαν ήδη ολοκληρώσει μια EXPERT επανυπολογίστηκε αναδρομικά.
- Ο πίνακας ανταμοιβών δεν είχε γραμμή για EXPERT, οπότε ο βαθμολογητής κατέφευγε σε προεπιλογή 10 και κάθε άσκηση EXPERT απέδιδε όσο μια EASY. Η βάση EXPERT είναι πλέον 75 power, με τους ίδιους πολλαπλασιαστές να στοιβάζονται από πάνω (first-try ×2, επιτυχία στο Mock Interview ×1.25, λύση με premium ×1.5) — έως 281 power ανά άσκηση EXPERT. Ένα migration επανέπαιξε το
xp_totalγια κάθε προφίλ υπό τους διορθωμένους κανόνες, οπότε όποιος είχε ήδη λύσει μια EXPERT λαμβάνει το power που έλειπε αυτόματα.
Έκλεισε το παραθυράκι όπου μια άσκηση μπορούσε να «λυθεί» με hardcoding του δείγματος εξόδου: σε 25 datasets ο βαθμολογητής ελέγχει πλέον το ερώτημά σου σε κρυφές γραμμές που διαφέρουν από αυτές που εμφανίζονται στην περιγραφή της άσκησης.
- Οι λύσεις εξακολουθούν να εκτελούνται στους ίδιους πίνακες και στήλες όπως πριν, αλλά οι γραμμές μέσα στο seed βαθμολόγησης διαφέρουν από το ορατό δείγμα. Κάθε γνήσια απάντηση βασισμένη σε ερώτημα συνεχίζει να περνά, ενώ ένα hardcoded
SELECT … UNION ALL …που αντέγραφε τα literals του δείγματος βαθμολογείται πλέον ως «wrong». Καλύπτονται 25 datasets από την τελευταία παρτίδα του καταλόγου (lists, CTE, window, pivot, DML, expert).
Διορθώθηκαν δύο προβλήματα ασκήσεων που ανέφεραν μαθητές: το λάθος ταξινομημένο δείγμα στο «Students by region» και η περιγραφή που είχε αποκλίνει από το σχήμα στην άσκηση καθαρών εσόδων.
- Άσκηση «Students by region» (#357): το δείγμα ανεβαίνει πλέον κατά
rn(Jack / Kim / Lars στην πρώτη γραμμή) και η λύση αναφοράς φέρει ρητόORDER BY rnώστε να παράγει την ίδια σειρά. - Άσκηση «Users with net revenue of at least 100» (#783): ο τίτλος και η περιγραφή συμφωνούν πλέον με τα πραγματικά δεδομένα — χρήστες και συμβάντα
purchase/refund, όχι προϊόντα καιsale/refund, με κατώφλι 100, όχι 1000.
Έξι προχωρημένες ασκήσεις διαθέτουν πλέον έναν προ-φορτωμένο πίνακα — οι λύσεις δεν ξεκινούν πια με προοίμιο CREATE TABLE.
- Έξι ασκήσεις Hard / Expert (UPSERT μονής και πολλαπλών στηλών, CTE με
RETURNING, bulkINSERT … RETURNING, ουράSKIP LOCKED, ξεδίπλωμα πίνακα μέσωUNNEST) ενώθηκαν με τον υπόλοιπο προχωρημένο κατάλογο: ο πίνακας δημιουργείται και τροφοδοτείται στο dataset, και η λύση περιέχει μόνο τη λειτουργία που ελέγχεται συν ένα τελικόSELECTγια βαθμολόγηση.
- Η περιγραφή της άσκησης «View counter» δεν αποκλίνει πλέον από την αναμενόμενη έξοδο: και οι δύο περιγράφουν πλέον τον ίδιο πίνακα
counters(id, count)και πέντε εκτελέσεις της ίδιας γραμμής.
Οι ασκήσεις DDL δεν εμφανίζουν πλέον άσχετους πίνακες στο πλευρικό πάνελ σχήματος.
- Σε 10 ασκήσεις
CREATE TABLE(από εύκολες έως expert) το πλευρικό πάνελ σχήματος απέδιδε πίνακες από ένα άσχετο dataset — π.χ. μια άσκηση για άρθρα εμφάνιζεorders. Το πάνελ είναι πλέον κενό, όπως πρέπει να είναι όταν μια άσκηση σου ζητά να φτιάξεις τον πίνακα από την αρχή.
115 νέες ασκήσεις, τριπλός διακόπτης θέματος Day / Evening / Night και μια πιο απαλή σκούρα παλέτα.
- Ο κατάλογος μεγάλωσε κατά 115 ασκήσεις: 20 εύκολες, 35 μεσαίες, 45 δύσκολες και 15 expert — υποερωτήματα, CTE, window functions, DML/DDL, MERGE, βελτιστοποίηση ερωτημάτων, συναλλαγές, JSONB, αναδρομή και
LATERAL. - Νέο επίπεδο δυσκολίας «Expert» με ένα μενεξεδί σήμα και το δικό του φίλτρο στον κατάλογο.
- Τριπλός διακόπτης θέματος: Day (φωτεινό), Evening (απαλό σκούρο) και Night (βαθύ) — επίλεξε ανάλογα με τον φωτισμό για να ανακουφίσεις την κούραση των ματιών.
- Το σκούρο θέμα έγινε πιο απαλό: ο καμβάς μεταφέρθηκε σε ένα γκρι-μπλε στιλ Linear (
#1B1B1F) αντί για το προηγούμενο σχεδόν μαύρο, το κύριο κείμενο έπεσε σε zinc-300 — λιγότερο halation σε μεγάλες συνεδρίες. - Στη λειτουργία «Night» το πλαίσιο του SQL editor κάθεται τρία βήματα βαθύτερα από τον καμβά με μια ελαφριά ώθηση προς το αληθινό μαύρο — διαβάζεται ως ένα βυθισμένο πάνελ της ίδιας οικογένειας.
- Το cheatsheet θέματος εντός της άσκησης λαμβάνει πλέον υπόψη τη δυσκολία: στα επίπεδα Hard / Expert κρύβει τα βασικά
SELECT/WHERE/ORDER BY/LIMITκαι αναδεικνύει αντ' αυτών προχωρημένα μοτίβα —STRING_AGG,ARRAY_AGG,GROUPING SETS,LATERAL, JSONB, μερικά ευρετήρια και ούτω καθεξής. - Τα ενεργά pills του φίλτρου δυσκολίας πέρασαν σε ένα απαλό γέμισμα με χρώμα μάρκας αντί για συμπαγές μαύρο — δεν χαλούν πλέον την εμφάνιση του φωτεινού θέματος.
- Ρωσικές ετικέτες δυσκολίας: «Лёгкое» → «Лёгкий», «Среднее» → «Средний», «Сложное» → «Сложный».
24 νέα άρθρα blog για αρχάριους.
- Η κάλυψη θεμάτων επεκτάθηκε: DML (
INSERT/UPDATE/DELETE), DDL (CREATE TABLE/ALTER TABLE), συναθροίσεις,DISTINCT, χειρισμός NULL (CASE WHEN/COALESCE/NULLIF), CTE και υποερωτήματα, window functions, συμβολοσειρές και ημερομηνίες.
- Cheat sheet του trainer: κάθε στοιχείο οδηγεί πλέον στο δικό του άρθρο. Προηγουμένως τα τέσσερα στοιχεία window functions οδηγούσαν σε μία ενιαία επισκόπηση — τα
ROW_NUMBER,RANK/DENSE_RANK,PARTITION BYκαιLAG/LEADέχουν πλέον το καθένα το δικό του.
- Άσκηση #114 «How many cardiology wards» — μετονομάστηκε η αναμενόμενη στήλη εξόδου από
countσεwards_countώστε να μην συγκρούεται πλέον οπτικά με τη δεσμευμένη λέξη-κλειδί.
Έκλεισε το παραθυράκι προσαρμογής απαντήσεων: οι ασκήσεις βαθμολογούνται πλέον σε κρυφό dataset.
- Ο βαθμολογητής μπορεί πλέον να εκτελέσει μια άσκηση σε κρυφό dataset. Η κανονική αναφορά επανυπολογίζεται στα ίδια δεδομένα, οπότε οι σωστές λύσεις εξακολουθούν να περνούν ενώ οι σταθερές που δανείζονται από το ορατό δείγμα απορρίπτονται.
- Η άσκηση «Oldest club member» δεν δέχεται πλέον ένα hardcoded
LIMITταιριασμένο στο ορατό δείγμα — μόνο ένα ερώτημα που εκφράζει «όλες τις γραμμές με την ελάχιστη ημερομηνία γέννησης» περνά.
Λείανση των καρτών τιμολόγησης και διορθώσεις στο κουμπί «Sign in & subscribe» αμέσως μετά την v2.2.0.
- Η τιμή και το κουμπί CTA στις κάρτες Free και Premium ευθυγραμμίζονται πλέον στο ίδιο Y.
- Περικόπηκαν οι υποσημειώσεις τιμής για Crypto και Visa/MC — παραμένει μόνο το όνομα του δικτύου πληρωμών.
- Το κουμπί «Sign in & subscribe» είναι ξανά κλικαρισμένο για αποσυνδεδεμένους χρήστες.
Προστέθηκαν πληρωμές crypto και διεθνείς Visa/Mastercard, καθώς και ενισχυμένες άμυνες κατά των bots στη ροή ταυτοποίησης.
- Πληρωμές crypto μέσω NowPayments — BTC, ETH, USDT και άλλα. $21 ανά τρίμηνο / $28 ανά εξάμηνο.
- Διεθνείς Visa/Mastercard μέσω Paddle με αυτόματο VAT/sales tax. $21 / $28.
- Επιλογέας μεθόδου πληρωμής στην κάρτα Premium: κάρτα RU, Crypto, Visa/MC. Το νόμισμα αλλάζει ανά μέθοδο.
- Cloudflare Turnstile στη σύνδεση και την εγγραφή — αόρατο για τους ανθρώπους, μπλοκάρει τα bots.
- Ο λογαριασμός κλειδώνει για 15 λεπτά μετά από 5 λάθος κωδικούς (εκθετικά έως 24 ώρες) με ρητή αντίστροφη μέτρηση.
- Τα σφάλματα σύνδεσης και εγγραφής εκφράζονται πιο ανθρώπινα — τέλος στα ακατέργαστα «Forbidden» ή «Invalid credentials».
- Όριο ρυθμού υποβολών: 5/λεπτό, 30/15λεπτά ανά χρήστη. Δεν επηρεάζει τις πραγματικές συνεδρίες επίλυσης.
- Μετά τη σύνδεση επιστρέφουμε στη σελίδα από την οποία ήρθες — συμπεριλαμβανομένου του OAuth (Google, GitHub, Yandex).
- Η αποσύνδεση από μια δημόσια σελίδα δεν σε πετάει πλέον στην αρχική σελίδα.
Ολοκληρώθηκε η διόρθωση αποθήκευσης Telegram, GitHub και LinkedIn στη σελίδα προφίλ. Η προηγούμενη έκδοση διόρθωσε τον normaliser του username στο backend, αλλά το front-end component έκανε short-circuit στο onBlur — το PATCH δεν εκτελούνταν ποτέ. Το πεδίο δεχόταν οπτικά την είσοδο, ο server έμενε κενός, και μετά από επαναφόρτωση το πεδίο ήταν κενό. Τώρα η σύγκριση στο blur χρησιμοποιεί την τιμή που καταγράφηκε κατά το focus, όχι την είσοδο σε εξέλιξη.
- Τα πεδία Telegram, GitHub και LinkedIn στη σελίδα προφίλ αποθηκεύονται ξανά. Ένα useEffect επανέγραφε το ref «last-saved» σε κάθε πληκτρολόγηση, οπότε ο έλεγχος onBlur συνέκρινε την τρέχουσα τιμή με τον εαυτό της και παρέκαμπτε το PATCH. Ο έλεγχος blur συγκρίνει πλέον με ένα στιγμιότυπο που λαμβάνεται κατά το focus.
Διορθώθηκε η αποθήκευση των handles Telegram, GitHub και LinkedIn στη σελίδα προφίλ: η πληκτρολόγηση της μορφής placeholder όπως t.me/username κοβόταν σε σκουπίδια όπως t.me. Τώρα οποιαδήποτε είσοδος — σκέτο handle, @handle, t.me/handle ή https://t.me/handle — κανονικοποιείται σε ένα καθαρό username.
- Τα πεδία Telegram, GitHub και LinkedIn στη σελίδα προφίλ αποθηκεύονται πλέον σωστά όταν η διεύθυνση πληκτρολογείται χωρίς
https://. Προηγουμένως τοt.me/durovαποθηκευόταν ωςt.me, τοgithub.com/octocatωςgithub.com, επειδή ο normaliser απαιτούσε σχήμαhttp(s)://και αλλιώς έκοβε την τιμή στην πρώτη κάθετο.
Αφαιρέθηκε το ψευδώς θετικό banner upsell premium στο πάνελ αποτελέσματος επίλυσης: ενεργοποιούνταν σε δωρεάν ασκήσεις και ακόμη και για χρήστες premium. Ήταν νεκρό UI εξαρχής — οι ασκήσεις premium μπλοκάρονται κατά το άνοιγμα, οπότε ο editor δεν τις βλέπει ποτέ.
- Στο modal εορτασμού «Σωστά!» το pill «+50% Power per solve — go Premium» έχει πλέον σωστό οριζόντιο padding — η κορώνα και το chevron δεν αγγίζουν πλέον τα άκρα του pill.
- Ο AI Mentor λαμβάνει πλέον συμπαγές πλαίσιο άσκησης: ενεργή διάλεκτο SQL, πίνακες, σχέσεις, αναμενόμενες στήλες, δείγμα εξόδου και το πιο πρόσφατο diff βαθμολόγησης. Η SQL αναφοράς χρησιμοποιείται μόνο ως ιδιωτικό πλαίσιο για εξηγήσεις σφαλμάτων και μεταγενέστερα επίπεδα υποδείξεων.
- Το banner upsell «Interview tasks — Premium» έφυγε από το πάνελ ανατροφοδότησης. Προηγουμένως οποιοδήποτε σφάλμα στην πλευρά του server που περιείχε τη λέξη
premiumστο stack trace του (π.χ. μια στήληsolved_as_premiumπου έλειπε αμέσως μετά από ένα migration) ενεργοποιούσε μια αντιστοίχιση substring και απέδιδε το upsell — ακόμη και σε δωρεάν ασκήσεις και ακόμη και για χρήστες premium.
Το Premium αποδίδει πλέον +50% Power ανά λυμένη άσκηση — η ενίσχυση κολλάει στην άσκηση για πάντα, ακόμη και μετά τη λήξη της συνδρομής. Ο AI Mentor δεν δίνει πλέον τη λύση στην πρώτη υπόδειξη και κλιμακώνει πλέον τη βοήθεια ανά άσκηση. Επίσης αφαιρέθηκε το αρχικό σχόλιο -- Click ▶ Run από τον editor της πρώτης άσκησης.
- Η συνδρομή Premium αποδίδει έναν πολλαπλασιαστή Power ×1.5 σε κάθε λυμένη άσκηση. Η ενίσχυση κλειδώνεται τη στιγμή της επίλυσης, οπότε παραμένει στο σύνολό σου ακόμη κι αν η συνδρομή λήξει αργότερα.
- Το modal εορτασμού «Σωστά!» εμφανίζει πλέον μια προτροπή αναβάθμισης για δωρεάν χρήστες ακριβώς κάτω από το chip +Power: «Get +50% Power per solve — go Premium», με σύνδεσμο προς το /pricing.
- Ο AI Mentor κλιμακώνει πλέον τις υποδείξεις ανά άσκηση. Το πρώτο αίτημα λαμβάνει μια προτροπή μόνο κατεύθυνσης χωρίς ονόματα τελεστών· τα αιτήματα 2-4 προσθέτουν έννοια και κατηγορία· από το αίτημα 5 ο mentor μπορεί να ονομάσει
LIKE/WHERE/GROUP BYαπευθείας. Ο μετρητής μηδενίζεται κάθε 24 ώρες. - Οι εξηγήσεις λανθασμένων απαντήσεων ακολουθούν πλέον τα ίδια επίπεδα υποδείξεων με τις απλές υποδείξεις — δεν αποκαλύπτουν πλέον συγκεκριμένους τελεστές στην πρώτη κιόλας αποτυχημένη υποβολή.
- Έκλεισαν τα υπόλοιπα ευρήματα του ελέγχου ασκήσεων SQL: διορθώθηκε η αναφορά του Tournament Winners, ευθυγραμμίστηκαν οι προεπισκοπήσεις TIMESTAMP σε αρκετές ασκήσεις και αποκαταστάθηκε η παραλλαγή PostgreSQL για μία άσκηση AI.
- Αφαιρέθηκε το αρχικό σχόλιο
-- Click ▶ Run — see what's in this tableαπό τον editor της πρώτης άσκησης. Οι ανοιγμένες ασκήσεις ξεκινούν πλέον από έναν κενό editor.
Ανανεώθηκαν τα φίλτρα του καταλόγου ασκήσεων: η κατάσταση έγινε ένα segmented control 3 καταστάσεων (All / Unsolved / Solved) με προεπιλογή το Unsolved, προστέθηκε φίλτρο διαλέκτου, τα chips θεμάτων και εταιρειών εμφανίζουν πλέον τον τρέχοντα αριθμό ασκήσεών τους, τα ενεργά φίλτρα εμφανίζονται ως αφαιρούμενα pills με μια δυνατότητα «Reset all».
- Φίλτρο διαλέκτου στον κατάλογο: All / PG / MySQL — το δικό του segment δίπλα στο control κατάστασης.
- Τα chips θεμάτων και εταιρειών εμφανίζουν πλέον πόσες ασκήσεις ταιριάζουν: «Windows (43)», «Tinkoff (5)». Τα chips με μηδέν ασκήσεις ξεθωριάζουν.
- Γραμμή pills ενεργών φίλτρων: κάθε εφαρμοσμένο φίλτρο (αναζήτηση, δυσκολία, κατάσταση, διάλεκτος, αγαπημένα, θέμα, ετικέτα, εταιρεία, περιοχή) αποδίδεται ως αφαιρούμενο pill· το «Reset all» επαναφέρει τα πάντα στις προεπιλογές.
- Το φίλτρο κατάστασης άσκησης είναι πλέον ένα segmented control 3 καταστάσεων (All / Unsolved / Solved), με προεπιλογή το Unsolved. Αντικαθιστά το μοναδικό toggle «Hide solved».
- Το control ταξινόμησης μετακινήθηκε στην πάνω μπάρα — προηγουμένως ήταν θαμμένο στο κάτω μέρος και κρυμμένο πίσω από το scroll.
- Το toggle αγαπημένων μετακινήθηκε στην πάνω μπάρα φίλτρων — τώρα δίπλα στα άλλα δυαδικά toggles.
- Το σήμα φίλτρου δεν δείχνει πλέον «1» εξ ορισμού — η προεπιλεγμένη προβολή «Unsolved» δεν μετράται ως εφαρμοσμένο φίλτρο.
Έλεγχος σε όλο τον κατάλογο: ο βαθμολογητής δεν απορρίπτει πλέον σωστές απαντήσεις λόγω σειριοποίησης DATE-έναντι-TIMESTAMP, οι προεπισκοπήσεις δείγματος σε 60+ ασκήσεις συμφωνούν πλέον με αυτό που πραγματικά επιστρέφει η λύση αναφοράς, και 5 ασκήσεις που χρησιμοποιούν CURRENT_DATE / NOW() καρφώθηκαν σε μια σταθερή αναφορά ώστε οι προεπισκοπήσεις να μην αποκλίνουν μέρα με τη μέρα. Επιπλέον, μια διόρθωση περιγραφής στην άσκηση μηνιαίων συναλλαγών από αναφορά σφάλματος χρήστη.
- Βαθμολογητής: προστέθηκε κανονικοποίηση date-ως-timestamp (
2024-01-01T00:00:00.000Z↔2024-01-01) — οι σωστές απαντήσεις σταματούν να λαμβάνουν «το πλήθος γραμμών ταιριάζει, τα περιεχόμενα διαφέρουν» λόγω μορφοποίησης τύπου επιστροφής. - Άσκηση «Monthly transactions and chargebacks»: η περιγραφή διευκρινίζει πλέον ότι ένα chargeback ανήκει στον μήνα της αρχικής συναλλαγής, όχι στην ημερομηνία της επιστροφής χρημάτων· η προεπισκόπηση εμφανίζει ημερομηνίες πρώτης ημέρας του μήνα αντί για χρονοσημάνσεις ISO μετατοπισμένες κατά TZ.
- Αναγεννήθηκαν οι προεπισκοπήσεις δείγματος σε 60+ ασκήσεις: αριθμητική μορφοποίηση (
100→100.00), εμφάνιση ζώνης ώρας (+03→+00), DATE-ως-TIMESTAMP, INTERVAL-ως-αντικείμενο — η προεπισκόπηση συμφωνεί πλέον με αυτό που επιστρέφει ο ζωντανός runner. - Πέντε ασκήσεις που χρησιμοποιούν
CURRENT_DATE/NOW()/CURRENT_TIMESTAMPστο seed τους (#170, #601, #602, #668, #693) καρφώθηκαν πλέον στο2026-05-05 12:00:00 UTC. Οι προεπισκοπήσεις σταματούν να αποκλίνουν.
Ανανεώθηκε το blog: αναζήτηση, πλοήγηση σε 10 ενότητες, τα πρώτα 7 tutorials για αρχάριους. Τα ονόματα εντολών στο cheatsheet εντός της άσκησης είναι πλέον κλικαρισμένοι σύνδεσμοι προς άρθρα. Η σελίδα releases απέκτησε ένα δέντρο εκδόσεων με scroll-spy.
- Blog: αναζήτηση σε τίτλους, περιεχόμενο και ετικέτες + αριστερό sidebar ενοτήτων. Η ενεργή ενότητα επισημαίνεται κατά το scroll.
- Blog: 7 πρώτα tutorials για αρχάριους —
SELECT … FROM,WHERE,ORDER BY,LIMIT,INNER JOIN,LEFT JOIN, ψευδώνυμα. - Cheatsheet θέματος εντός της άσκησης: τα ονόματα εντολών είναι πλέον μπλε σύνδεσμοι προς το αντίστοιχο tutorial του blog — ανοίγουν σε νέα καρτέλα.
- Σελίδα releases: αριστερό δέντρο εκδόσεων ομαδοποιημένο κατά
major.minor· το κλικ κάνει scroll στην έκδοση και ενημερώνει την αγκύρωση hash. - Κουμπί «Copy SQL» σε κάθε γραμμή της καρτέλας Submissions.
- Ρωσική συμφωνία πληθυντικού παντού: «221 задача», «2 задачи», «5 задач» αντί για το παλιό «221 задач».
- Το cheatsheet θέματος εντός της άσκησης δεν τρεμοπαίζει πλέον όταν αναπτύσσεται — η διαδρομή της μπάρας κύλισης δεσμεύεται πλέον.
- Οι πίνακες Markdown στα άρθρα του blog αποδίδονται πλέον ως πίνακες HTML αντί για μία μόνο γραμμή απλού κειμένου.
Σάρωση ποιότητας σε όλο τον κατάλογο: επιδιορθώθηκαν 23 μη εκτελέσιμες ασκήσεις, ξαναγράφτηκαν 66 αγγλικές περιγραφές, ευθυγραμμίστηκαν περιγραφές και προεπισκοπήσεις δείγματος σε μερικές δεκάδες ακόμη. Επιπλέον, μία διόρθωση που ανέφερε χρήστης.
- Οι προεπισκοπήσεις δείγματος σε 50+ ασκήσεις συμφωνούν πλέον με αυτό που επιστρέφει η λύση αναφοράς.
- Συμπτύχθηκαν οι διπλότυπες ετικέτες εταιρειών στα chips φίλτρων ασκήσεων.
- Επιδιορθώθηκαν 23 ασκήσεις (pharma-*, loyal-*, hotel-*, qa-*) που δεν μπορούσαν να λυθούν λόγω αναντιστοιχίας σχήματος/seed.
- Ξαναγράφτηκαν οι αγγλικές περιγραφές σε 66 ασκήσεις lc-* / lc2-* που προηγουμένως διέθεταν ένα stub ή απόσπασμα.
- Η άσκηση «Rooms Booked on September 2, 2019» δεν δέχεται πλέον τη λανθασμένη απάντηση.
- Δέκα ασκήσεις όπου η περιγραφή διαφωνούσε με τη λύση αναφοράς είναι πλέον συνεπείς.
- Επτά ασκήσεις της Tochka διέθεταν την εκφώνηση κάποιου άλλου προβλήματος — ξαναγράφτηκαν.
69 νέες ασκήσεις αντλημένες από πραγματικές συνεντεύξεις εργασίας της ρωσικής αγοράς (Yandex, Tinkoff, Sber, VTB, Alfa, VK, Ozon, Avito, Magnit, Samokat και 23 ακόμη εταιρείες) — δομημένες γύρω από το ευρύτερο σύμπαν τύπων της PostgreSQL: UUID, JSONB, ENUM, INTERVAL, TSTZRANGE, INET, NUMERIC και POINT. Επιπλέον, βασικές διορθώσεις από αναφορές χρηστών και ένας δείκτης κόκκινης κουκκίδας «What's new» στο sidebar.
- 69 νέες ασκήσεις παρμένες από πραγματικές συνεντεύξεις σε ρωσικές εταιρείες. 33 εργοδότες: Yandex, Tinkoff / T-Bank, Sber / SberMarket, VTB, Alfa-Bank, Gazprombank, Rosbank, Sovcombank, MTS / MTS Bank, Otkritie, Renaissance Bank, Megafon, VK, Ozon, Avito, Magnit, Lenta, Wildberries, Cian, ivi, Delimobil, Aviasales, Samokat, Domclick, Lesta, Skypro, Uchi.ru, Sravni.ru, Vizor, CloudReports και Yandex Practicum. Όλες με ετικέτα Interview, προσβάσιμες στο Premium.
- Πλούσιοι τύποι PostgreSQL στα σχήματα ασκήσεων. Οι περισσότερες ασκήσεις χρησιμοποιούσαν
INT+VARCHAR(100)— εντάξει για παραδείγματα εγχειριδίου, μακριά από την παραγωγή. Οι νέες ασκήσεις εισάγουνUUIDγια PK πελατών και παραγγελιών,NUMERIC(15,2)για χρήματα καιNUMERIC(12,4)για συναλλαγματικές ισοτιμίες,TIMESTAMPTZγια συμβάντα,INTERVALγια διάρκειες κλήσεων και συνεδριών,TSTZRANGE/DATERANGE/NUMRANGEγια ιστορικά SCD2 και παράθυρα εγκυρότητας,JSONBγια μεταδεδομένα και payloads συμβάντων,ENUM(με ρητόCREATE TYPE) για καταστάσεις και κατηγορίες,INETγια IP σε ασκήσεις antifraud,POINTγια συντεταγμένες GPS,TEXT[]/INTEGER[]για ετικέτες και πίνακες ID. Έτσι ο trainer σε εκθέτει στους ίδιους τύπους που θα συναντήσεις στην παραγωγή. - Δείκτης κόκκινης κουκκίδας στην καταχώρηση «What's new» του sidebar — εμφανίζεται όταν έχει κυκλοφορήσει μια νέα έκδοση που δεν έχεις ανοίξει ακόμη. Η κουκκίδα εξαφανίζεται μετά από μία επίσκεψη στο
/releases(η σημαία ζει στο localStorage αυτού του browser). Προηγουμένως ο δείκτης υπήρχε μόνο στην πάνω navbar· σε διατάξεις μόνο με sidebar δεν ήταν προσβάσιμος.
- Σωστή απόδοση των νέων τύπων στον πίνακα αποτελεσμάτων ερωτήματος. Προηγουμένως οι στήλες
JSONB,INTERVALκαιPOINTαποδίδονταν ως «[object Object]» και οι πίνακες (TEXT[],INTEGER[]) συμπτύσσονταν σε συμβολοσειρές χωρισμένες με κόμμα — η δομή ήταν αόρατη. Τώρα το JSONB και οι πίνακες αποδίδονται ως ευανάγνωστο JSON, το INTERVAL ως1d 02:30:00, το POINT ως(x, y). Οι τιμές boolean και τα UUID διατηρούν την απόδοση κειμένου. - Τα διαγράμματα ER στη σελίδα της άσκησης απέκτησαν καταχωρήσεις παλέτας για τους νέους τύπους: UUID βιολετί, JSONB κίτρινο, INTERVAL μωβ (ίδια οικογένεια με τους άλλους τύπους ημερομηνίας/ώρας), TSTZRANGE / DATERANGE / NUMRANGE ροζ, INET κυανό, POINT ροζ, custom ENUM ροζ-κόκκινο. Προηγουμένως αυτοί οι τύποι κατέληγαν στο προεπιλεγμένο γκρι και ήταν δυσδιάκριτοι από τα απλά INT / VARCHAR.
- Οι έξι παραπάνω διορθωμένες ασκήσεις απέκτησαν επίσης ένα εμπλουτισμένο σχήμα στο ίδιο στιλ με το νέο σύνολο συνεντεύξεων: πρωτεύοντα κλειδιά
UUID, payloadsJSONB, τύποιENUMγια φύλο / κατηγορίες / καταστάσεις,NUMERIC(15,2)στη θέση τουINTγια μισθούς και τιμές,INTERVALγια διάρκειες. Η διατύπωση της άσκησης προσαρμόστηκε ελαφρώς ώστε να αξιοποιεί τους νέους τύπους, αλλά το υποκείμενο πρόβλημα παραμένει αμετάβλητο. Αυτό είναι το πρώτο βήμα στην αναβάθμιση παλαιότερων ασκήσεων — περισσότερα σε επερχόμενες εκδόσεις.
- Διορθώθηκε μια χούφτα παλαιότερων ασκήσεων που ανέφεραν χρήστες. «Project Employees II» — το διάγραμμα ER εμφάνιζε Employee + Department αντί για Project + Employee, ενώ το υποκείμενο σχήμα ήταν σωστό· ευθυγραμμίσαμε το διάγραμμα. «Reported Posts» — η περιγραφή δεν διευκρίνιζε ότι ο λόγος αναφοράς βρίσκεται στη στήλη
extra: τώρα το κάνει. «Sales Analysis I» — η λύση αναφοράς χρησιμοποιούσεSUM(price)παρότι το σχήμα έχει στήληquantity, κάτι που μπέρδευε· αναδιατυπώθηκε ωςSUM(quantity * price), πιο κοντά στα πραγματικά έσοδα. «Swap Salary» — η άσκηση ήταν συνδεδεμένη με το λάθος dataset (Employee + Department αντί γιαSalary(id, name, sex, salary)), καθιστώντας τη μη επιλύσιμη· επανασυνδέθηκε με το κανονικό dataset. Η ίδια σιωπηλή απόκλιση ER στα «Project Employees III» και «Reported Posts II» έλαβε την ίδια διόρθωση.
Μεγάλη έκδοση: μια νέα πλοήγηση με αριστερό sidebar, η αυστηρή λειτουργία Mock Interview με μπόνους +25% Power, δημόσια προφίλ και φίλοι, ειδοποιήσεις email, ετικέτες εταιρειών σε χρώματα μάρκας, επιπλέον φίλτρα και ένα μπλοκ μαθημάτων συνεργατών. Επιπλέον, μια σημαντική διόρθωση ιδιωτικότητας μεταξύ λογαριασμών και δεκάδες στοιχεία λείανσης UX.
- Μπλοκ μαθημάτων συνεργατών. Στη σελίδα ασκήσεων (σε ευρείες οθόνες) μια δεξιά στήλη εμφανίζει ένα επιμελημένο σύνολο μαθημάτων συνεργατών· στο κινητό είναι ένα οριζόντιο carousel πάνω από τη λίστα. Οι κάρτες οδηγούν σε landing pages συνεργατών με ετικέτες UTM — για εμάς, ένας τρόπος να κρατάμε χαμηλά την τιμή της συνδρομής καλύπτοντας το κόστος υποδομής.
- Νέα λειτουργία Mock Interview — μια αυστηρή προσομοίωση μιας πραγματικής συνέντευξης. Οποιαδήποτε μεμονωμένη παράβαση (αλλαγή καρτέλας, επικόλληση, έξοδος από fullscreen, θόλωμα παραθύρου > 1 δευτερόλεπτο) αποτυγχάνει αυτόματα τη συνεδρία. Οι υποδείξεις, ο AI Mentor και το cheatsheet είναι κρυμμένα και κλειδωμένα. Διάρκειες: 5 / 10 / 15 / 30 / 60 λεπτά. Δωρεάν επίπεδο — 1 προσπάθεια ανά ημέρα· Premium — απεριόριστες. Όσο μια συνεδρία είναι ζωντανή η γύρω πλοήγηση (sidebar, «Tasks», «Top solutions», «Next task», «Leave track», Prev/Next/Random) είναι κλειδωμένη — η μόνη έξοδος είναι το ρητό κουμπί «End» ή το κλείσιμο της καρτέλας (που εγκαταλείπει αυτόματα τη συνεδρία).
- +25% Power για κάθε άσκηση που ολοκληρώνεται στη λειτουργία Mock Interview — το μπόνους είναι ανά άσκηση και επισημαίνεται στην αναφορά μετά τη συνεδρία. Ο πίνακας κατάταξης έχει πλέον μια ενημερωτική στήλη «Mock» (το ίδιο πλήθος εμφανίζεται στην κάρτα προφίλ και στο
/u/<username>)· δεν επηρεάζει τη σειρά ταξινόμησης βάσει Power. - Δημόσια προφίλ στο
/u/<username>: επίλεξε ένα σύντομο handle και ενεργοποίησε το δημόσιο toggle — οποιοσδήποτε ανώνυμος επισκέπτης βλέπει την κατάταξη, το Power, το τρέχον streak, το πλήθος επιτευγμάτων, τον χάρτη θερμότητας δραστηριότητας και τους συνδέσμους GitHub / Telegram / LinkedIn. Δεν εκτίθενται ιδιωτικά δεδομένα. - Φίλοι: πρόσθεσε χρήστες με το δημόσιο handle τους, διαχειρίσου εισερχόμενα και εξερχόμενα αιτήματα, δες μια ειδική καρτέλα πίνακα κατάταξης φίλων με το Power, το streak και τις λυμένες ασκήσεις τους.
- Αγαπημένα: κάθε κάρτα άσκησης έχει πλέον ένα αστέρι — κάνε κλικ και η άσκηση προσγειώνεται στο φίλτρο «Favourites only». Η λίστα ζει στον server συνδεδεμένη με τον λογαριασμό σου και επιβιώνει σε αλλαγές browser.
- Ειδοποιήσεις email (toggles στο προφίλ). «Save your streak» — βραδινή υπενθύμιση όταν το streak σου είναι ≥ 3 ημέρες και δεν έχεις λύσει κάτι σήμερα. «Weekly digest» — πρωινή ανακεφαλαίωση Σαββάτου με τις λυμένες ασκήσεις της προηγούμενης εβδομάδας, το τρέχον streak και την πιο αδύναμη κατηγορία.
- Οι χρήστες Premium επισημαίνονται οπτικά όπου εμφανίζονται avatars: ένας ολογραφικός δακτύλιος gradient (πίνακας κατάταξης, φίλοι, προφίλ, sidebar, δημόσια σελίδα
/u/<username>)· ένα μικρό σήμα Crown στη γωνία σε μεγάλα avatars. Δεν επηρεάζει τη σειρά ταξινόμησης. - Ετικέτες εταιρειών σε χρώματα μάρκας στις κάρτες ασκήσεων: κίτρινο για Yandex / Tinkoff / Beeline, πράσινο για Sberbank / Spotify / OpenAI, μπλε για VK / Ozon / Google / Meta, κόκκινο για MTS / Alfa / Tesla, μωβ για Stripe / Skypro / Wayfair, πορτοκαλί για Amazon / Alibaba και ούτω καθεξής. Προηγουμένως κάθε ετικέτα ήταν ένα ενιαίο μωβ.
- Επιπλέον chips ρητρών SQL στο φίλτρο «Topic» της σελίδας ασκήσεων: παράλληλα με τις 8 ευρείες κατηγορίες (SELECT, JOIN, υποερωτήματα, window, συναθροίσεις, CTE, DML, DDL) μπορείς πλέον να εναλλάσσεις
GROUP BY,COUNT,HAVING. Συνδύασέ τα με κατηγορίες για πιο αιχμηρό φιλτράρισμα. - Το πάνελ «DB Schema» στη σελίδα της άσκησης μπορεί πλέον να συμπτυχθεί. Το toggle δίπλα στον τίτλο της άσκησης κρύβει τη στήλη και ελευθερώνει πλάτος για τον editor και τον πίνακα αποτελεσμάτων. Η κατάσταση σύμπτυξης απομνημονεύεται ανά browser, οπότε το σχήμα ανοίγει με τον ίδιο τρόπο στην επόμενη άσκηση.
- 8 νέες ασκήσεις συνέντευξης από την Tochka — από EASY έως HARD. Σενάρια CRM (εύρεση πελατών με ενεργή αίτηση), υπολογισμοί χαρτοφυλακίου (δομή, σταθμισμένη μέση λήξη, δυναμική αξίας), ερωτήματα ομολόγων με window functions. Λύσεις τόσο για PostgreSQL όσο και για MySQL.
- Ενότητα blog στο
/blog. Εκτενή tutorials — ξεκινώντας με μια εις βάθος ανάλυση window functions. Δίγλωσσο περιεχόμενο, slug URLs, OG cards για κοινοποίηση στα social. Προσβάσιμη από το footer και το κάτω μέρος του sidebar. - Προσαρμοσμένη σελίδα 404. Η παλιά προεπιλογή του Next.js απέδιδε μαύρο κείμενο σε λευκό — αόρατο στη σκούρα λειτουργία. Η νέα σελίδα χρησιμοποιεί tokens θέματος και ζει μέσα στο κοινό κέλυφος, κρατώντας την πλοήγηση κοντά.
- Η πλοήγηση ανασχεδιάστηκε. Για τους συνδεδεμένους χρήστες εντός της εφαρμογής η κύρια πλοήγηση μετακινήθηκε σε ένα αριστερό sidebar — το Trainer, η Πρόοδος, ο Πίνακας κατάταξης και οι άλλες ενότητες ζουν εκεί, με το Power + streak κάτω από το avatar σου και τους διακόπτες γλώσσας/θέματος στο κάτω μέρος. Η landing page, η τιμολόγηση και οι ροές ταυτοποίησης διατηρούν τη λεπτή πάνω μπάρα. Οι σελίδες utility (What's new / Report a bug / Blog) κληρονομούν όποιο chrome ήρθες.
- Ο δακτύλιος gradient Premium γύρω από τα avatars εμφανίζεται πλέον σε κάθε καρτέλα του πίνακα κατάταξης — προηγουμένως ο δακτύλιος εμφανιζόταν μόνο στην καρτέλα «All time» και εξαφανιζόταν σιωπηλά στις «Week» και «Month» επειδή το backend δεν εξέπεμπε τη σημαία συνδρομής για τις περιοδικές κατατάξεις.
- Οι επεξεργασίες ονόματος και avatar στο προφίλ σου αντικατοπτρίζονται πλέον άμεσα στο sidebar — δεν απαιτείται επαναφόρτωση σελίδας. Προηγουμένως η παλιά κάρτα χρήστη μπορούσε να παραμείνει μέχρι μια πλήρη ανανέωση.
- Διαρροές δεδομένων μεταξύ λογαριασμών κατά την εναλλαγή χρηστών στον ίδιο browser. Προηγουμένως, μετά από logout / login με διαφορετικό λογαριασμό αυτά μπορούσαν να παραμείνουν: νήματα συνομιλίας AI Mentor, προσχέδια SQL στον editor, σημαίες «solved» ανά άσκηση, ενεργές συνεδρίες mock-interview, μετρητής δημιουργίας AI, cache αγαπημένων. Τώρα το logout και κάθε διαδρομή login (φόρμα, OAuth, επαλήθευση email) διαγράφει ό,τι συνδέεται με τον προηγούμενο χρήστη.
- Ο σύνδεσμος «Friends rating» από το προφίλ προσγειώνεται πλέον απευθείας στην καρτέλα Friends — προηγουμένως σε άφηνε στον παγκόσμιο πίνακα κατάταξης. Η λωρίδα αρχαρίων «Start here» δεν επιστρέφει πλέον αφού την απορρίψεις· προηγουμένως η απόρριψη μηδενιζόταν σε κάθε logout / login.
- Δεκάδες στοιχεία λείανσης διάταξης και αλληλεπίδρασης για κινητά: ένα πιο συμπαγές modal αναφοράς μετά τη συνεδρία, σωστή απόσταση φίλτρων σε στενές οθόνες, το banner ανατροφοδότησης δεν επικαλύπτει πλέον το πλευρικό πάνελ στα 1024px, πεδία ονόματος + email στη σελίδα αναφοράς σφαλμάτων για ανώνυμους υποβάλλοντες.
Hotfix UX του editor σε στενές οθόνες: το popup «Editor settings» δεν περικόπτεται πλέον από το πάνελ κώδικα και δεν ξεχειλίζει πέρα από το άκρο του viewport στο κινητό. Το ίδιο κουμπί γραναζιού που έχει το desktop ζει πλέον και στη γραμμή εργαλείων του κινητού, και η ρύθμιση μεγέθους γραμματοσειράς εφαρμόζεται επιτέλους στον editor του κινητού.
- Το popup «Editor settings» μπορούσε να περικοπεί από τα άκρα της σελίδας και δεν είχε εσωτερικό scroll — σε στενό laptop ή τηλέφωνο, οι μισές ρυθμίσεις ήταν απλώς αόρατες. Το popup αποδίδεται πλέον πάνω από όλη τη σελίδα (μέσω portal), προσαρμόζεται αυτόματα στην ορατή περιοχή και αποκτά μια εσωτερική μπάρα κύλισης όταν το περιεχόμενό του ξεπερνά το ύψος του viewport. Η επικεφαλίδα με τον τίτλο και το κουμπί κλεισίματος παραμένει sticky κατά το scroll.
- Στην προβολή editor κινητού (≤1024px) η γραμμή εργαλείων δεν είχε το γρανάζι ρυθμίσεων editor — το «Font size» ήταν προσβάσιμο μόνο από το desktop. Το γρανάζι κάθεται πλέον δίπλα στα PG/MySQL και Format, και η ρύθμιση μεγέθους γραμματοσειράς πραγματικά κλιμακώνει την είσοδο του editor κινητού.
Hotfix από αναφορά σφάλματος: η άσκηση #240 («Staff Bonuses») απέδιδε λάθος σχήμα — εμφάνιζε Employee + Department αντί για το πραγματικό Employee + Bonus, καθιστώντας την εκφώνηση δυσανάγνωστη.
- Άσκηση #240 «Staff Bonuses»: ο schema viewer απέδιδε ξεπερασμένους πίνακες
Employee + Department(με πεδίαdepartment_id,manager_id) και μια κενή καρτέλαDepartment. Το sandbox και η λύση αναφοράς ήταν σωστά εξαρχής — μόνο τα metadata του viewer ήταν λάθος. Τώρα το σχήμα εμφανίζει τους πραγματικούς πίνακεςEmployee + Bonusμε τη σχέσηBonus.empId → Employee.empId.
Εμπλουτισμένα datasets σε 268 από 339 ασκήσεις — πιο πλήρεις πηγαίοι πίνακες, πιο ουσιαστικές γραμμές στην αναμενόμενη έξοδο, οι ασκήσεις δεν φαίνονται πλέον χαλασμένες.
- Μαζικός εμπλουτισμός datasets: 268 από 339 ασκήσεις απέκτησαν πιο πλήρη seed data — συνήθως 6-12 γραμμές σε πρωτεύοντες πίνακες αντί για 2-4, με ποικιλία στους άξονες φίλτρου/JOIN/GROUP BY που αξιοποιεί η λύση αναφοράς. Θίχτηκαν 137 μοναδικά datasets. Οι λύσεις αναφοράς και τα σχήματα παραμένουν αμετάβλητα. Η πρόοδος των χρηστών διατηρείται — οι ήδη λυμένες ασκήσεις παραμένουν λυμένες, το Power και τα επιτεύγματα δεν επανυπολογίζονται.
- Κάθε εμπλουτισμένη άσκηση επικυρώθηκε: η λύση αναφοράς εκτελέστηκε στο νέο seed μέσω του executor, το sample_output αναγεννήθηκε από το πραγματικό αποτέλεσμα.
- Άσκηση #38 (
well-paid-employees) — αρχικά ένα hotfix της v1.2.4, τώρα μέρος της ευρύτερης σάρωσης.
Hotfix από αναφορά σφάλματος: το πάνελ «Expected output sample» διευκρινίζει πλέον ότι το πλήθος γραμμών εκεί δεν χρειάζεται να ταιριάζει με τους πίνακες του σχήματος.
- Προστέθηκε μια δήλωση αποποίησης πάνω από το πάνελ «Expected output sample»: «αυτό μοιάζει μια σωστή απάντηση — το πλήθος γραμμών της είναι δικό της, δεν χρειάζεται να ταιριάζει με τους πίνακες του σχήματος». Προηγουμένως οι χρήστες μετρούσαν γραμμές σε έναν από τους πίνακες του σχήματος και υπέθεταν ότι η άσκηση ήταν χαλασμένη όταν οι αριθμοί διέφεραν.
Hotfix από αναφορά σφάλματος: η άσκηση #38 «Salary higher than manager» εκτελείται πλέον σε ένα κατάλληλο dataset με τρεις πραγματικές περιπτώσεις. Επιπλέον, μια μικρή πορτοκαλί κουκκίδα στο «What's new?» όταν κυκλοφορεί μια φρέσκια έκδοση.
- Μια μικρή πορτοκαλί κουκκίδα εμφανίζεται στο στοιχείο πλοήγησης «What's new?» όταν κυκλοφορεί μια φρέσκια έκδοση. Μία επίσκεψη στο
/releasesτην καθαρίζει μέχρι την επόμενη έκδοση.
- Άσκηση #38 (
well-paid-employees): το dataset ήταν πολύ αραιό — 6 υπάλληλοι και μία μόνο περίπτωση «υφιστάμενος κερδίζει περισσότερα από τον προϊστάμενο», κάτι που έκανε να φαίνεται ότι τα δεδομένα ήταν λάθος. Επεκτάθηκε σε 9 υπαλλήλους σε δύο τμήματα με τρεις καθαρές περιπτώσεις (Eve > Alice, Frank > Dave, Henry > Bob).
Νέα σελίδα «Report a bug» με συνημμένα στιγμιότυπα οθόνης, μια δευτερεύουσα ομάδα πλοήγησης και μια πιο συμπαγή λωρίδα «Start here» στο κινητό.
- Νέα σελίδα «Report a bug» στη navbar: φόρμα θέματος + περιγραφής με έως 5 στιγμιότυπα οθόνης / σύντομα κλιπ (υποστηρίζεται drag-and-drop). Οι αναφορές καταλήγουν στο inbox μας για γρήγορη διαλογή.
- Η navbar αποκτά μια δευτερεύουσα ομάδα — «What's new?» και «Report a bug» — χωρισμένη από τις κύριες καρτέλες με ένα λεπτό κάθετο διαχωριστικό.
- Η λωρίδα αρχαρίων «Start here» είναι πιο συμπαγής στο κινητό — πιο σύντομος τίτλος, κρυμμένη περιγραφή, στενότερες κάρτες. Ελευθερώνει χώρο για την ίδια τη λίστα ασκήσεων.
- Η λωρίδα αρχαρίων «Start here» δεν αναβοσβήνει πλέον για ένα κλάσμα δευτερολέπτου κατά το άνοιγμα της σελίδας ασκήσεων — αποδίδεται πλέον μόνο αφού επιλυθεί το
/progress. - Το highlight των release-notes (η πάνω μονόγραμμη) αποδίδει πλέον σωστά τα backticks — προηγουμένως εμφάνιζε το κυριολεκτικό «
?lang=» αντί για ένα στυλιζαρισμένο code pill. - Η φάντασμα κάθετη μπάρα κύλισης στη σελίδα «Learning Tracks» εξαφανίστηκε — το
min-h-screenσε συνδυασμό με τη navbar επέβαλλε ~60px επιπλέον ύψος ακόμη κι όταν το περιεχόμενο χωρούσε.
Λείανση UX σε όλο τον trainer συν μια παράμετρος URL ?lang= για διαφημίσεις και άμεσους συνδέσμους ανά γλώσσα.
- Προσγειώσου σε μια συγκεκριμένη γλώσσα μέσω
?lang=enή?lang=ruστο URL:https://sql.coderang.dev/?lang=en. Βολικό για διαφημίσεις και κοινοποίηση συνδέσμων ανά γλώσσα· η επιλογή απομνημονεύεται για έναν χρόνο.
- Όταν εξαντλούνται οι ημερήσιες υποδείξεις AI, το κουμπί «Explain» γίνεται «Cheatsheet» και ανοίγει την αναφορά του θέματος.
- Το αστέρι αγαπημένων είναι πλέον ορατό στο κινητό και αχνά ορατό στο desktop αντί να είναι κρυμμένο μέχρι το hover.
- Η περιγραφή της άσκησης δεν πηδά πλέον όταν αναπτύσσεται το cheatsheet. Το αστέρι είναι πιο φωτεινό στο hover.
- Στις ασκήσεις DDL το πάνελ σχήματος εμφανίζει «no starting tables; create them» αντί για έναν κενό καμβά.
- Το κουμπί AI πλέον πραγματικά πάλλεται μόνο σε σφάλματα (η κλάση κίνησης δεν είχε οριστεί ποτέ πριν).
- Το Power και το Streak της navbar τροφοδοτούνται από το localStorage πριν από το fetch του server — τέλος στο αναβόσβημα «0 ⚡».
- Ο μετρητής δημιουργίας AI δεν μηδενίζεται πλέον μετά την ανακατεύθυνση στη δημιουργημένη άσκηση.
- Μικροβελτιώσεις για κινητά: σήματα δυσκολίας ίσου πλάτους (το αστέρι ευθυγραμμισμένο), το κείμενο της κάτω καρτέλας χωρά, κίνηση κλίμακας ημερήσιου μετρητή, tooltip εικονιδίου streak, ρωσικοί κανόνες πληθυντικού.
- Τα ρωσικά ονόματα εταιρειών (Сбербанк, Яндекс, Авито…) αποδίδονται πλέον σε λατινική μεταγραφή (Sberbank, Yandex, Avito) στο αγγλικό UI· το κυριλλικό παραμένει στα Ρωσικά.
- Τα ονόματα καταχωρήσεων του cheatsheet (Aliases, Scalar subquery κ.λπ.) μεταφράζονται πλέον σωστά κατά την αλλαγή γλώσσας.
- Ο εβδομαδιαίος/μηνιαίος πίνακας κατάταξης εφαρμόζει πλέον το μπόνους first-try ×2 και αγνοεί τις επανυποβολές, σύμφωνα με τον τρόπο υπολογισμού του συνολικού Power. Προηγουμένως η περιοδική προβολή εμφάνιζε περίπου το μισό του συνολικού — σφάλμα στα μαθηματικά, όχι στα δεδομένα.
- Αφαιρέθηκε μια νεκρή καρτέλα Solutions — κανένα κουμπί δεν την ενεργοποιούσε αλλά διπλασίαζε το φορτίο.
- Τα backticks δεν αφήνουν πλέον κενό πριν από την καταληκτική στίξη («
Action.»). - Οι κενές καταστάσεις του πάνελ αποτελεσμάτων μεταφράζονται πλέον σωστά στα Αγγλικά.
Λείανση για ασκήσεις τροποποίησης δεδομένων και συνολική απόδοση περιγραφών.
- Ειδοποίηση για ασκήσεις DDL/DML: οι ασκήσεις UPDATE/INSERT/DELETE και CREATE/ALTER/DROP εμφανίζουν πλέον μια σύντομη σημείωση «δεν χρειάζεται καταληκτικό SELECT» — τέλος στις εικασίες για το τι να εμφανίσεις.
- Το cheatsheet θέματος σέβεται πλέον τον τύπο της άσκησης: οι ασκήσεις DML δεν εμφανίζουν πλέον SELECT/ORDER BY/LIMIT, οι ασκήσεις DDL εμφανίζουν μόνο εντολές τροποποίησης σχήματος.
- Τα tokens σε backticks στις περιγραφές ασκήσεων (\
id = 4\, \users.email\) αποδίδονται πλέον ως code pills με χρώμα έμφασης αντί για ακατέργαστο κείμενο — οι περιγραφές διαβάζονται ακριβώς όπως τις γράφουν οι συγγραφείς. - Τα μπλοκ κώδικα στο cheatsheet έχουν πλέον μια αριστερή μπάρα έμφασης και ένα διακριτικό περίγραμμα — διαβάζονται ως πραγματικά αποσπάσματα κώδικα αντί για γκρι κηλίδες.
Onboarding νεοεισερχόμενων: μια λωρίδα «Start here», αρχικό SQL στην πρώτη σου άσκηση και ένα cheatsheet θέματος μέσα σε κάθε άσκηση. Οι υποδείξεις λανθασμένης απάντησης είναι πλέον συγκεκριμένες και δεν καίνε το AI quota σου.
- Λωρίδα «Start here» στην κορυφή της σελίδας ασκήσεων — 8 απλές ασκήσεις SELECT για όσους ξεκινούν. Εμφανίζεται μέχρι να λύσεις κάτι· κύλιση με σύρσιμο με δρομέα grab.
- Αρχικό SQL στον editor. Η πρώτη κιόλας άσκηση που ανοίγεις προσυμπληρώνει
SELECT * FROM <first_table> LIMIT 5;ώστε να μπορείς να πατήσεις ▶ αμέσως και να δεις πώς μοιάζουν τα δεδομένα. - Cheatsheet θέματος. Το πάνελ της άσκησης έχει πλέον ένα συμπτυσσόμενο μπλοκ αναφοράς με σχετικές εντολές SQL, σύνταξη και μια μονόγραμμη εξήγηση — προσαρμοσμένο ανά θέμα: SELECT, JOIN, συναθροίσεις, υποερωτήματα, window, CTE, DML, DDL.
- Το banner λανθασμένης απάντησης είναι πλέον συγκεκριμένο: ονομάζει επιπλέον/ελλείπουσες στήλες, διαφορές γραμμών, προβλήματα ταξινόμησης και συνηθισμένα σφάλματα SQL. Εκτελείται τοπικά, χωρίς κατανάλωση AI quota.
Αυτόματη συμπλήρωση με επίγνωση ψευδωνύμων στον SQL editor και σημαντικές βελτιώσεις διάταξης για κινητά.
- Σελίδα releases: το ιστορικό ενημερώσεων είναι πλέον ορατό στο /releases.
- Αυτόματη συμπλήρωση με επίγνωση ψευδωνύμων. Μετά το
<alias>.οι προτάσεις περιορίζονται στις στήλες αυτού του μοναδικού πίνακα. Τα ίδια τα ψευδώνυμα συμπληρώνονται με Tab. - Η
.είναι πλέον χαρακτήρας ενεργοποίησης: οι προτάσεις εμφανίζονται αυτόματα μετά από αυτήν, χωρίς ανάγκη για Ctrl+Space.
- Το μενού κινητού επικαλύπτει πλέον το περιεχόμενο αντί να σπρώχνει τη σελίδα προς τα κάτω. Κλείνει με πάτημα εκτός.
- 300+ περιγραφές ασκήσεων ξαναγράφτηκαν: προστέθηκε επιχειρηματικό πλαίσιο, καταγράφηκαν οι στήλες εξόδου, έγιναν ρητά η ταξινόμηση και η στρογγυλοποίηση.
- Η περιγραφή άσκησης στο κινητό κάνει πλέον scroll σωστά όταν το κείμενο είναι μεγάλο. Προηγουμένως κολλούσε και εμπόδιζε την πρόσβαση στις καρτέλες στο κάτω μέρος.
- Η κάτω γραμμή καρτελών του trainer είναι πλέον πάντα ορατή σε οποιονδήποτε browser κινητού (Yandex Browser, MIUI, Samsung Internet). Προηγουμένως περικοπτόταν κάτω από το viewport.
- Το μενού κινητού είναι πλέον πλήρως αδιαφανές. Προηγουμένως το 5% του περιεχομένου φόντου διαπερνούσε σε browsers χωρίς υποστήριξη backdrop-filter.
- Σε στενές οθόνες (320px και κάτω), το dropdown ταξινόμησης ασκήσεων δεν ξεχειλίζει πλέον από το δεξί άκρο.
- Παλιό σφάλμα αυτόματης συμπλήρωσης: η πληκτρολόγηση
t.eμετά τοFROM employee tεισήγαγεt.employee.salary(μη έγκυρη SQL). Το ψευδώνυμο γίνεται πλέον σεβαστό.
Πρώτη σταθερή έκδοση του SQL Arena.
- 259 επιμελημένες ασκήσεις SQL σε 6 κατηγορίες: SELECT, JOIN, aggregate, subquery, window, DML.
- 96 ασκήσεις συνέντευξης από κορυφαίες εταιρείες τεχνολογίας (Google, Meta, Amazon, Stripe κ.λπ.).
- Υποστήριξη δύο διαλέκτων SQL — PostgreSQL και MySQL με άμεση εναλλαγή.
- Δημιουργία ασκήσεων με AI: μοναδικές ασκήσεις προσαρμοσμένες στο επίπεδο δεξιοτήτων σου.
- AI Mentor: υποδείξεις με πλαίσιο χωρίς να αποκαλύπτεται η απάντηση.
- 3 learning tracks: δομημένες διαδρομές από τα βασικά έως την προχωρημένη SQL.
- Εκτέλεση SQL σε πραγματικό χρόνο σε περιβάλλον sandbox με βαθμολόγηση αποτελεσμάτων (διαφορά στήλης/γραμμής/σειράς).
- Ταυτοποίηση OAuth μέσω GitHub, Google, Yandex, καθώς και εγγραφή με email/κωδικό.
- Πίνακας κατάταξης βασισμένος σε XP (Power), προφίλ χρηστών, επιτεύγματα, σκούρα και φωτεινή θεματική.
- Συνδρομή Premium με ενσωμάτωση YooKassa και rate limiting κατά των bots.
- Διαδραστικά διαγράμματα σχήματος ER, Monaco editor με επισήμανση και μορφοποίηση SQL.
- Δίγλωσσο περιβάλλον: Ρωσικά και Αγγλικά.