



Hi! I would like to know which jobs do you think is the more similar to "solve topcoder problems". I mean, for example, working on research in algorithms is really similar? And what about solving combinatorial optimizations problems for the industry?? I think maybe in this kind of jobs people usually spend months on doing heuristics or in case of research groups maybe spend more time proving some theoric problems which are closer to demostrate linear algebra properties than to think clever algorithms to solve a problem. Maybe the only similar job is training highschool people for national olympiads in informatic?? Are most of high rated coders with algorithmic jobs? Or most of people just use his knowledge from highschool and now is working with something which doesn't use algorithms at all? I love solving topcoder problems but I don't know if there exists jobs where I can do what I really love...
Thanks for reading... I know I made a lot of questions, any opinion (even with answers or not) is welcome!!! 

This is what exactly I want to know too :) Heard from one of my friends who joined AOL recently.... I was wondering to know if they look for Dev/Des experience, and found that his job is more or less like normal Java.. js2e, and similar to solving TC problems. . I'm also curious to know are there any other jobs like > " take a Algorithmic problem .. solve it , read some theory, try it . . and optimize etc., etc., ". ( It sounds like a company is paying someone, to improve his TC rating :P ) .. If there are not many, then what about joining a univ as Prof. ;) ? Do most Prof.s enjoy solving TC problems, or they just look at this as some site having puzzles ? 

If you want a company to pay you for doing nothing but think about algorithmic problems, I recommend working at a research lab (IBM, Yahoo!, Google, Microsoft, Bell Labs, and AT&T have such research groups). To get a job like this though, it helps to get a phd first. The vast majority of software development jobs don't require any serious algorithmic thinking, and even for the ones that do, probably at least 50% of your time will be spent doing things nonalgorithmic that your product/project just needs to get done.
in case of research groups maybe spend more time proving some theoric problems which are closer to demostrate linear algebra properties than to think clever algorithms to solve a problem
I'm not sure what you meant here (?). 

Well, there's "Topcoder problem writer" and "Topcoder problem tester"
I'd say the line is quite long though... 

My guess is that developers of Algorithmic trading systems *may* use hand crafted sorting/searching algorithms that exploit features of the data being sorted/searched rather than rely on collection libraries in order to gain a few more nanoseconds of performance. 

Well, you probably saw the thread, which is posted in the same forum as your thread, that an asset management company is looking for highly rated tc members. That aspect itself, looking for highly rated tc members, indicates that for the the job it requires similar skills needed to solve algorithmic problem. Not exactly what you're looking for, but it's an possible option to pursue. Also, google quants. Quants need pHDs, because they've got to do cool stuff with math and financials.
I'd love to do algorithmic problems as a job too, but I don't think I'm smart enough for what employers of algorithmicproblemlike jobs want. 

That aspect itself, looking for highly rated tc members, indicates that for the the job it requires similar skills needed to solve algorithmic problem.
It doesn't necessarily mean that (though it might). Hedge funds and many other types of finance companies routinely try to hire who they think are clever people, regardless of what their specialty is. So, say, a high rating in a programming contest website, or winning some math contest, or being a renowned physicist, could be an indicator of some level of cleverness, and that could be all they care about. 

Heh, I guess that could be another reason. 

sorry for the lateness. Just today I see the answer. It's interesting to know that research labs like IBM, Yahoo!, Google, etc. has that kind of jobs. But... do you know (or someone else knows) if working in this places is similar to solve problems like topcoder or acm? or is about going to the extreme of optimization with just one problem using ASM? I mean... in topcoder or ACM competences, the important is to get an ingenious idea to solve a problem in an efficient way, but not to get into ASM programming to optimize memory access. 

I think like Minilek said before. In most of cases the importance for a job is to be smart. In case of searching for highly rated tc members, probably what they need is people which are good enough in solving problems... not just because they solve algorithmic problems but because they can solve problems in an ingenious ways. 

But... do you know (or someone else knows) if working in this places is similar to solve problems like topcoder or acm? or is about going to the extreme of optimization with just one problem using ASM?
Just to name a few (of the many) big results invented in industry: the fastest known algorithm for matrix multiplication (Don Coppersmith and Shmuel Winograd, both at IBM), polynomialtime factoring on a quantum computer (Peter Shor, AT&T Bell Labs), and the interiorpoint method for solving linear programs (Narendra Karmarkar, Bell Labs). So, no, industry researchers aren't all just optimizing assembly code. Also, don't forget that TopCoder and ACM design problems that they expect people to solve in a very small amount of time. There are problems that exist outside of contests which are much tougher; too tough to ever appear in a contest. 

Yeah, you wouldn't expect to be using ASM, but you might expect to spend weeks (or longer) on a problem. In theory, you might do relatively little coding, although I guess you'd normally be expected to prove your algorithm works. But expecting one person to specialise in inventing algorithms and implementing them in an optimised way is pretty tough, especially when optimising may well come down to targeting specific hardware. 

thanks for your reply!! it's very useful information for me. It seems very interesting to work on these places Now I have a goal to achieve. thanks again 

...I know that, spend a lot of time solving one problem is part of research. If the research problems could be solved in a contest, then probably no one would be researching on this problem, they would just ask for the answer in the topcoder's forums ;). 

In theory, you might do relatively little coding, although I guess you'd normally be expected to prove your algorithm works
If by prove you mean mathematically, then sure. But if by prove you mean prove in practice, then depending on the company, there's not always such an expectation. You should think of these jobs as being equivalent to academic jobs, except you don't teach courses, advise students, or write grant proposals. 
