The code ninjas program has been around for a long time, and it was probably named by an HR goon, so you'll have to forgive the cliche.
(Disclaimer: I work for Amazon, but on the Kindle side of things.)
Advertising algorithms, recommendation algorithms, pricing algorithms, basically any algorithm that is being run at scale for millions of customers.
Apologies, if I misunderstood.
India, India, India, India, India, India, India, Germany, India, India, India...
There is, without doubt a great pool of talents available in India, but this kind of result make me suspect that it's maybe just a result of India' schools focus on algorithms. Not on real problem solving, creation, design...
Techniques like this are only really used to sort through hiring pools with high signal:noise.
And while we are at it, in interviews at top CS product companies of which I know about Amazon and Microsoft, lately I have seen same set of questions repeated again and again and people getting through without much of problem solving skills by just mugging up solutions to common problems from sites like GeeksforGeeks, CareerCup etc. Throw them a real problem or a problem for which they have not seen a solution already and they would give a blank stare. Note that I am not saying you cannot find super talented people at these places. But when I have to take a few interviews apart from my regular work, I would head to same sites for interview questions.
No idea how Herr Amtrix got on that leaderboard.
Quite possibly from the HN link?
Though, that's not the first time I see that kind of result on contests (but I wasn't so surprised because of the demographic numbers.)
- "A segment is said to be shorter than other if it contains less number of words."
- "Print first shortest sub-segment that contains given k words , ignore special characters, numbers."
Copy editing like this doesn't inspire confidence in the hiring process.
In my experience with Indian companies and people of Indian heritage over here, titles seem more important to them generally than to other people I've interacted with. Perhaps due to differences in exposure to certain cultural references "ninja" sounds to them like an exotic title rather than, as it sounds to may of us, a silly one. Having said that, I know people who would appreciate "ninja" in their job title so this is subjective at a more local level too.
 Yep, I know there is no evidence a ninja ever wore black, in fact their outfits may have been very colourful: the black stereotype we have comes from how stealth actions were portrayed in stage plays.
 I'd prefer a Cash reference but you can't really chose your own nick-names, maybe nipping to Rino and shooting a man would help...
Of course it might not appeal to programmers in India any more than it does to you - it could just be that is appeals to PHBs in India!
Ignore characters other than [a-z][A-Z] in the text.
[a-z][A-Z] is not a character, [A-Za-z] is ;).
There is no indication of what language is expected, but presumably it's java, because companies that do this shit, are entirely java.
I feel the urge to click on the button, but I've been doing Dan Grossman's Programming Language MOOC (https://www.coursera.org/course/proglang) lately, so I'm all about functional programming languages, which I suspect this particular programming test does not grok.. and the button looks like it's entirely about product managers and their conception of what programmers do. Which rhymes with "fuck you."
But Haskell, Clojure, Scala, Erlang, Common Lisp... Very far from "just Java"
As a student who will soon graduate this is a real dilemma. Do i learn and practice more algorithmic problems to get better at that side, or learn and work with as many technologies I can to get some 'real world' experience.
This just seems like a better way to evaluate candidates even though we rarely have difficult algorithmic problem in our daily work.
I say this with some specificity to Amazon (I did ~200 interviews while I was there), but it would apply equally well to every other tech interview I've done.
Top Coder will change the way you think about problems (in terms of what primitives you'll bring to bear against them). I would say the same for mastering another framework that has a different model than those you've used before, but that both takes a lot more time and is nearly impossible for an interviewer to evaluate unless they've achieved the same mastery.
Algorithms are in some sense a least common denominator proxy metric for "can this person solve problems?" Usually this is followed by "can this person string three lines of code together and perhaps use a for loop?"
When these interviews go well it's usually a pretty accurate indicator that the candidate is technically capable of doing the job. The contrapositive is not always the case -- when the interview goes badly you're sometimes left with a nagging sensation that because you did a crappy interview you're going to miss out on a good candidate. That's just the way (many) hiring systems are biased, though -- it's better to say no to a good candidate than say yes to a bad one.
The belief is it is easier to train a computer scientist to be an engineer than the other way around.
Additionally, in fast-growing companies (such as Amazon and Google), it's usually the case that candidates are measured against a hiring bar and, if they exceed, they are presented with an offer, independent of other candidates. That is, there are more openings than can be easily filled, so any candidate who meets the bar can be hired, rather than being explicitly in competition with each other.
We'll said. I think this is an important thing to note for any new grads looking to interview at these companies.
...and yet it still seems to take a lifetime of effort, discipline, and study.
I prefer the candidate who can comfortably talk about algorithms, data structures, algorithmic analysis, theories of programming language, and theory of computation, and then discuss how they implemented the areas of interest to them.
I have no need for someone who can't write code to implement the theory they know.
Part of this focus is my belief that software engineering is not teachable in college; the projects are too small and the social dynamics don't carry over to the work environment. I am fine bringing an intern or new grad along and teaching them configuration management, practice & theory of testing, code reviews, etc. These things can be taught to someone of reasonable social capability who has already learned coding and algorithms, something I am not really willing to teach new grads.
Algorithms only come up in job interviews just to check basic understanding of computer science, but most of the discussion should be on what tools, protocols, and services are you hands-on experienced with, and it doesn't matter if you were paid for it.
What's the best way to contact you?
I currently see positions listed for Seattle, Massachusetts, California, and international positions on the first page of Software Development listings.
(Note: I work for Amazon as a Web Development Engineer.)
Do they need any "code ninjas" in the Bay area? ;)
Can anyone determine whether the 4 challenges posted by Amazon are custom-made by them or selected from Interview Street's library?
(ns solution (:gen-class))
(defn -main ...)
There is also no Clojure-example :/
EDIT: Fixed it: You had execute the function, just added (-main)
Get applicants to write code for company X in order to get hired by company Y.
Edit: and yes I know Amazon is already at full war with IBM, etc since before the CIA contract.