The discussion following was more on how it works, the idea behind why you should use it is that your application should be seperated into 'layers'. Different architectural structures like MVP, MVVM, MVC, Clean Architecture (you can google them and their differences...).
They all require that one layer should not be aware of the implementation details of the other, so you end up with interfaces for another layer to interact with the layer next to it. But who's responsible for providing the implementations to any of the layers if no one in the layer should know about the other? That's where DI comes in... the DI provides the implementation for all those interfaces.
The real learning needed on the subject is not a particular DI framework, but what you're trying to accomplish with it which is one of the previously mentioned architectural structures or others.