CodeChef is probably better than TopCoder for beginners. Although there are enough practice problems of all difficulty levels on both the websites,
- the Long CodeChef contest is quite a nice format. However, I’m not sure about how difficult the long contest problems are. The last time I checked (quite a while ago) they were increasing in difficulty quite rapidly.
- Immediate feedback is also really nice when you are beginning. However, don’t let this get you into bad habits such as not testing your code thoroughly on your own. Everyone at TopCoder learns that skill. I did, and I appreciate it to date.
- CodeChef is also a growing platform, whereas I think TopCoder SRMs is a dying platform. I owe a lot of what I have learnt to TopCoder, but it is what it is.
On a side note, you'll find this list of tutorials curated from across the web helpful regardless of whether or not you are a beginner. Also, the problems in the practice sets - easy, medium and hard - all have hint-by-hint solutions. Hints are much better than complete solutions when you get stuck because you still need to think to solve the rest of the problem, and you more intuitively understand which exact part of the solution was beyond your reach.