being totally novice, i would say Codechef >= Spoj > Topcoder. However, after gaining some prog skills i think, one would do his best if he leaves Codechef 4ever. Considering current administration, Codechef is evil after one gains few prog skills. Because, it doesnt help you to learn any kind of algos. Topcoder has static algo page. Codeforces has quality editorials. Spoj has quality quesitons, by googling for answers or approaches of some questions of spoj, one can learn some algo, i think. But here, at codechef thanks to @kuruma, @squal, @betlista, @kcahdog, @junior94 and some other coders willing to help, community slowly makes progress. w/o them codechef would be totally trash(sorry), imho. last week, i demanded on one of the posts, that algo tutorials page should be created. also, besides algo tutorials, those users who create editorails, approaches, algos should be awarded some points and badges based on questions difficulty level, imho. i think codechef gain users if it focuses on helping them rather than preventing. does codechef prevent one from learning? yes it does, and that is what this site expert at. codeforces and topcoder are top-tier algo sites. on the other hand, codechef is evil. this site should focus on how to help users, what do they want. well, coder community want to make progress. so, how that can be done? think of youtube, linux, wikipedia. their founders didnt do all by themselves, zuck didnt add everybody to face, jawed karim didnt upload all videos to youtube, jimmy wales didnt create all the articles on wiki, linus torvalds didnt code all architecture of linux, the glorious roman empire wasnt built by only cesar himself, etc. but what they did, they inspired others, and did not prevent others from doing what they like. so, i am well aware that admin staff of codechef have no time to deal with my whinings. but i want them to do only ONE thing: to take care on not to be evil. google has motto “DONT BE EVIL”, which was coined by gmail founder, paul buchheit.
after all, i have to admit that i have gained some basic skills thanks to those who help except admin. but i have to say this: “codechef, pls dont be evil”
well i forgot that i was answering the survey, when one gets advenced levels, topcoder is far far better than spoj, while spoj is also good site. however, on the advanced level, imho, considering current status of the site i totally neglect codechef.
king regards, garakchy.