Conventions over readability?

I previously wrote about why you shouldn't use variable names like $x and $y in your code and why you should use more descriptive names.

But what if there is an existing convention?

For example, I use Lua to configure Neovim and noticed that it's common to use shortened variable names, such as buffer instead of buffer_number or bufferNumber.

It's also common to use the variable M to declare a module. For example:

local M = {}
M.find_files = function()
// ...
end

return M

Whilst Module would be a more descriptive name, would deviating from the convention be more confusing for anyone reading the code?

Do the benefits of following a convention outweigh the benefits of using more descriptive variable and function names?

Which would be easier for newcomers to your project or team to understand and allow them to be productive sooner?