The things I feel deficient at are problems that sound like: 'given an array of prices for a certain stock in a single day, how would you find the maximum profit from one trade?'.
My naive answer to that is ignore the absolute prices, but iterate over the array to get an array of price movements, and then weight those by volume data (if that is available) or select the largest (if not). Could you expand on what it is you find problematic about that sort of question, eg lay out what your thought process is and where it gets blocked?
In terms of suggestions, maybe it would be worth your while considering problems a bit outside the programming domain, and working on them someplace other than your desk, on the theory that a change is as good as rest. Martin Gardner's 'Mathematical Recreations' columns for Scientific American were collected into one or more books, and I think some of Ian Stewarts' as well. These are great because they comprise fairly abtruse problems along with a discussion of strategies for dealing with them.
This is a great post. It basically says that when you have a problem that seems intractable, look for the conditions under which it is intractable and see if the conditions apply for your specific case. Many times they don't. And even if they do, you can often pretend they don't and still get solutions that are good enough.
For a small pearl on problem solving, I recommend "How to solve it"[1], by the great mathematician George Pólya[2]. It teaches you simple techniques you can apply when you are stuck, like "draw a picture", "think about a similar problem you already know the solution for", and "solve a relaxed version of your problem". It all looks pretty much like common sense, but it is not. It's one of those few books I think everyone should read (whenever they are stuck).
Because there's no Kindle version of "Proofs from the Book", I didn't order it. But I did see in the recommended list a book called, "How to Solve It"....which is apparently a popular general purpose problem solving book that, according to a reviewer, was given to Microsoft's new programmers. Less than $10 on Kindle so hopefully this will scratch the proof-solving itch for me:
"How to solve it" [1] was helpful for me in this regard, but it isn't really condensed like this blog post.
After you finish "how to solve it", you can read the more advanced "Mathematics and Plausible Reasoning" [2]
[1] https://www.amazon.com/How-Solve-Mathematical-Princeton-Scie... [2] https://www.amazon.com/Mathematics-Plausible-Reasoning-Two-V...
Velleman wrote "How to Prove It": https://www.amazon.com/How-Prove-Structured-Approach-2nd/dp/...
Polya wrote "How to Solve It": https://www.amazon.com/How-Solve-Mathematical-Princeton-Scie...
My naive answer to that is ignore the absolute prices, but iterate over the array to get an array of price movements, and then weight those by volume data (if that is available) or select the largest (if not). Could you expand on what it is you find problematic about that sort of question, eg lay out what your thought process is and where it gets blocked?
In terms of suggestions, maybe it would be worth your while considering problems a bit outside the programming domain, and working on them someplace other than your desk, on the theory that a change is as good as rest. Martin Gardner's 'Mathematical Recreations' columns for Scientific American were collected into one or more books, and I think some of Ian Stewarts' as well. These are great because they comprise fairly abtruse problems along with a discussion of strategies for dealing with them.
There are of course lots of 'math pouzzle of the week' sites from various universities, and books of math puzzles. but you should definitely pick up 'How to solve it' by Georg Polya, which is considered a classic education text. http://www.amazon.com/How-Solve-It-Mathematical-Princeton/dp... This is over half a century old but it's a great book, it's like having a patient mathematics teacher that wants to help you succeed at your side. Again, study these things away from your desk - find some other study space, even a park, and practice working with paper and in your head. You will retain things better by changing your environment for study.
Another thing that strikes me about your post is that your abilities are affected by the situation - you feel confident of your ability to get things done when allowed space to think, but you don't deal well with high-pressure environments like interviews. This is normal. Build up a good idea of where your intellectual strengths and weaknesses are and what your best strategies for dealing with them are. Don't be afraid to say in an interview 'I'm good at this sort of problem, I'm always slow at that sort so my first response will be a few brain farts...' Remember too that in a good interview, you're not just being rated for your raw intellectual ability, but on how you deal with your limitations and how you go about decomposing a problem. Nobody knows everything!
Lastly, don't assume you must do it in isolation. Maybe part of the stress at interviews is not the questions themselves but the social context. If you can afford it, consider hiring a graduate student in math or CS at a local university to tutor you a few hours a week. A person with an academic leaning will be better equipped to assess and direct your learning ability than someone who is trying to solve the 'puzzle' of filling an open position at a company and who can only provide limited feedback on your performance.
For a small pearl on problem solving, I recommend "How to solve it"[1], by the great mathematician George Pólya[2]. It teaches you simple techniques you can apply when you are stuck, like "draw a picture", "think about a similar problem you already know the solution for", and "solve a relaxed version of your problem". It all looks pretty much like common sense, but it is not. It's one of those few books I think everyone should read (whenever they are stuck).
[1] http://www.amazon.com/How-Solve-Mathematical-Princeton-Scien...
[2] http://en.wikipedia.org/wiki/George_P%C3%B3lya
http://www.amazon.com/How-Solve-It-Mathematical-Princeton/dp...