I currently maintain a score of around 400 problems solved at Project Euler. It may be great or not so great, depending on whom you ask, but I believe it's safe to say I'm not a newb at CS and coding - and I never brute-force and always follow the under-one-minute-runtime rule!

And yet every time I solve one there and thus open a thread with solutions, I often bump into solutions that look like small miracles to me, which makes me wonder whether I'm missing some great gems of CS and computational math. (For those who are unfamiliar with Project Euler, there's a closed discussion to every problem, which opens only when you post the right answer.)

These threads are great sources themselves, but I'm looking for something bigger that gives consistent perspective on a topic or a number of topics. A book, basically. For example, recently I've discovered "Prime numbers, computational perspective", and it already helped me with PE, though it's been a week or so since I discovered it.

What would you recommend of this sort? Exploration of the exotic areas of CS or certain unorthodox perspectives on the not-so-exotic areas of CS which tend to be missed even by more-or-less experienced at CS and coding.


EDIT: I was asked about my background and my motivation in the comments, so here they are.

It's a hobby and I want to be better at solving puzzles, yes. Shouldn't mean I don't take it seriously and it's just about finding an algorithm on the web and copying it without any understanding of how it works for me...

I definitely don't want to be a CS researcher, but I don't mind going through something you could consider challenging or boring for someone with just a hobby. My educational background is applied math with elements of CS, but it's more math than CS. For example, I know very little about functional programming, which I believe can't happen to someone with a purely CS degree.

By mentioning my 400 Project Euler problems, I wasn't in anyway bragging. After all, I'm here asking all these questions, because I feel that I'm lacking. But I didn't want to end up with suggestions of starting with Knuth or CLRS, so I thought the best and quickest way to avoid it was to mention something like the PE.

I realize that I'm being vague in what I want, but I don't know how to be more specific about something that I don't know or I don't know even exists. Basically, anything you would consider a must, but for someone who's not just starting from scratch and who won't be spooked by the more challenging stuff. Anything along the lines of "Prime numbers, computational perspective" or "Computational geometry", perhaps.

  • 2
    $\begingroup$ What is your goal? Do you want to be a professional programmer, a CS professor, a CS researcher, a mathematician? Is this just a hobby and you just want to be better at solving computational puzzles? At any rate, just having solved Project Euler problems doesn't at all indicate to me that you don't have huge swathes of ignorance in perfectly standard CS and programming. I'm not saying you aren't knowledgeable about these topics, just that Project Euler stats aren't the evidence for this. That you think it is, though, is suggestive. $\endgroup$ Commented Dec 1, 2017 at 1:25
  • $\begingroup$ You don’t give any description of your mathematics or computer science background, which makes this pretty impossible to answer. And it’s totally possible to solve $400$ PE problems and be a novice at computer science (which by the way is very different from programming!) $\endgroup$ Commented Dec 1, 2017 at 4:35
  • $\begingroup$ I'm quite confident you can go through a whole CS major and learn virtually nothing about functional programming. My point with part of my earlier comment wasn't "cool your jets, Project Euler isn't that impressive", but that Project Euler exercises only a tiny fraction of CS or math. "Exotic areas" of CS are not likely to improve your Project Euler game, and, as far as I can tell, would probably be uninteresting to you, while Knuth actually does seem like something you might find useful for that purpose, challenging, and interesting on its own. $\endgroup$ Commented Dec 1, 2017 at 9:45
  • 3
    $\begingroup$ You seem more interested in computation applied to math rather than CS. There are several areas that fit this: computation geometry as you mentioned, finite element methods, mathematical optimization, (digital) signal processing, computer algebra, cryptography, numerical analysis, decision procedures e.g. A=B. You can also try to extract algorithmic content from even quite abstract fields of math e.g. as in effective homology. $\endgroup$ Commented Dec 1, 2017 at 9:45
  • $\begingroup$ A=B is definitely worth exploring. Thank you, Derek! I'll google for sources pertaining to other areas and topics that you mention, but if you have anything particular that you could recommend, I'd be pleased and grateful. $\endgroup$
    – user75619
    Commented Dec 1, 2017 at 14:44


Browse other questions tagged or ask your own question.