Tutorials

I love to share my knowledge with others. I want to write tutorials to teach people things I know or am currently learning, mostly about computer programming. I am starting a section on this website for this purpose.

This post will be updated with links to the tutorials and the git repositories hosting their files, where you can report issues, as soon as I publish the first tutorial.

Suckless Tutorials

I don’t like the overly-verbose style of many tutorials and articles written on the internet nowadays, so I decided to set myself a writing challenge. I want to write concise, information-packed, straight-to-the-point tutorials on various things. No filler, no excessive metaphors or distractions, no needless repetition.

If you want to learn something as quickly as possible so you can go and have fun with it, rather than spending time reading text, then you might like my style of tutorials.

Design Goals

  • Each tutorial should focus on one specific topic only and be short enough for you to be able to have a meaningful learning session in one sitting without feeling tired or overwhelmed. More complex topics are to be covered in a series of multiple short tutorials, to keep the dosage right.
  • Later tutorials in a series should not expect you to have followed all the prior ones. If a tutorial relies on the content presented in specific previous posts, it should explicitly list its prerequisites.
  • Each tutorial should quickly get you started doing something meaningful with what you learn and advise you what to do next and where to go to read about things in more detail.
  • The tutorials should try to make you aware of all the things that are desirable for you to know to have a good understanding of the subject, but explain them only to the level of detail needed to meaningfully get you started. You are advised learn about the things mentioned in the tutorial in more detail on your own; Google is your best friend.
  • The information presented, while limited in detail, should not be wrong or misleading.
  • You should not feel that any part of a tutorial expects you to magically understand some concept that is important to its purpose without having previously introduced it.
  • No part should refer to things you will learn about in later parts. No “this will be properly explained later, but for now just accept it”.
  • Each idea should be presented using the most effective method for it. This could be a description, definition, drawing/diagram, example, code, etc., whatever is most fit for the purpose. There is no need to explain the same thing multiple times using different methods.

If a tutorial goes against the above design goals, that’s a bug, and you should report it. If you have an idea for how to improve a tutorial so it meets the above goals better, I would also like to hear about it. If you have other suggestions for improvements, those are also welcome, as long as they are in the spirit of the project.