On #2, for example, if you are working on a todo list backend in python, try to find existing solutions for todo list backend in python. Then you can see what others using in their solutions and try to bring them into yours.
I understand, this approach is not applicable for everything but I have found lots of gems this way.