Difficult math is about recognizing patterns
get21stnight.com
get21stnight.com
Some people will recognize patterns pretty fast, while others must solve literally hundreds of different problems, before becoming comfortable with the concepts.
People always seem amazed and baffled that some candidates can practically walk into white-board interviews unprepared, other than what they learned / did in their DS&A classes in college, and nail the interviews, while others have to basically prep 6-12 months before passing the same interview.
At some point you build a machine in your brain that automates and simulates some mechanics and your role shrinks into feeding the machine with the relevant information. Then it’s easy, you can imagine what will happen just by looking at the problem.
I believe the trick is to properly understand the low level basics, explore edge cases and play with the machine as you build it.
Many people will try to learn the basics of the highest level possible, then proceed to master methods and cases without deeply understanding the subject. They cannot compete with the person doesn’t know too much but has very deep grasp on it, working the way from there.
What people don't like, or even question, about this concept is the correlation between IQ and "intelligence" (whatever this is).
IQ seems to be mostly a genetic trait. Test results kind of normalize in grown up humans. Childhood experience gets less and less significant with age, which points to a strong genetic influence. (According to Wikipedia).
I think a lot of people actually don't like the implication arising here, as it points in the direction that you need to be born "smart" to be "smart" — and that you can't change mostly anything about that significantly no matter what you do.
Nevertheless there seems to be a difference how fast, or even if, one can reach "full potential".
IQ is just a trait, and without the right stimulus it won't develop quickly. This seems no different to other genetic traits after all.
I'm of course not going into the question whether IQ is a good, or even adequate, measure of "intelligence" (whatever this is), as this is a can of worms… At least it's quite sure not the full picture. One can for example excel at arts or sports without a high IQ.
Wouldn't that mean that mathematicians do not actually improve during their careers outside of things like management and publishing?
I wouldn't say this is a hard rule though as a fresh, unbiased mind can also lead one down an overlooked path with surprising results.
1. What is the class of problem I am dealing with? (e.g., solution uses a stack, queue, heap, etc.) 2. What is the likely complexity of the solution?
Knowing, or at least having a guess, to these two questions greatly simplifies the approach. You do the exact same thing with solving integrals (e.g., is this an integration by parts question? is it a substitution question? etc.) and the same for physics, chemistry, etc. With algorithms, once you've done enough and have a very good mental model, you will start making translations between problems. That is, given problem A, you are able to map it to problem B which is easy to solve using some technique you know.
https://leetcode.com/discuss/interview-question/489169/Googl...
or will I just forget what I learned from leetcode? if so what can I do to retain my leetcode knowledge. I just started this week not for an interview but to actually improve my long term memory of algorithms, data structure knowledge so I don't have to google everytime I wanna implement something. and hopefully to improve my reading speed when reading code
"Both these properties, predictability and stability, are special to integrable systems... Since classical mechanics has dealt exclusively with integrable systems for so many years, we have been left with wrong ideas about causality. The mathematical truth, coming from non-integrable systems, is that everything is the cause of everything else: to predict what will happen tomorrow, we must take into account everything that is happening today.
Except in very special cases, there is no clear-cut "causality chain," relating successive events, where each one is the (only) cause of the next in line. Integrable systems are such special cases, and they have led to a view of the world as a juxtaposition of causal chains, running parallel to each other with little or no interference."
- Ivar Ekeland
Special theory of relativity did not come out of nowhere. Neither did the geometry, nor algebra. It was all about humans’ curious mind and joy of exploring what’s “possible” out there.
Hyperlinks on the web are one-directional. But links are much stronger if they're bidirectional. That's possible using backlinks, or in real life, by saying "thank you".
Thank you planet-and-halo for reminding us of the web analogy. Thank you zR0x for relating the abstract maths to tangible reality. Thank you tarxzvf for suggesting that everything is pattern matching (I agree, matter & energy are finite, it's only the connections between them that we can create).
I believe that these connections hold true for dad jokes, social situations, software, maths, physics, chemistry, biology... every created thing. Let's thank our creator, and all the teachers who helped us grow.
Are there under 6 degrees of separation between everything in the universe? Or is it as few as 3.5 degrees? [1]
[0] https://en.wikipedia.org/wiki/Wikipedia:Getting_to_Philosoph...
[1] https://research.fb.com/blog/2016/02/three-and-a-half-degree....
Marcus Aurelius' Meditations open with a list of lessons learned and an attribution.
Just remembered this when I read your nice note about the "thank you" -- for which, and for the ensuing recollection, thank you!
How can it help me reason about reality is the interesting part.
For that, one has to really practice these problems and not just hope to get a FAANG gig writing run of the mill business logic every day.
Functional/Relational programming models are just a trivial layer on top of math. Everything is pattern recognition at the end of the day.
Domain modeling is the logical extension of building standardized "patterns" that can be leveraged for rapidly building & replicating similar ideas.
Using good modeling techniques is the most important thing for managing complex systems. If you aren't sure, you can always start modeling at 6th normal form, then walk it back to 3NF as the various pieces start to make sense together. If you have your domain in 6NF and are using purely functional/relational programming, there are mountains of mathematical guarantees you can make about the correctness of your software. For instance, 6NF gets rid of null. It forces you to deal with the notion of optional facts using 0..1-1 relations and applicable query constraints.
I am not familiar with relational databases and just googled database normalization to get a kind of crude idea of what you are saying, but all the examples I find don't seem to give some high-level mathematical interpretation of database normalization. And it seems like there should be one (I could be way off here) based on how you are talking about forms here.
Yes
> If so, how does that translate to general code/system design.
SQL is capable of evaluating any logical outcome you would need to know about. It can be extended with application-defined functions to add convenience and a domain-specific dialect that aids in implementation speed.
Best way to learn is to start experimenting with practical problem domains. Pick a problem you care about and start modeling it over and over. 6NF followed to the extreme is actually pretty hard to get wrong. Just find the things that you need to uniquely refer to by some identity, then relate all the knowledge to them by way of single-fact tables (which can be further related and extended to add dimensions like change-over-time).
Understanding how abstract dimensions fit together is 99% of the battle. You just have to hurt yourself on some sharp edges a few times to really grasp it in my experience.
I would follow the citations of https://ncatlab.org/nlab/show/lens+%28in+computer+science%29 instead. Whatever Spivack can say about this stuff I think is going to be much more worth your while.
Looking at https://arxiv.org/pdf/1602.03501.pdf now.
Good luck!
> When my students encounter a math problem they can’t answer, I have them put it in the error log with an explanation of how they did and how they knew how to do it.
If they can't answer it, where does the "how they knew how to do it" come from? Their teacher/tutor?
Programming is significantly easier than math (for something equivalently complex) because of things like syntax checking and compiler/interpreter errors. This speeds up the pattern recognition process in the human brain.
People who are identified as being skilled at math or programming at a relatively early age are usually those who understood it in spite of the teacher/curriculum, so the ability comes as a surprise.
But many such people do not go on to distinguish themselves in either field in any way. There are always things that come easily to one person vs another, but in math and programming, the early birds are typically the only ones whose interest in the subject isn't destroyed by the teaching methods (because the learning happened in spite of them).
People[0][1] are using theorem provers to help teach students the general structure of a proof. And this is a bit of a tangent, but if you want to mess around with very simple proofs in first-order logic, the Open Logic Project[2] has an online proof editor and a textbook.
[0]: https://link.springer.com/content/pdf/10.1007/s40753-021-001...
[1]: https://xenaproject.wordpress.com/category/learning-lean/pag...
Consequently during math classes I used to sit at the back of the class and play counter strike all day on my laptop. Nobody seemed to care since I'd ace all the tests and still compete for my school in math competitions and stuff. However I completely wrecked my math education, and come university (I skipped last year of high school for uni, there's a standard program for it in my country) I had completely forgotten how to prepare for a math exam and was systematically left further behind with every year Lol.
Looking back I still kind of regret my perspective on doing practice problems. In hindsight it was kind of stupid but it was mostly because I thought it was kind of lame that I did well sometimes because I practiced more than other people, whereas some other students seemed to do pretty good without (seemingly) having practiced at all. On the plus side I do feel I learn things a lot faster than much people and am pretty descent at a wider variety of things
That's why an expert can charge so much for 1 hour of time. It is more valuable than days or weeks or months of a non-expert's time who doesn't have the library and can't recognise the pattern.
I'm gonna assume a step where they learned how to do it?
TFA's method is for incremental discovery expertise. Feynman talks about an inverse, where he maintained a list of interesting problems, and when he learnt a new technique, tried it on each one.
But Feynman's actual breakthroughs came from playfully looking at phenomena.
I think the incremental skills are basics like reading, writing and arithmetic - it's harder to really get to grips with something you've noticed without them.
I mean, Einstein famously didn't have adequate math for special relativity and sought help. He was however the one to notice something.
A library of techniques is a poor substitute for actual thought.
General relativity.
Special Relativity is an extremely subtle insight into relatively simple mathematics, general relativity is basically a chasm of rich detail that requires advanced mathematics to express and use.
Beyond examining the mathematics for yourself, you can see evidence for this in that there are very little texts considering "mathematical" (i.e. for mathematicians) on special relativity but many on general relativity. (For what it's worth, I find some of these mathematics-first one's to be remarkably poor pedagogically and far enough away from any useful physics that I sometimes question why some of them exist, although I am a very long way from being a mathematician).
I remember during my first year buying a book called something like 1000 limit problems. I "just" did about 300. It was definitely pattern matching and nothing Mathematica wouldn't do better than me.
Yes, I've learned the same thing in my MS as well. Before I put pencil on paper I need to have a rough idea why something is true.
The books sounds fascinating. Can you provide a link to this book?
Discrete math is frequently about things with very little structure (e.g. graph theory, where you basically just have any binary relation), so inevitably ends up trying to prove things that are way too general. The flipside is that those theorems do tend to crop up everywhere.
I think instilling this optomism in students --- following their curiosity won't lead deeper in a bottomless pit, if something doesn't make sense it's might be them but a lack of information, etc. --- is the essentially hard part, and requires undoing a lot alienation people experience.
Conversely, I think messing around with block boxes like machine learning we don't understand is giving into the alienation. (Studying it to understand it rather than do things is fine.) I worry more use of machine learning like things will be a another nail in liberalism's coffin as do the equivalent of regressing back to alchemy from chemistry.
Now, looking for patterns is what machine learning does, but while Rorschach-test-style grappling in the dark might be the basal "reptiling" instinct that lead to more high level theory-based pattern renegotiation, they should not be conflated.
Sometimes manipulating symbols towards an answer is great, but sometimes taking a step back, and looking at a problem through a different lens (e.g. at what you are trying to do intuitively) is vastly superior, and the symbol-manipulating, rigorous formalization (and verification) part comes afterwards.
A few examples (out of very many):
* In signal processing (both digital and analog) it can often be much more insightful to play with visualizations of time domain, spectra, and convolution and multiplication thereof.
* Related but more general: Thinking about the complex exponential as spinning in a circle, or tracing out a corkscrew in 3 dimensions, is a way easier method to grasp it than to look at the equations, which for someone getting into it will look like abstract nonsense[1].
* Topology is about "shape" and "deformation" of objects.
* Discrete Structures is about trees, graphs, and so on.
In all of those, you can hit paths where an intuitive understanding may stay out of reach, and symbolic manipulation through e.g. algebra might remain the only way to work with it, but that is often not generally true for the whole field.
[1] Funnily, that's an actual term used by mathematicians, but usually in another field: https://en.wikipedia.org/wiki/Abstract_nonsense