upvote
No, the problem with mathematics is that it is basically its own language separate from your native tongue. You have to learn dozens of symbols and greek letters and such and memorize what their meaning is in the context of mathematics in order to "follow" a mathematical conversation.

Mathematics would be much more approachable if it just used plain English like `sum(0, Infinity, my_func)` instead of a big Greek sigma with nested function nomenclature. But on the flip side, mathematics being its own language means that a mathematician from any country can read and understand mathematics from a different country without needing to translate words such as "sum" and "infinity"

reply
Your translation only makes intuitive sense to you because you are well versed in programming.

I suspect if I showed a non-technical person with no background in either math or programming they would think both are nonsense until you explained it to them

reply
>https://en.wikipedia.org/wiki/Transmission_Control_Protocol

compare to

>https://en.wikipedia.org/wiki/Rees_algebra

Most people, especially non-tech technical people, could crash through the TCP article and come out the other side with at least a high level understanding of it.

Most people, even technical ones, could not even get through the first line of the rees article, heck the first statement of the article. And then if they try, they need to know about algebraic rings. And digging into rings becomes totally intractable. None of the words or symbols in any of the articles track to anything even many technical people can grab onto. And this pattern is all over the place in mathematics.

It's not about mastering the difficulty of a topic or it's relative depth, it's about how abstract and removed from anything tangible it is. Anything with math it is always seemingly impossible to get a foothold on the idea anywhere within 10 degrees of explanation. Hell you cannot even clearly understand the problem that is being solved, or anything within 10 degrees of that.

reply
If we take amateur level of understanding as a threshold, a sum of all of these concepts is not even a fraction of complexity required to understand a single non-trivial concept in mathematics.
reply
None of what you listed is even 1% as intense as the mathematics in the link.

Learning anything in maths requires weeks of hard effort, learning enough to be broadly comfortable in how an 8086 CPU works can be done in a weekend.

reply
As a counterpoint, i've worked with enough math PhD's over my career who couldn't wrap their head intuitively around many concepts from software engineering, while others had no problems in doing so even from folks without any stem background. We often undererstimate how much knowledge we have aquired over the years and overestimate how easy it is for others to catch up.
reply
"tcp" can take roughly 3-4 weeks of heads-down dedicated study to have some reasonable familiarity with. Same is true with most of the other concepts. Being able to speak with expertise on that list of topics is 3-4 years of really focused study and work.

I think what happens is that people often have passing familiarity with a word or topic and presume knowledge, and years (decades) later they realize they knew almost nothing.

I will say that Mathematics is different (for me at least) because unlike the infrastructure computing concepts (IETF type, not IEEE)- which mostly require studying, lab work, and some coding to get your hands dirty - advanced math is just ... really hard. There are IQ issues at play.

Obviously a lot of computing turns out to be mathematics - so there is clearly convergence/overlap as well...

reply
You could get a surface level understanding of TCP, or 99% of topic areas in computing, in less than 4 weeks of study. You could not get a surface level understanding of literally any of the maths in the link in less than 4 weeks of study.

The vast majority of what computers do just isn't that complex. I'm not saying it isn't "complex" just that any reasonably smart person can understand how a computer works and still have other hobbies, basically no one can understand phd level mathematics without dedicating their entire lives to it.

reply
This is not true, 99% is very exaggerated claim, but yeah you can learn 50-60% of the field at a surface level in months rather than years.

But you can have a surface level understanding of mathematical topics as well, ofc some topics might require deeper understanding, but that's true for both.

Any claims of being able to learn 99% of computing in a just 4 weeks even at surface level, is greatly underestimating your own knowledge built over the years perhaps, or perhaps underestimating your own ignorance.

reply
The claim isn’t knowing 99% of the field but that 99% of topics are ones you could do a quick-and-dirty crash course and come out with some understanding.
reply
Definitely a lot of people have very surface level understanding of tcp and computer science concepts.

I have had folks tell me cache is just cache in actual interviews. When I have asked them to explain the concept to me, but even beyond that I feel like we tend to think less of our own knowledge of topics once we have acquired it.

Especially ones acquired over years, alongside other work.

reply
I think one of the key differences is that math is abstract whereas CS is relatively concrete.

CS examples are often easy to picture and understand the motivation for. You can use tools to visualize or play around with them and test them.

Math gets abstract so fast you have to spend a week of research to even understand the problem statement. The the motivations themselves can be completely unclear until you have a lot of context.

I majored in math (B.S.) and upper level math is completely foreign to me.

reply
I think so is upper level CS, there are fields in CS that are foreign to me too, there is a lot of depth in CS, computing is a very deep field for instance ML research although may seem simple isn't quite so intuition based as people make it out to be. Similarly there are dozens of topics where sophisticated research happens where we don't interact with at all as regular software developers.

Every slice has so much depth to it, in Maths it all seems like all of it is required at once but in computing it feels like so little is needed to get started which I honestly feel like is failure of our modern education systems.

But yes Computers being so easily accessible and compilers, documentation and libraries have made computer science so easy to get started with.

Imagine having to implement your own network layer to communicate with someone, you would have had to understand ip, tcp, network layer to an extent like http and etc. and then you finally would have been able to communicate.

In maths that's our reality for a lot of the field, there aren't good libraries, interfaces to help skip the unnecessary details. Hopefully AI might solve it I don't know though. It's fun to hope for it.

reply
Again, you are underestimating how much effort it takes to understand how an 8086 CPU works. There are a lot of foundational concepts that you are simply assuming the person already understands. That may be a reasonable assumption for a CS undergraduate, but the average person does not understand binary arithmetic, registers, memory addressing, instruction execution, calling conventions, or even what a CPU is doing at a meaningful level to even start to understand 8086.

Also, understanding an 8086 CPU is not even remotely comparable to the level of mathematics Terence Tao was discussing above. The 8086 is a relatively basic and concrete topic. You can build a workable mental model of it from a finite instruction set, a handful of registers, and a reasonably straightforward memory model.

From my perspective folks here on HN and in CS often think they should somehow be able to understand advanced mathematics papers at a glance, merely because they are good at basics of programming or computer science (8086). That is not how it works. Most mathematics is not inherently much harder than computer science; both fields require you to accumulate a large amount of foundational knowledge before advanced material becomes comprehensible.

There is an enormous amount of computer science that most programmers are completely unfamiliar with, especially within academic CS: programming-language theory, type theory, formal semantics, compiler theory, algorithmic research, complexity theory, distributed computing theory, verification, cryptography, computational geometry, numerical methods, and so on. Being proficient in one narrow area does not automatically give you the prerequisites for another.

A web developer would not be expected to casually understand a research paper on type theory or approximation algorithms without first learning the relevant notation, terminology, and foundational results. Mathematics is no different. The feeling that mathematical writing is uniquely impenetrable mostly comes from encountering it without the years of accumulated context that mathematicians have silently built-up.

I can show you a paper about an advanced algorithms or chip design, that is large made up of fundamental cs concepts and general physics and even you likely someone with pretty in-depth understanding of CS would find hard. There are orthogonal subjects, for instance my mathematician friends things I am insane reading so much about weird computing topics, and I find his research in some weird number theory thing completely mind-bending.

Try and explain to a lay friend how registers & isa works in-depth with all the details not a hypothetical higher level model so that they can understand the nuance of looking at assembly, limit it to 8086 perhaps, it will take significantly longer than a weekend.

Ofc Terence Tao and his level of intelligence is beyond me, I wouldn't compare but general advanced mathematics is not something folks here couldn't pick up if they actually tried to work on it, just give it a shot (though I would recommend don't start with advanced topics build up slowly I think most people can understand most maths papers even the bleeding edge ones within a few months of serious self-study, and won't even feel that it's after a few years, compare that to the time spent learning software and computing 6-8 hours a days for several years)...

reply
> There is an enormous amount of computer science that most programmers are completely unfamiliar with, especially within academic CS: programming-language theory, type theory, formal semantics, compiler theory, algorithmic research, complexity theory, distributed computing theory, verification, cryptography, computational geometry, numerical methods, and so on. Being proficient in one narrow area does not automatically give you the prerequisites for another.

And the difficult part of all those areas of computing is the mathematics part. Which I think is what I am arguing, mathematics is a fundamentally different type of "difficult" to any other subject.

reply
> if you read a paragraph of even semi technical software text you will feel like an over stuffed turkey.

That's me when I try reading a trendy computer graphics paper.

reply
Just be thankful that we don't share the penchant for giving credit to discoverers. Imagine calling a cache a "Murphy/Steinman/Sokolov structure" (made-up names).

I mean, we do for some things, especially algorithms (Boyer-Moore). Probably for the same reason the mathematicians do -- there aren't readily available real-world analogies.

And I won't even mention the branded future, with its "Google HyperZipper String Search" and "OpenAI/Red Bull speedmaxx distributed consensus algorithm"...

reply
Huffman Coding, Turing Machines, Knuth Devices, Bayesian networks, B-tree (named after Bayer), AVL Trees, so many data structures and algorithms, even relatively new ones like Timsort, Jaccard similarity, MapReduce (thankfully but I have seen people call it Dean-Ghemawatt MapReduce in literature).

Well people even name stuff after themselves as well, Fil-C, raylib, etc (I like both Filip and Ray just pointing it out).

Aside: If I butchered some spellings I am sorry. :3

reply
deleted
reply
Also a lot of those are common words that take on a different persona and depth within the field, which can add to confusion.
reply
old.reddit.com/r/vxjunkies
reply
This is also true for almost every other field, even within computer science. The only difference is that a lot of people operate at a very surface level without realizing just how much background knowledge they have accumulated. Think about the number of keywords your average SWE is expected to know. It is rather insane.

Nah, math is much harder because there is not just the lingo, but also all the math machinery behind it. Each math definition represents some long process behind it, which builds on another process, etc. The knowledge builds on itself , too much more so than computer science.

reply
[dead]
reply
At least a lot of those are common words that allow some level of meaning inference with a little bit of adjacent knowledge, like cache and queue make sense with the barest of explanations because their everyday definitions are still applicable. Many of these terms aren’t entirely opaque until you drill down into specific niches.
reply