As has been (IMO correctly) stated in the comments, part of the so-called "hacker attitude" is to find problems in everything. Not problems in the sense that you're criticising - here, the word "problem" is almost interchangeable with "challenge" or "puzzle". The article you linked actually gives some good advice on how to find these problems. Look at step one, the part about the hacker attitude; it gives five points.
1. The world is full of fascinating problems waiting to be solved.
If you can't see problems, then you need to work on the attitude. Where are these problems? Well, look at point 3:
3. Boredom and drudgery are evil.
Are there any tasks that you're bored of? I once wrote an app to keep Word documents tidy while I wrote a book, sorting them into folders by draft version and chapter, updating the filenames so that I could send individual versions to people and know which one they got, that sort of thing. I'm currently working on a program that automates a portion of some paperwork my Dad does, to give him more free time. Look for jobs that a computer could probably do for you, then work out how it could do the job, then write a program to do it. Remember this graph. You'll need to be motivated during that hump where it's taking you longer to write the program than do the job; part of the hacker attitude is that the point where your graph suddenly flattens out is enough of a reward to you that you don't mind the hump.
Point 4 is worth remembering too:
4. Freedom is good.
Is there something you want to do that you can't do for free? Some software you want, but can't afford? Do some research, work out how hard it would be to write your own. Sure, there are complex programs out there that you probably won't be able to replicate, but some things are easily reproducible. Freedom doesn't have to refer to the price, either - perhaps you find a program too restrictive. A lot of open-source software was built because people wanted to do things their way - look at Firefox, with its extensions and customisability, especially in the early days when customising IE meant adding more smiley toolbars.
If you can't find anything in that lot to work on, then maybe look at making games. Games are always fun, and building them is fun too - if you want the game to have a certain feature, you can build it. Many games have things in them that make you think "ooh, that's cool". Trust me, that moment is even better when you can follow it up with "that's cool... and I built it". That goes for anything, actually.
Edit to add:
On the subject of making software better, it's also worth mentioning that you don't have to start from scratch. That article says this:
2. No problem should ever have to be solved twice.
A good way to get into programming is to join in with an open-source project. Sometimes they're quite large and complex, but if you can find either a program or a small area of a program whose code you can understand, you can really make a contribution - and often, the community will help you out, so you may well learn something along the way.