what are the things that can be done with python and cannot be done manually?
You can't without a code select all object shearing different instances of the same material (f.ex. material, material.001, material.002 and so on). You can't remove custom shapes from all selected bones at once.So in general it's easy to perform actions on many objects at once and automate some actions, you perform a lot with python. I don't think it's absolutely essential to learn python to be a great Blender artist though. There are tons of people, who will gladly drop you some snippets of code to help you achieve stuff you can't without it.