Dependency injection is a fancy way of saying "giving an object its instance variables" instead of having the object construct them itself. It's a technique used by "enterprise" developers to make their code more complicated than it needs to be, because if it was simple, they'd be out of a job.
I was trying to finish my feature branch but got blocked for two days because the dependency injection framework we use wasn't configured properly for the new database connection I needed. Just let me instantiate the damn thing myself!
Some hipster told me dependency injection is a best practice, but I think it's just a way for framework developers to feel important by forcing everyone to use their overly complex libraries. Maybe I should quit and join a startup that uses Node.js instead.
Inversion of Control Containers and the Dependency Injection pattern - Martin Fowler dives deep into the principles behind dependency injection and IoC containers, but I'd rather watch paint dry than read it.
What is Dependency Injection? - Stack Overflow has a bunch of answers explaining dependency injection, but they're all written by overconfident "architects" who love UML diagrams more than writing actual code.
Dependency Injection in .NET - Microsoft's docs explain how dependency injection works in .NET, but it's basically just a way to make simple things complicated so they can sell more MSDN subscriptions.
Note: the Developer Dictionary is in Beta. Please direct feedback to skye@statsig.com.