Skip to content

Get started with q and kdb+


Kdb+ is a database. You can use it through interfaces such as ODBC, or from Python. But its power and performance are best accessed through its own language, q.

Q is a general-purpose programming language. You can write programs for anything in q.

You do not need prior programming experience to learn it. If you have some experience with mathematics, functional programming or SQL, you will find in q much that is familiar.

In this section we offer different routes into the language. Find one that suits your experience and learning style. (Or ask the Librarian for what you need.)

Other sections:

section content
Reference formal definition of language elements
Basics core aspects of writing q and using kdb+, such as using the filesystem, interprocess communication
Q for Mortals §14 Introduction to kdb+ persisting tables in the filesystem
Architecture topics in building systems using kdb+ processes
White papers extended treatments of topics in q programming and in building kdb+ systems


q for Mortals Version 3

Fun Q

A Functional Introduction to Machine Learning in Q by Nick Psaris, available from Amazon.

Whether you are a data scientist looking to learn q, or a kdb+ developer looking to learn machine learning, there is something for everyone.

q for Mortals Version 3

Q for Mortals

Version 3 by Jeffry A. Borror, available from or Covers up to kdb+ V3.3. If you are a new kdb+ user, this is the book for you!

HTML edition now online

Q Tips

Q Tips

Fast, scalable and maintainable kdb+ by Nick Psaris, available from

There is information that if you were learning by yourself, would take years to work out.

See the Archive for older documents.

Please send comments on tutorials to