You literally have to ask, and ask, and ask. Getting people to give you specific information about their needs (or feedback on your existing work) is time-consuming and frustrating, and that's one reason many people just settle into a job where they just have to please a few colleagues and a manager or two.

Also, while it's good to be capable and execution is important, don't feel that you need to be good at everything, because that often leads to biting off more than you can chew, followed by disillusion and disappointment. I've had huge struggles with this and so does any curious person - because you can easily get interested in many things and because you enjoy learning and problem-solving, you could become very very good at many different things, and soon you end up feeling that you have to be good at everything, even though this is not actually practical. It's an extra risk for technically inclined people, because dealing with technical problems is often easier than dealing with human problems, and it was your DIY tendencies that led towards studying engineering in the first place, no? So when you have to deal with people who are not wired the same way, it can get frustrating, and you have to fight against the desire to take over everything and Do It Better, (except that you can't do everything better because there's too much of it).

So two valuable skills to develop are to a) cultivate insight into why you think you could do any given thing better than you see it being done now, and b) develop your ability to communicate those insights to other people who are happy or even anxious to focus on one particular task rather than the whole ball of wax - and to radically adjust your insights and ideas in (a) because they will often turn out to be wrong or shallow.

Back at the quotidian but-what-do-i-do-today level, learn to cultivate your own taste and develop simple things that amuse you rather than looking for the thing that will allow you to make a spectacular debut. You probably don't have enough experience yet to imagine those really big things and project your imagination into all the levels of detail required. So set aside time to make simple things well. games are good for this - look at Flappy Bird, which is only a few steps above 'hello world' in game terms - it's just a simple loop featuring input, update, and collision detection, the absolute bare minimum for a real-time game. Angry Birds is just a physics library one simple game mechanism, and some very basic ideas of character animation. And so on.

Since you're an electrical engineering student, you probably know plenty about topics form hysteresis to antenna design to power supplies to lasers and so on (my wife's an EE so I know it's a broad umbrella of electives after the core engineering stuff). Think of something that you found cool but challenging, and think how could you make a game out of it that would expose the basic concept to a 6-year old, like where it basically comes down to some non-linear equation with only two variables or something. Then find a way to get that working on your phone and call it a game. Give it a silly name and add bright colors and bold patterns. Consult actual 6-year olds. One great thing about them is that they haven't fully developed their social conscience yet so if your idea is overly complex they will tell you that it is stupid. Making toys is a good way to learn about making tools, and people want both.