The best way to start is to read this document, then join the chat and say hello! We’ll help you from there.
One of Cargo’s goals is to make transitive dependencies essentially invisible; you shouldn’t have to worry about what your dependencies depend on. While that’s true in general, there are certain cases where you have to care: when those transitive dependencies are public, in the sense that they form a part of the API of the crate you care about. In that case, whether you can use that API together with other crates relies on them all agreeing on a common version.
RFC 1977 proposed to make public dependencies a first-class notion in Cargo, and to modify several aspects of dependency resolution to provide a better treatment for public dependencies.