I think that some people like difficult programming languages such as C++ and Haskell mostly because they would find the work unrewarding otherwise.
So they actually want the programming part to be harder!
A better solution would be to take a more difficult course or find a job with more rewarding work. It's better to work on more difficult algorithms and/or more creative specs.
I know that for me, most of the appeal of Haskell is that every new language feature I learn is something mind-expanding. It's not just that it's difficult, though - it's that it's conceptually mindblowing, where each concept is widely applicable to a bunch of different programming situations. And it doesn't do anything like other languages, so you have that feeling of clawing your way up the learning curve and exercising your brain at every step.
I know a decent amount of C++ too, but not enough to be an expert at it. In my view, life's too short to get good at C++. It feels like when I learn a new C++ feature, it was bolted on to solve somebody's particular problem, and isn't conceptually educational like Haskell.
And I did end finding (well, making) a more rewarding job, and am perfectly happy using Python & JavaScript for it, but it remains to be seen whether this "job" will ever make any money. There's a set of hard problems, and a set of problems people will pay you to solve, and fairly little overlap between the two of them. If you're in the overlap (like Google), good for you. However, even in a startup, about 95% of the work is dealing with nitty-gritty details that really aren't that difficult or exciting. (The remaining 5% is what makes you rich, but you can't ignore the boring 95% without having all your customers ignore you.)