Aspiring KDB/Q Developers: Your Path to Mastery
Before we start
Just like learning to walk before running, mastering KDB/Q starts with getting the basics right. Before diving into advanced topics, ensure you’ve covered the essentials. If you haven’t yet, check out the Pre-School study plan here. I encourage you to work through it and make sure you’re comfortable with the foundational concepts.
Becoming a senior developer or Subject Matter Expert (SME) in any field requires years, if not decades, of experience, and KDB/Q is no exception. While you can learn and understand the language fairly quickly, true expertise only comes with time. The following study plan is designed to deepen your understanding of the KDB/Q programming language, a typical KDB/Q Tick platform, and common coding practices. Although it’s extensive, it’s by no means exhaustive—learning never really ends. There will always be new techniques, tips, and hidden functionalities to discover, whether through hands-on practice, reading everything KDB/Q-related, or studying other people's code. Enjoy the journey and make the most of it!
Core KDB/Q Knowledge
Q for Mortals
In my experience, the best way to start learning KDB/Q is still by diving into Q for Mortals. I recommend breaking the book down into three main sections, working through each one fully before moving to the next. Here’s how I’d structure it:
After completing each section, take time to solidify the concepts covered. Review any areas where you feel less confident and work through the examples in the book to reinforce your understanding.
- Section 1: The Basics
- Section 2: Functions, Advanced Data Structures and Querying your Data
- Section 3: Execution Control, basic Interprocess Communication and Database Structures
Once you've covered everything above, you're ready to progress to the next section.
DefconQ - Q made easy
DefconQ is the KDB/Q tech blog I launched in September 2023, just over a year ago. As a mostly self-taught KDB/Q enthusiast, I’ve experienced the steep learning curve firsthand. Driven by my passion for teaching, I created DefconQ to simplify and break down complex KDB/Q concepts. The blog posts below are designed to complement Q for Mortals.
Just a reminder: this blog post is here to support you on your KDB/Q learning journey. How to Read, Understand and Learn KDB/Q code
- Amend, Amend At: The Swiss Army knife among KDB/Q operators
- Dictionaries and Tables
- Attributes
- QSQL - Querying Your Data
- Mastering the Art of Filtering: An In-Depth Look at fby in KDB/Q
- Memory Management
- Garbage Collection
The material above should deepen your understanding of key KDB/Q concepts and support your development as a more proficient KDB/Q developer.
Q Tips: Fast, Scalable and Maintainable Kdb+
My second favorite KDB/Q book is Q-Tips: Fast, Scalable, and Maintainable KDB+ by Nick Psaris. I strongly believe it's a must-read for every KDB/Q developer, offering invaluable insights and skills. However, it’s not ideal for complete beginners; I recommend working through the foundational content above before diving into this book.
You can get a hardcopy of the book here: Q-Tips: Fast, Scalable, and Maintainable KDB+
KX Academy
Everyone has unique learning preferences; some of us are more visual learners and thrive with a classroom-style approach. If you prefer video tutorials over reading materials, the KX Academy offers an ideal platform. The following courses cover similar content to Q for Mortals and can be used as an alternative or as a complementary resource to enhance your learning experience.
KX Whitepapers and Advanced Material on code.kx.com
KX Whitepapers are concise technical papers that delve into core concepts of the KDB/Q programming language, architectural design, or practical applications. The following whitepapers specifically focus on the language aspects of KDB/Q, and I highly recommend exploring them once you’re comfortable with the basics.
- Iterators
- The application of foreign keys and linked columns in kdb+
- kdb+ query scaling
- Columnar database and query optimization
Additionally, code.kx.com offers sections with more advanced material, which are well worth exploring.
- Iteration
- Application
- Amend
- Apply, Index, Trap
- Interprocess communication
- Parse trees
- Q-SQL Queries
- Functional Q-SQL
KDB/Q Tick Architecture, Design and Big Data Platforms
Mastering the KDB/Q programming language is just one part of becoming a skilled KDB/Q developer. As you gain experience and transition into a more senior role, it’s essential to start engaging in architectural and design decisions, contributing to the broader structure of a typical KDB/Q Tick Application. The following section offers learning resources to build the knowledge you’ll need to excel in these areas.
- DefconQ - The Plain Vanilla Tick Setup
- DefconQ - KDB Tick Explained: A Walkthrough
- DefconQ - Code Organistation - Your own KDB/Q Library
- KX Academy - KDB+ Architecture
- Common design principles for kdb+ gateways
- Query Routing: A kdb+ framework for a scalable, load balanced system
- Compression in kdb+
- Intraday writedown solutions
- Permissions with kdb+
- Multi-threading in kdb+: performance optimizations and use cases
- Disaster-recovery planning for kdb+ tick systems
- Order Book: a kdb+ intraday storage and access methodology
- Data Intellect: Level 2 Order Book Storage Formats
Database Maintenance
A core responsibility of a KDB/Q developer is maintaining the Historical Database (HDB), including updating table schemas as needed. While this may sound complex, the process is simplified with KX's dbmaint.q database maintenance script. Below, you'll find resources on dbmaint.q and guidance on managing bloated sym files—a common challenge for KDB/Q developers.
Data Intellect's TorQ Framework
Data Intellect is a technology consultancy with over a decade of experience in KDB/Q development, home to some of the industry’s brightest KDB/Q developers. They offer a free, production-ready KDB/Q Tick framework called TorQ. The TorQ documentation provides invaluable insights into designing, building, and implementing advanced KDB/Q applications, and its rich codebase exemplifies strong KDB/Q practices. Reviewing this framework can be a highly effective way to learn from real-world, well-structured code. Access the TorQ documentation and source code through the links provided below.
Data Visualisation
When working with big data, it’s often helpful to start with a visual overview of your data, or at least a subset of it (since visualizing all data in one graph is rarely practical). Having data visualization tools in your toolkit can be invaluable. Below are two options: KX’s native tool, KX Dashboard, and an alternative visualization tool, Pulse, by Timestored, which is versatile and compatible with multiple databases, including KDB/Q.
- KX Dashboards
- KX Dashboards Academy Course
- Pulse by Timestored
- Pulse Tutorials
- DefconQ Pulse Blog Post
KX Products, Tools and others
As a KDB/Q developer, you’re likely to work with the full suite of products KX offers. Additionally, with many clients adopting cloud-based data strategies, it’s advantageous to become familiar with the cloud solutions available. The following section includes resources to help you explore these topics further. Note: Some KX tools require a commercial license.
- PyKX Documentation
- PyKX Academy Course
- kdb Insights Enterprise
- kdb Insights Enterprise Academy Course
- KX and the cloud
- KDB.AI
- KDB.AI Academy Course
Data Intellect Blog: KDB/Q and beyond
If you’ve worked through all the material above, you’ve already covered some of the best KDB/Q resources available. One last recommendation is to follow the blog by Data Intellect. It offers not only valuable insights into KDB/Q but also covers surrounding technologies—alternative databases, integration tools, and general KDB/Q knowledge. Data Intellect’s blog is definitely worth keeping on your radar.