3 min read

Language Documentation

Over the years Iā€™ve learned about the importance of (official) documentation, and in fact itā€™s my preferred method of learning something programming related.

Itā€™s very obvious though, that some frameworks and languagesā€™ documentation are not all created equal.

This might be a hot take, but I think Pythonā€™s documentation are poor (docs.python.org). Often times, I have found the documentation for most modules to be very poorly structured, and it almost felt as if you had to read the entire documentation page to really make any sense of it. An example of what good Python documentation should be like is from ā€œReal Pythonā€ (https://realpython.com/). Usually Iā€™d go there for a good overhead view of a particular technique/module, then dive into Pythonā€™s docs.

But for Python being such a great language for beginners, I find the documentation not so, and itā€™s a pity because beginners should learn to read documentation as soon as possible in my humble opinion. Unless Iā€™m reading the wrong docs, please point me to some more well structured and clearly written Python docs.


Iā€™ve been reading and learning some Phoenix LiveView recently, and I think for the most part I do appreciate hexdocs (https://hexdocs.pm/), especially for the main modules used in Phoenix.

Another set of docs that I particularly liked reading, are the Nextjs and Remix docs (https://nextjs.org/docs/getting-started and https://remix.run/docs/en/v1 respectively). Especially the Remix docs, as I really enjoy the aesthetic appeal of the docs page. Of course itā€™s a bit different scope and context than Python & Elixir (framework vs language).

To end this post with another side-thought: some say the best documentation should be the code, and more and more I appreciate this when working with JavaScript (more specifically Typescript) because I rely heavily on the language server to point me to the actual source code of a particular library or node module. I actually love this so much, I feel like its been a big hit on my productivity on my Phoenix/LiveView journey as the language server Iā€™m using with Neovim doesnā€™t seem to be working as well.

In any case, letā€™s keep reading docs everyone.