Welcome | Get started | Dive | Contribute | Topics | Reference | Changes | More
Learning resources¶
Here are some recommended resources for learning what 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.
Python¶
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, …
Here are some resources for learning Python.
The official Python Tutorial
The Python Code Example Handbook – Simple Python Program Examples for Beginners “This handbook will teach you Python for beginners through a series of helpful code examples. You’ll learn basic data structures, loops, and if-then logic. It also includes plenty of project-oriented learning resources you can use to dive even deeper.”
Everything You Need to Know (Fatos Morina) is “my attempt to make it quick and easy for you to learn the essentials of Python. There are many other things to know about Python that I didn’t cover in this book, but we will leave it here.”
Sample Script Coding Tutorial for Beginners walks you through dozens of Python syntax examples that all beginners should learn. Data structures, loops, exception handling, …
Dive Into Python : Mark Pilgrim’s free Python book for experienced programmers.
Think Python 2e : an introduction to Python programming for beginners.
Get into Python, a small tutorial with a nice way to shortly introduce certain important concepts. Jobtensor is an innovative AI powered job platform for IT job seekers, so while you are there, you might create an account and try whether they help you to find a job.
(in Estonian: Programmeerimise õpik)
Learning platforms:
Python for Beginners, a tutorial in 15 lessons.
Specific topics:
Python 201: A Tutorial on Threads by Mike Driscoll.
We try to follow the Django coding style
Python Debugging With Pdb by Nathan Jennings.
Books you can buy:
Learn Python The Hard Way by Zed A. Shaw
Bash¶
You should know the meaning of shell commands like
ls
,cp
,rm
,cd
,ls
You can configure your local system and know about files like
.bashrc
and.bash_aliases
.You know how to use shell variables and functions.
You know what is a pipe, what is redirection
You have written your own bash scripts.
An in-depth exploration of the art of shell scripting: Advanced Bash-Scripting Guide by Mendel Cooper
Bash Cheat sheets: learncodethehardway.org, pcwdld.com
BASH Programming - Introduction HOW-TO by Mike G
Django¶
Lino applications are Django projects. Before you start to learn Lino, it makes sense to follow the Django Tutorial.
Django’s ORM layer : the Model class, the field types, making database queries, …
What a
settings.py
file is and how to get a Django project up and running.
Sphinx¶
Documentation about Lino is written using Sphinx.
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.
SQL¶
Git¶
Lino is hosted on GitHub and GitLab (see also Moving from GitHub to GitLab). You need to know how to use these collaboration platforms.
Read the GitHub Help pages, especially the “Bootcamp” and “Setup” sections.
GitKraken can help to understand things.
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¶
You need to understand the meaning of tags like
<body>
,<ul>
,<li>
…You should know what an AJAX request is.
Databases¶
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.”