A few years ago, when I was first starting out as a professional web developer, I ran into an issue with one of my site builds. After struggling for a few hours I sheepishly went to my project manager and delivered the news: "Feature X? Yeah, unfortunately, it looks like it's impossible." Unable to get it out of my mind, I continued to tinker away until 2 hours later, I finally cracked it. "Looks like I was wrong," I proudly corrected myself, "I was able to figure it out."
This continued to happen like clockwork every few weeks. A complicated feature would be requested, I'd work on it for a bit, say it was impossible, and then figure it out. Eventually the veil lifted and I began to recognize the pattern I was forming. "Does it make your job harder when I say something is impossible and then figure it out?" I asked my project manager point blank. "Yeah, kind of" he responded.
From that day on, I made a conscious effort to remove the word "impossible" from my vocabulary as a developer. Instead of being impossible, features just needed more time be looked into. Whether or not that additional time was worth it was still up to the project manager and the client, but the expectations were clear.
Now that I've begun to take on more of a mentoring role for younger developers, I'm hearing about those "impossible problems" once again. I know they're not being over dramatic, in their mind they truly believe it. I sure used to. But, junior developers, I'd issue you this challenge: keep a running list of all your impossible problems, and make note of how many of them actually end up being so. In due time, I have a feeling you'll be removing the word from your vocabulary too.