Survey - CodeChef Or TopCoder or Spoj

Dear all,
We are going to make survey about best online programming environment (For novice and advance user).

Which site is best suitable for you -





You can also suggest additional feature you want from our site in your answer.

There are various beginner which want to know from where to begin programming .This survey will really help to those person for a good start up.

Your SUGGESTION are most welcome. Thanks.


This is a very open question and answers might greatly differ from user to user. Here is my experience.

  1. Codechef: Great side for beginners. Plenty of easy questions and editorials and discussion forum to solve your doubts. However after you have spent a fair amount of time on the easy questions you will find them repetitive. So best site for beginners but good for advanced coders only if you keep learning and attempting newer type of problems(True on other sites as well).Long contests are a great way to start off your coding career and learn new stuff.

2)Top Coder: I have felt that top coder is slightly tough for beginners (though i must admit i have seen only a limited number of questions there).The 75 minute contest time is a bit tough for beginners.I have heard that many Questions asked there are based on graph theory and DP(dynamic programming).However it is Great for advanced coders as the quality of participants there is exceptional.

3)SPOJ: The main advantage of SPOJ is that there are a large number of questions. However i have seen many people complain that it is not very organised in terms of grouping problems according to category. I meet a guy at ICPC regionals this year who is ranked around 100 in SPOJ. He recommended that i solve UVA online judge instead of SPOJ as problems there are more organised. Personally i feel these sites are great once you have learnt most of the basics and then just want to solve a large volume of concepts to revise. Something like middle level practice.

  1. As i said earlier UVA is great for solving a large number of problems and a good alternative to SPOJ. Besides Codeforces is also good for medium level coders.Hacker rank is also a great site for learning stuff.You can have a look at this quora answer for a more exhaustive list.

Best strategy i would suggest:

  1. Beginner : code on Codechef (or some simple site with simple questions and editorials and forums to discuss) until you dont feel comfortable and are familar with algorithms and general strategies and a programming language of your choice.

  2. Medium : Go for quantity over quality here. Solve 200-300 questions from SPOJ or UVA and practice questions from as many sites as you can.

  3. Advanced : You are familar with most algorithms and techniques now. This is the competition stage now. Cook-off’s , ToP coder SRM’s, contest on codeforces and as many contest as you can.

I have seen this strategy being used by a number of successful coders from India.You can proceed as per your comfort and learning pace. Best if Luck



As @kcahdog mentioned on his amazing answer, Codechef is definitely well suited for beginners.

Only thing I’d like to add to his answer, concerns my personal opinion on Codechef, which is that:

Codechef is not only good for beginners, it’s good to evolve as well from beginner to pro. (as @kcahdog also said)

By pro, I mean you will be able to literally write research papers on algorithms once you manage to solve all 10 problems in a contest… you will go from A+B to Fourier Transforms if you stick around here :smiley:


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.

1 Like

My preferences are:

  1. TopCoder
  2. CodeChef
  3. CodeForces

Why TopCoder is my number one? Because problems are well balanced - it means, that easy - 250 point problem in DIV 2 is always trivial - so it is very good for beginners. Also I like, that contest is only 75 minutes long, quite enough time for 3 problems (comparing with CodeChef Cook-offs almost the same amount of time). Also I like challenge phase there - very helped me to try to find errors in code of other coders. One of the most valuable things can be rating - not so many cheaters, so if rating matters to you and you want to see your progress over time, this is one of the features you would like. Also rating is (typically) calculated in minutes after contest is over. Another good thing for beginners is, that you do not need to read the input and you have it available as method parameters, so no I/O problems there. Also from problem statement you can find expected complexity of the problem, if you will think about it, for example for input up to 50, you know that O(n^4) will pass also.

I really like CodeChef. I started with Cook-offs, but later tried also long contests - those are perfect for beginners too - a lot of time for first one/two problem for real beginner. I like contest planning on CodeChef (a lot better comparing with TopCoder). This forum is great too, you can find help here easily. On the other hand beginner can be frustrated by not having test cases. Another great feature on CodeChef is, that editorials are available almost immediately after the contest, what is great that you can find some help and still the problem statement is fresh in your memory.

CodeForces - I like that you can participate in virtual contest there. But contest are not so professional as at TopCoder or CodeChef (just my opinion). Contest are nor regularly organized, sometimes there are several in a week, and then there is no contest in weeks… My opinion is, that it is most difficult from those I mentioned - not easy to get to division 1. Also community there is against Java what I think is quite unfair, only because Java implementation is transparent - there are counter examples for Java quicksort and hash maps, that can be very confusing for beginner.


It’s nice to be recognized @garakchy :smiley: I have learnt a lot and I hope I can keep on learning and help others :slight_smile:

Also, this should really be discussed with admins… and maybe merged on the other post about “State of Codechef”… I might write a loooong e-mail about ALL the issues already pointed out by some people and shall forward it to admins plus some opinions of my own

1 Like

java is horrible:

@kuruma, thank you bro. pls forward our whines to admin staff on our behalf. thank you so much for helping also

No I/O is a bad thing, because you can fail some problem in a serious competition because of it. Same with small limits on input sizes - you can’t use some problems without introducing additional things like random number generators or string parsing. Also, I don’t like the idea of using an external program (the arena) to run contests.

TC does have more balanced problems compared to CF and the easy Codechef. But it seems that you dislike CF just because you code in Java - for div 1, you just need to solve ABC regularly and quickly. Also, CF is not a company (compare with TC).


According to me Codechef is the best site for programmer as it has problem from school level to hardest level (peer level which do not have any submission yet) . Beginners can learn a lot by this problem
There are monthly contest also and the important thing is editorials which help you a lot.There is also a forum for discussion.

If you are good enough in programming you may get a chance for getting prize .
What Else someone like programmer wants .So it is best for me and i think for you also.


Probably this is an misunderstanding, I have no problem with I/O, I’m a Java coder, but I believe, that all problems at CodeChef and CodeForces can be solved by Java. I like CF, because (I cannot describe it well) their problems are different. Only thing I do not like is I cannot participate regularly, because contests start at 16:30 (in my time zone) is not good for me (but this is not CF problem). On the other hand I think, that newcomer (not necessarily beginner) would be surprised, that he have to use TreeMap instead of HashMap as we now that HashMap has better complexity in regular case.

I also think that Java is good for enterprise programming (server side) and the language goal is not a contest programming - I hope we will change that in later OpenJDK versions, to add there something like get_char_unlocked and other stuff…

1 Like

Whats the point behind such a survey? I don’t see a reason why people would want to rate various online judges out there.

peer level is not the “hardest level”, lol check the fact! By the way top coder and code forces also publish editorials! As a matter of fact I find the editorials at topcoder much more thorough and clear than the ones here on codechef!


@v_akshay Do you not read it in this question “There are various beginner which want to know from where to begin programming .This survey will really help to those person for a good start up.”

By the way this LINK will help for all programmer especially beginner

1 Like

also check:

I like TC tutorials more than CC editorials.
I agree with Betlista ,problems editorials are available immediately after contest which is great thing .But there should be tutorial section on Algorithms so that programmers(beginners or medium level ) can rely on Codechef to learn.
I like Long contest …best for beginners cause they can compete and learn during live Contest. As i am beginner so i do programming on spoj and codechef long contest only.
And thanks to Codechef for creating my interest in programming .