A lot of those coders, who are succeed contests like TopCoder SRMs, or Google Codejam, etc., get good jobs and salary. But is it really neccesary? I mean, do all code developers should know different algorithms, structures, or all this contests are just wasting of time? The problem is those contests take much time - to train, to study, to take part in. I am a student, so I haven't much free time. So I should make a decision: or I do it (in case this gives me knoledges that are useful in future), or I just forget about it and study something else. Any ideas?
I think you need to think about what you want from your career 1st and then see what you need to do to get there. If after doing that, you have proof that succeeding in these contests results in good jobs / salary in an area that interests you then I think you have your answer.
Knowing and understanding a range of different algorithms, design patterns, languages and hardware specifics gives you a greater flexibility when it comes to job hunting. As such i think these competitions are an excellent way to learn (either as a participant or as an observer) some new skills and increase your hire-ability.
I mean, do all code developers should know different algorithms, structures?
Yep, they should (only the good ones:)
Btw, if you want to learn project euler is a great place to start. The good thing is that you can see other people solution so you learn much faster then on ACM. Code Jam also has that option but there is not a lot of problems there.
精彩评论