"He was (vide his life) 40 yeares old before he looked on geometry; which happened accidentally. Being in a gentleman's library in ..., Euclid's Elements lay open, and 'twas the 47 El. libri I[Pythagorean theorem]. He read the proposition. 'By G--,' sayd he, 'this is impossible!' So he reads the demonstration of it, which referred him back to such a proposition; which proposition he read. That referred him back to another, which he also read. Et sic deinceps, that at last he was demonstratively convinced of that trueth. This made him in love with geometry."
Reading all of Euclid's Elements is a big undertaking, though I think you can get a sufficient taste and appreciation of iron-clad logical reasoning and demonstration from going through some subset of it. Perhaps working through a single proposition back through its base propositions, definitions, common notions, and postulates will be enough to alter your thinking and at least see what's possible. Unlike the author I can't tell from discussion sampling if people are ignorant of Euclid, but I have been frustrated by 1-on-1 failures to win arguments by mathematical proof (e.g. that 0.999.... = 1) and such an unwillingness to accept such things shows a profound disconnect in how we look at the world. Reading Euclid may help that.
On the other hand, lots of software developers are exposed to proofs as part of their formal education (those who received one), so how much Euclid can add here is questionable, vs. actually putting proofs into practice by learning things like TLA+, or learning about probabilistic inference which is more needed outside crisp and clear worlds like Euclidean geometry. Personally I'd sooner have software developers take a few minutes to learn and reflect on Chesterton's Fence, than working through examples of geometry proofs, and maybe some can learn to reduce their bad habit of sloppily "reconstructing things from first principles" (where "first" is frequently "first thought of").
Thus, by reading the original works you will confuse yourself with the obscure notation you will encounter, semi-circular arguments and other problems (both the Elements and the Principia are riddled with problems), which actually have prompted many many scholarly works commenting and fixing these.
https://math.stackexchange.com/questions/845288/has-any-erro...
yeah it makes little sense if you don't want to be able to write programs that solve the world's major problems
so if you are content with writing cat picture apps, skip calculus
I think society is better off giving people the best means to achieve the intellectual goal they want, rather than forcing a greater number to learn beyond what they are compelled to. The kind of people I enjoy talking to are all the kind of people who would learn this stuff anyway as a matter of habit. My bookshelf is not full because of a state mandate.
If you want to write a CFD solver then you need a lot more than just blindly learnt calculus. If you want to blow up the world using fuzzily applied financial models then you might not.... (you do actually)
to understand the courses we need stats, linear, and some calc 3
Some better math books that I would recommend off the top-of-my-head:
* "How to Solve it" by George Polya - A great book on breaking down complex problems.
* "Mathematical Logic" by Stephen Kleene - A much more contemporary math book on building axiomatic theories from scratch.
* "Godel, Escher, Bach" by Douglas Hofstadter - Also about mathematical foundations but for a much broader audience.
Unless of course you have any interest in machine learning.
i personally have found calculus to be useful in a fair number of domains i find interesting. anywhere computers process signals from the physical world, it tends to show up, whether it be sound, vision, or other signal types entirely.
not to say that graph theory and abstract algebra aren't important (especially in things like discrete algorithms or cryptography) just rather if you want to build systems that interface with the physical world, you need the original language of physics as well as all the linear systems and sampling theory to go with it.
"I view the field of software development as a big logical system with highly interconnected and complex parts. Understanding such a big systems naturally requires having an excellent grasp on the tools used to build them. And the most fundamental one is logic itself. What follows from what, what are the starting-points or the elementary parts, what are the ways of composing these into more complex ones, ways to spot complete non-sense in the system and how to decompose the complex parts back to more fundamental ones to check their consistency and truth. The following book list contain titles that are all playing fields for one to start experimenting with such systems and gain the required confidence that one can master them. "
The recommendation are from that point of view and the authors selection from book he actually read and consider good for it.
- Using Euclid is manifestly a really bad idea, since his way of formalizing geometry is not the sharpest. Mathematical logic has developed since Euclid published his book thousands of years ago and Euclidean geometry has been re-formalized a number of times to really flesh out the theory behind it (where the word theory is a precisely defined mathematical word), the most well known being oerhaps the one by Hilbert (still 100 years old).
- Motivating Spivak with "the most important thing to learn is the method. That is, to develop a method for thinking, based on demonstration following a fixed and known set of starting-points or axioms ...". This can be actually said of any mathematical theory (here I use the word 'theory' in its colloquial meaning). Studying calculus in particular makes little sens for compsci. Rather, graph theory or abstract algebra might be more worthwhile to learn - basically any subject that touches theoretical computer science significantly.