Honestly this is a huge topic that I think has as many facts as opinions. And to be fair, you are not alone, rarely have I hired a new/recent grad that knew how to do deployments well, unless they had internships that taught them or built some software to deploy themselves. Experience is what helps. For resources to use, I think your best bet is narrowing the topic some to a specific language (or 2) you are working in (and ideally target OS or OSes), then it is a lot easier to help you with resources. e.g. targeting Windows and
nix is tougher then targeting nix alone, or Windows alone, regardless of language.
As for my opinion: I do not believe there is one language that has the lock on easy/hard deployments, some definitely make it more challenging but overall they all have their good and bad parts. In my experience, C/C++ can be both the easiest and hardest to deploy. For example, I did a small sample console level C++ program running on OS X for someone a while back, literally copy and run, super simple. On the other end we have developed a sophisticated piece of imaging software for a client in C++ that uses the GPU etc. It has required about a week of time to get the build to work on linux and OSX machines, and we are still tuning it. This is simply because there are so many pre-reqs that have to be configured properly and generally built for the specific machine and OS to get the most out of the software and hardware.
At the same time, Java's promise of write once run anywhere is reasonable for many things, but you'll find generally is a bigger challenge then initially anticipated. .NET is honestly probably the easiest in my experience to deploy for Windows environments, and I am fond of Node.js apps on nix as they are pretty damned easy too (npm really is a huge reason why).
As for things to watch, you already have the right idea, its library, library version, library location in some cases, DLL Hell on Windows still isn't totally gone, binary compatibility on nix, etc. And just because you write something in C doesn't mean you won't have deployment issues, as the versioning of libraries and features you use can become very specific. At the same time, C/C++ is one of the most deployable languages across devices, but that comes at some complexity.