And so forth. I find the computational aspects of most theories to be very rich, and it's really gratifying to code something up and "read off" the results.
Sage is a remarkable project. For Grobner bases it relies on the Singular computer algebra system. I cringe every time I'm at a talk where someone credits Sage when they should have cited Singular.
It's hard work writing a system like Singular, and not an obvious path to glory, so this stings.
Thanks! I'm studying this right now, after I got a taste of algebraic geometry (schemes) from Ravi Vakil's fantastic "algebraic geometry during the time of COVID" last year!
Good question. I mostly use it for algebra. It has varying levels of support for analysis. There is a SageManifolds project that allows for computations over differentiable and Riemannian manifolds, for example.
I dropped out of my maths degree after struggling for six years (!) at university - I had fallen too far behind. I can't just blame my part-time jobs for that.
Especially early on I often dismissed problems and assignments that I felt I wouldn‘t be able to tackle in terms of time or intellect.
This wasn‘t what the successful students did. They took on every problem with determination and focus.
No matter how hopeless. Along the way of failing they quickly developed their skills whereas I was falling more and more behind.
I then applied this lesson on my second attempt at university. A CS degree. Again I struggled at the beginning, but I became competent much quicker and in the end the degree was a breeze.
I had this problem and noticed it among others too. I think part of the problem is that in High School (and many times in undergrad, at least the beginning) you could get away with not doing the homework/studying/etc. So while you have the intelligence for the material you never learned the work ethic associated with achieving at the higher levels (and studying didn't force the material into long term memory as well). Sometimes I wonder how things would be different if these people learned an (academic[0]) work ethic early on.
[0] I stress academic here because at least in my case I was working a lot during undergrad. 40+hrs/week while in JC and 30+ when I transferred to a uni. But succeeding in those areas aren't the same as academic work ethic and I do want to acknowledge people that just ran out of energy.
In all seriousness, I stopped going to lectures* and studied at my own pace. My learning isn’t linear, so there will be some topics that are easy that you can move quickly on. Other topics take more time. Sometimes you can take a detour and dive deeper kn interesting topics.
Going to lecture, sitting in lecture, waiting around, etc. provided very little information per unit time for me. I can’t learn math or anything quantitative from watching someone do it. By using lecture time as study time I was able to double the time spent learning the material.
When you get stuck, go to office hours. Or look for notes from similar courses for a different perspective.
At the start of the course look at the book and see what the prerequisite material is. Review that material during the first week when there is time.
* exceptions being courses that have a participation grade.
I tried my best to have profs that followed a textbook.
I found lectures to be valuable only if I had reviewed the material beforehand. This was mainly because otherwise I just wouldn't be able to keep up in lecture.
If I had reviewed the material beforehand lectures were often extremely valuable for gaining new intuitions about a subject at hand that could be gleaned by an instructor's choice of explanation. And being able to ask questions in real-time was also quite valuable.
I wish I had realized this while I was still a student. By the time I was in grad school, it was too late. Now I make sure that I at least skim the material a bit before the lecture so I can see the other perspective, but also ask the professor/teacher any questions I had from my own pre-reading.
I think I agree with you. For me lectures where mostly about trying to take notes while the teacher wrote on the blackboard. Completely useless in terms of learning. I stopped going to lectures after a while and just learned on my own.
You'll win a lot more social points with your profs if you show up to the lectures and work on your own problems in your notebook. As an added benefit, if the lecture offers something special beyond what you can gain from the book then you'll be there in person to receive it.
If you have other significant demands on your time then school is going to be hard no matter what strategy you choose and might just take a lot of years to finish (please vote for UBI to help change that status quo). Assuming you can commit to school full-time though, it's less of an issue:
- You can finish a typical bachelor's degree in 5y by devoting 48h/week to school (12h for classes, 36h for assigned work). That's more time than most teachers expect, and except for a few unlucky points in time where multiple large projects coexist you'll rarely have to actually spend that long studying.
- It's hard to express just how much of a difference it makes to start with a little easier content to ensure you have the requisite background; don't let your pride hold you back. E.g., if the university places you in math class X, start at class X-1. You'll spend less total time learning throughout your education, be far less stressed, get better grades, and understand the material better.
- If you just want the degree, a lot of the first 1-2yrs of college courses can be replaced with CLEP/AP/... tests. Anyone can take them (not just in high school), and it'll take a lot fewer hours and dollars to get a passing score on one of those than it will to get a good grade in an equivalent college course (at most universities such tests won't affect your GPA, so even a score of 40% on some of them still gets you a passing grade).
- It's quite a bit more efficient to take more courses at once, especially if they're closely related (e.g., topology, abstract algebra, real analysis, ...). If you have closer to 70-100h/w to spend in class and studying then consider finishing your degree in 2-3y instead of 4-5y. You'll still have plenty of time to do fun things over the summer and winter holidays, and I know I personally found it more motivating to have an end date in the near future.
I'm nearly completion of a Bach Comp Sci that I've spent ~20 hours per week over 6 years (by the time I finish). I've done this while working full time as a single father who studies part time.
The time aspect is brutal. I'm ready to have regular hobbies. I'm ready to have a serious girlfriend. I'm ready to have regular social events. 6 years is a long time to just stop having a fulfilling life.
EDIT: I'm 1 grade in 1 unit off a perfect GPA. I'm at the point where I'm willing to have my GPA drop in order to free up some time to actually not be consumed by uni for the remainder of the time.
> It's quite a bit more efficient to take more courses at once, especially if they're closely related (e.g., topology, abstract algebra, real analysis, ...).
I agree that the interplay between related topics helps me form a more robust of understanding of the material.
On the other hand, it might be worth considering proactive and retroactive interference, (the difficulty of storing similar, long-term memories).
The layman's takeaway is that it's generally better to learn a variety of non-related topics concurrently instead of similar ones in order to facilitate better long-term recall.
I actually graduated in math, but I did struggle with these things. I also graduated in France where we have many more hours of class and the math program is pretty intense (did a year in Canada and it was a piece of cake in comparison). There’s also the fact that at that time you’re discovering yourself, partying, dating, etc. which takes a lot of time...
How much class did you have? My first year at university had three hours of tutorials and ten hours of optional lectures per week. Subsequent years had less. There was plenty of time.
My engineering degree had six classes per term at 3 hours of class time per course. Two of those would be labs with a 3h lab each week. So 24 hours of in person time per week, with an expectation of 2-3 hours or outside work for every in class hour.
This was probably my biggest gripe with my mech eng degree. Every minute you spent grinding through a difficult topic until you understood it, was a minute that you needed to be studying for another exam or working on a project. In the end I came out with a pretty decent GPA, but a serious case of impostor syndrome as I never really felt like I had absorbed most of the material. Of course engineering is a demanding field, but I've often wondered if students would benefit from having five classes per term.
I think this misses a pretty important part of mathematics, which I find is nessecary to grokking fields like linear algebra, algebraic geometry, algebraic topology, and many more.
What's missing is /why/ the definition is the way it is. What is it trying to encapsulate? A lot of mathematics is built up from simpler ideas being generalized until finally a purely algebraic definition is reached. The algebraic definition is completely void of context and any intuition, but it is very powerful to work with. The definition is in a sense the /result/, not the starting point!
For example, a beginning student of algebraic topology might start reading Hatcher's Algebraic Topology. Here simplicial homology is defined in terms of abstract functions d with certain properties. How did they arrive at this definition?
One answer is to start with complex analysis. Here you can notice that the complex plane and the plane without zero can be told apart by the function 1/z. This function also doesn't have an anti-derivative. Thus you begin to see how to define topology of the complex plane. Now extend this line of reasoning to the calculus of differential forms and you end up with the de Rahm Cohomology. Finally, you can realize that you can get the same results without having any interpretation of your functions. Thus begins the purely algebraic theory. The proofs may be different, but you can now /guess/ the theorems.
Of course in the above I omitted that differentials forms are defined in terms of a wedge product, which is also an abstract algebraic definition. This also has an explanation...
Modern mathematics is rife with explanations like the above, but they are often hidden away. It's very remniscient of the simple vs easy discussion of programming. The algebraic definition may be "easy" but it carries a lot of baggage.
Bad rules. My suggestions ask yourself the following all the time
1) Do I ~really~ understand what the definition / theorem is supposed to tell me.
2) A proof is just a reason why something is true in maths. Do you understand ~why~ a statement is true?
3) Exercise all the time. You won't learn math by memorizing definitions, theorems and proofs.
If you're in grad school taking qualifying exams, memorizing theorems is required. There's just too much stuff to digest. Undergrads and younger students have ample time to learn mathematics with serious depth. This is not true for the average math grad student. The comfort you had in learning mathematics as a youngling just instantly disappears when you get to grad school. This is painful, but you have to learn to accept that you won't be competent at all the mathematics you are exposed to. Some very fine mathematicians experience this.
I would love to get back and really learn math. I was really interested back in High School with Geometry and Algebra. But my interested totally burned out with poorly taught and punishing Calculus classes in College.
What would anyone recommend to someone who really only had high school math[0] to get up to speed on enough math to handle more advanced computer science concepts?
I’m really interested but all the material I can find is either for kids (which just isn’t sufficiently stimulating for an adult) or aimed at college kids with a decent background in math that is fresh
[0]: not even calculus just what they called technical math which is like all practical example based curriculum. One of my life regrets here to be honest
I have two books that might be a good fit for you since they are specially written for adult learners in mind. (disclaimer: I wrote these books and I have a financial interest in promoting them)
The No Bullshit Guide to Math & Physics [1] is a condensed review of high school math, followed by mechanics (PHYS 101) and calculus (CALC I and II). It's not as rigorous as other more proof-oriented textbooks, but it still covers all the material.
The No Bullshit Guide to Linear Algebra [2] is all about linear algebra and also includes three chapters on applications, so you'll learn the fundamental ideas but also what they are used for IRL.
Both books come with exercises and problem sets with answers, which is essential for learning. In fact one could say all math learning happens when you try to solve problems on your own, not just reading.
Ah I had a vague recollection of your work, I think I read a pirated multi scanned janky pdf once - but I couldn’t remember who it was written by, just had ‘Russian’ stuck in my head and Ivan triggered it!
I’ll buy your book now I’m a man of means and ready to learn properly.
Yeah the Russian pirated books site (libgen.li right now) has a version, but it's outdated.
I recommend getting the print version because it's easy to read (and flip back and forth with page references). We have a free-eBook-copy-when-you-buy-print policy—just get in touch with me by email and I'll send you the PDF with matching page numbers.
If you want to get into "rigorous" mathematics, I'd probably go a path similar to the one I'll outline here, but YMMV.
You may want to pick a book on writing proofs to familiarize yourself with the concepts first, such as "How to prove it" (either the one by Velleman or Polya). Another good one for getting to some intuitions might be "How to solve it" by Polya.
Then, you might pick up any elementary book on Real Analysis, Linear Algebra, as well as Graph theory/some Algorithms. Most of these should be self-contained. These 3 areas should lay a very firm mathematical foundation, and other parts of mathematics will become a lot more accessible with them.
Just be mindful that you'll probably need a long time going through these books, and that's normal. If you gloss over things, you'll quickly miss important bits. It's not like other books where you can kinda grok things out of context if you just continue reading, at least for me. I wouldn't do more than max 2h per day, but be consistent if you want to see progress.
The Art of Problem Solving books are great if you want to relearn pre-college math at a deeper and more advanced level so that your foundation is all the stronger for university level math.
In theory, any introduction to discrete mathematics would do. In practice, there are many differences in depth and breath of the material. You probably will do well if you choose Rosen, but there are several great alternatives, such as Levin[0] that you can start right away with.
That's a shame, Calculus is a fascinating subject and a basis for many interesting applications. Basically, there are two ways to approach it: to pass your exams (and there are just a couple of rules to learn, it's not that complicated), and to really understand what it's about. If you choose the second approach, you don't even need to memorize any formulas, because you will be able to reconstruct all of them as you need them. Moreover, you won't be conceptually limited to the geometric interpretation (which is invaluavle in giving some intuition in the early phases but might get in your way later).
For abstract algebra self-study, I highly recommend "A Book of Abstract Algebra" by Charles Pinter. Each chapter starts with a few definitions and examples, and the rest of the chapter is a series of exercises meant to help you discover algebraic concepts for yourself.
> When you finish you should know why each step follows from what came before. You may not see how anyone could have thought to do the proof that way, but you should be able to see that it is correct.
Knowing that something is true is not the same as knowing why it is true.
I don't know what the problem is with understanding, but here's three thoughts:
1. You need a deeper level understanding - you can't understand a problem at the same level you encountered it. Perhaps, understanding different but related areas, so you see the same problem from a different perspective. Perhaps understanding the formal system that is used to define terms used in the problem description.
2. You need familiarity, which creates the feeling of "intuition". If you know how it behaves in all situations, you will feel you understand it, even if you don't. So, just lots of practice/exercises.
3. You need to fully understand the components from which the problem is formed. For example, the natural numbers and addition, and build up from there.
Although the title is "How to Study Mathematics", I think a more accurate title would be "How to Study Mathematics as a Mathematician".
I am studying some maths right now with the goal of understanding some statistical methods. Having a rock solid understanding of all the underlying maths is counter-productive to my end goal though (Applying the statistical methods), because it would be extremely time consuming.
If you want to learn maths for the sake of understanding maths, then this could be the right approach. But it's definitely not a pragmatic approach.
I am sort of facing the same problem. On one hand I like math, abstract algebra, calculus etc but on the other hand I know I am not great with it. I am slow, I am not creative. So, when trying to learn something for programming like differential geometry, when I go deeper than I need to, I feel like I am wasting my time. And sometimes it is particularly hard to read a book written for mathematicians because my knowledge of it is not as "continuous" as theirs.
Well, a mathematics degree is one of the highest income earners for a reason so its usefulness is beyond dispute. I personally have life and artistic goals which take priority of my time over math but I’m willing to allow mathematics (together with high-level scientific understanding) a place in my life as a tertiary goal or drive. We are all a little too hard on ourselves to get everything done before we turn 30 or 40 as though it were some kind of deadline and then why bother, right?
If you find pure math interesting then give yourself the slack to learn it long term. Think of it like a rock garden which you tend to over the years.
I want to go back to school, and if I do, it will probably end up doing CS because it’s about the only “useful” degree accessible to working professionals, but if I had a choice, I’d probably pick a mathematics degree given how widely applicable the learned concepts can be.
I highly suggest you push through it. Mathematical knowledge ties in together very well. It's like snowboarding. Once you get over the initial hump, it'll come fairly easily to you (what's often called "mathematical maturity"). Then you'll be able to easily learn about statistics and ML if you want to experiment, or scene rendering, or differential geometry, or audio processing, and on, and on. Computers were originally created to be calculating machines, and they remain great ways to blend math with instructions.
There is one trick to master mathematics: Proactive.
you can't be lazy. You have to ask question relentlessly.
Always ask question, always find an example.
Depends on the kid(s), age, progress so far etc i would think.
Up to high school algebra level I can talk a little about but ymmv. Everyone is different.
The number Devil is an enjoyable story. Khan academy has a good problem bank with gamification of progress etc. Mathantics is a good substitute for school teaching of conventional stuff on video and has good worksheets. Mathific app is another source of practise and gamified progress.
Interested to hear other ideas and for other ages.
When my daughter is a bit older I’m going to buy her the Singapore school books for young math and pay her a salary to complete them. I don’t doubt their effectiveness.
My only real critique of academic books, was that the exercises varied A LOT in difficulty. Some books had exercises that seemed to assume that the reader had been a honors student, and thus able to pre-process/setting up the problem with intricate identities and what not, before coming to the part where you apply some theorem.
Now - no big problem if you worked with very keen math students, and they'd show you that, or if your TA could give some pointers. But you could easily get completely stuck, if you were using these texts for, say, self-study.
I've also found it way too easy to just convince myself I know the material and move on without actually doing any problems when I was self-studying. Thankfully I came across a Discord server that is run by a math PhD where he assigns problems and corrects proof for self-learners. Best thing that has ever happened to me in learning maths, and I have since finished several undergraduate textbooks and am working on upper undergraduate/graduate ones currently, with problems assigned from him and guidance/proof critiques.
All of this to say, is it's really necessary to have guidance with it, and to make sure you actually do problems, not just convince yourself that you know the material.
Hey, this Discord server seems to be a valuable resource. Do you mind sharing where to find it? I would love to try to get a deeper dive into some math subjects sometime in near future.
I think that lot of math curriculum does not really make clear to students the rationale for why they cover the topics and proofs in the order they do. The students lose the big picture of the path they are on, why is it important for me to be working on this right now, so that I will be able to tackle the next subject when that comes along. The structure of theorems and proofs and how they all build upon one another is not presented clearly. The point of a proof is not to prove something, but what further proofs this proof makes possible. NO?
Similar to immersion when learning a language, you need to to do the exercises from the ground up until the proofs seem self-evident. If there are uncertainties about the exact meaning of notation and operations, you will probably fool yourself into believing that you understand.
In math? You could follow a standard undergraduate curriculum, such as the one used at MIT (with their OCW stuff). Or you can just pursue what topics interest you, and trace back their prereqs to make sure you've covered everything you need to know.
" Grothendieck's mathematical education changed radically by his arrival, in 1949, to the Cartan seminar hosted at the *Ecole Normale Superieure". As Grothendieck himself confessed(reference), he had not heard by then about topological spaces, groups, rings,modules, homology!!. The astounding capacity of Grothendieck is revealed in the giant mathematical leap achieved between his naive ignorance in 1949(in Paris) and his spectacular technical nous in 1953(in Nancy). At that year he finished his doctoral thesis about "nuclear spaces" and had become according to Schwartz in "the number one worldwide specialist" in the theory topological vector spaces.According to Dieudonne, Grothendieck was author by then of a life work "only comparable to Banach's"
Either you believe there is no such thing as mathematical talent and you and me are in the same caliber of Grothendieck or you have to accept there are people with inborn qualities to excel way above the average human in that area. Same for Kasparov in chess, Mozart in Music, Jordan in BB. Blank-slatism will be the death of western societies.
As an experienced programmer, I have spent enough time trying to understand and make sense of some aspects of pure/higher math, specifically logic, that I feel qualified to say this:
- Experienced programmers are better trained at formality and precision than mathematicians, in some respects, and are able to ask questions that make experienced mathematicians go "why are you asking this question?" or "just get used to the idea (because that's what everyone does)"
- Much of higher math study advice (such as the one posted here) is aimed at laymen. And experienced programmers are no laymen.
- Mathematicians are laymen in many aspects compared to experienced programmers. An experienced programmer will have an easier time learning and using a proof assistant. Mathematicians (most of them) run away as fast as they can the moment they hear the phrase 'proof assistant.'
1. Grobner bases: http://bollu.github.io/computing-equivalent-gate-sets-using-...
2. Localization: https://github.com/bollu/bollu.github.io/blob/8cd335687ff3ef...
3. More broadly, an answer on math.stackexchange on how to debug math: https://math.stackexchange.com/questions/1769475/how-to-debu...
4. (WIP) continued fractions to compute pi: https://bollu.github.io/fractions/index.html
And so forth. I find the computational aspects of most theories to be very rich, and it's really gratifying to code something up and "read off" the results.