I advise against using MathOverflow as a guide to what most young mathematicians do or ought or learn. The last time I saw such a strong bias towards "abstract nonsense" was when I was a graduate student at Harvard (in the early 80's), where if you wanted to do differential geometry rather than derived categories, you felt like a second class citizen.
I do agree with Steve Huntsman that any math Ph.D. student should devote at least some time towards developing some skills in the practical use of mathematics, including some programming. The fact is that most Ph.D.'s do not end up in a research university, so if you want to have more options than teaching at a lower tier school, these practical skills are extremely useful. You can definitely develop them later, but getting at least some feel for what's involved is very helpful.
Beyond that, there are many, many directions to head in, and each one has its own requirements on what you need to know. Today, a certain facility with abstraction can be quite useful, but it is not essential. Knowing a lot of different things also makes it a lot easier to interact with a broader range of mathematicians. This can be extremely useful to your own research, because you will stumble onto unexpected connections and intersections with work that seems completely unrelated.
Most of us are unable to learn everything we want to, so we have to make choices on what we're going to focus on. This is difficult to do, but developing the proper judgement for this is one of the most important stages of becoming a research mathematician. You can't just follow someone else's advice; you have to learn to figure it out, based on all the different and conflicting views you'll get.