Welcome | Get started | Dive into Lino | Contribute | Reference

Learning resources

Here are some recommended resources for learning the external things you need to know as a Lino developer. They are not specific to Lino and therefore not covered in this guide. You don't need to read them all. We just try to help you with getting started by providing useful pointers. Feel free to ask for guidance.


Lino is mostly written in the Python programming language. Experienced Lino developers know for example

  • what's an object, a string, a list, a dict, a float

  • the difference between a class method and an instance method

  • what's a generator

  • what's a decorator

  • when and how to use subprocesses and threads

  • what the following standard modules are being used for: datetime, sys, os, re, decimal, logging, pathlib, ...

More resources for Python newbies:

Here are some resources for learning Python.



Lino applications are Django projects.

  • You need to know how to get a Django project up and running. (You should have followed the Tutorial) You need to know what a settings.py file is.

  • You need to know most about Django's model layer : the Model class, the field types, executing database queries, ...


Documentation about Lino is written using Sphinx.

  • Tutorial

  • You should know how Sphinx works and why we use it to write Lino documentation. See Building the Lino docs for the first steps.

  • Maybe one day you will want to have your own developer blog for writing about your contributions to Lino.



Lino is hosted on GitHub and GitLab (see also Moving from GitHub to GitLab). You need to know how to use these collaboration platforms.

Try out what you've learned:

  • Create a free account on GitLab and made a fork of Lino.

  • Try to make some change in your working copy, commit your branch and send a pull request.

  • See also Git cheat sheet and Submit a pull request.

HTML, CSS and Javascript


Lino is a part of Django and therefore uses relational databases (SQL). You don't usually need to write SQL yourself when using Lino, but it is of course important to understand the concepts behind a database. And on a production server you will have to deal with database servers like MySQL or PostgreSQL when doing database snapshots or running migrations.

Software development in general

Quincy Larson's book How to Learn to Code & Get a Developer Job in 2023 is freely available to anyone who wants to learn to code and become a professional developer. "This book will teach you insights I've learned over the past decade: from my own journey into coding as a teacher in my 30s, from working as a software engineer, and from running freeCodeCamp.org. If you're looking for a good starting point for your developer journey, this book is for you. You can read the whole thing now."