If you're writing, make sure you cover all the commands a user could run with your application. A good example for a command line app is explaining each command, its flags, and what they do. Similar to web apps with API endpoints, or the capabilities of any program with an UI. A good tool is VitePress. Both in documenting a tool and how to use it. Another good example for Developers is how Rust and Go offer documentation.
Yeah, it's tough. From my experience, documentation is one of those thigns that you learn as you go, hard to have someone explain it to you.
From my experience I found that powerpoints are a decent way of documenting coding work, especially at a broader level. If you need to get specific you probably just need to start typing walls of text, but if possible that should be avoided.
As for documenting other things in life... well good question. Ikd if the same best practices that go for coding also apply there.