By "good job" I mean mostly a job that is well paid and involves the development of market-leading products/services (of course within my area of interest). I have a masters degree in economics and no formal education in computer science. I'm completely self taught programmer. I do have a few small projects that do solve a real-problem in my portofolio, as well as one year long "career" at some company as a junior programmer. So I expect that when interviewing for another job I wil be given some qualifications test.
What are the chances that I will be given programming puzzles to solve? (I'm interested in Europe mostly, if there are some big differences geographically.)
I've seen a few of those and I'm positive I wouldn't be able to solve 90% of them on the spot, with a blank sheet of paper and no internet or book references. Add to that the stress of the interview. To tell the truth, I think only a very small percent of the population is able to solve those with no preparation - the rest passes them because they practice. During my studies I did have courses that required solving some economic optimization case studies, which were based on algorithms (although different from those typically assosiated with programming), so I know that the best method of learning how to solve such puzzles is solving a large number of them. Problem is, I believe it may take at least 6 months of full time study to practice some most often encountered puzzles, so that I have a fairly good shot at passing most interviews. And I'm a very practical guy, who values his time greatly. My economic gut tells me that I'd rather spend 6 months of my time polishing a commercial project, that I've been working on, rather than developing my "interview passing skills".
Don't get me wrong. I am aware of the hard science behind programming. I do have a collection of books that I consult very often as soon as I encounter a mathematical/algorithmic problem, I do know where and how to ask questions, sometimes I do even browse PhD-level reasearch papers (if I have an important but specific problem). But reading the whole Cormen's or Knuth's book and solving the puzzles in those books? I'm not that kind of guy and even if I were, I don't have time for this.
I do fairly well in tests that target primarily the language or API, especially C++. That is because I work with them every day, and C++ being quite dangerous, I kind of had no choice but to master it. That was needed to complete a real life problem. On the other hand, it took me 3 years to come across a situation where I had to pick the most appropriate sorting algorithm and adapt it for my needs. Which leads me to think that if I don't explicitly train to solve camouflaged specific sorting algoritm puzzles, then I won't be able to solve them during interviews.
Note that I cannot simply go to every interview and try my chances, as I live in the middle of nowhere and usually an interview is a major logistical challange and a strain on my time (mostly the whole trip takes 3 days) and money.
