Live data from Hacker News

The Immutability of Math and How Almost Everything Else Will Pass

blog.hackerrank.com

61–68 of 68 posts

Re: The Immutability of Math and How Almost Everything Else Will Pass

#61
post #28

Earlier quoted context omitted.

Yes, it's very much this. There is so much established convention and if you don't know that convention, then it involves a non-trivial amount of time to work through it and figure it out.

I remember the first time I saw \mathbb{R}^n. I thought "What the heck does that mean?!" I wish more time had been utilized in high school to explain all of the notation that I would need to know later on. It's difficult to Google symbols. (More recently, I spent a few hours trying to figure what a box with a times symbol in it means — in the context of the paper I was reading, it turned out to be the outer tensor pr…

FWIW, crosses inside something is standard notation for exterior products.

And, how do you introduce that in high school? Would you be able to wrap your head around the generic concept of exterior products back then?

Re: The Immutability of Math and How Almost Everything Else Will Pass

#62
post #60
post #57

Earlier quoted context omitted.

I am not using a scientist role model. I am using a role model like Linus Torvalds, John Carmack or Eric Lippert. Would you disagree that these are good programmer role models? They have DEEP knowledge, not just "hey man have you seen the latest javascript framework". And I don't see why you think the average programmer knows less about the law than someone in another non-legal profession. In my experience this is si…

These are role models that I personally very much agree with. At the same time, the industry has need for relatively few people like them. Of course, if every programmer would magically turn into them, that'd be great. But no one turns into them over night. And I think it's obvious that it makes no sense honing yourself into a perfect logical machine of deadly precision, if tomorrow you're still writing the same bori…

I think the average programmer makes many more mistakes due to not knowing computer science and math / lacking a deep understanding of programming than due to any other deficiency like not knowing laws. It is at least true for the programmers I've worked with and have not been satisfied with.

So in the real world, this is what causes me problems - actual problems with a large application that cause friction with clients - people being bad at programming and not knowing even the most basic computer science and math, mostly manifesting itself in the application becoming littered with inefficient code over time (the second most common problem being lack of or superficial technical knowledge, such as using a framework or even language without understanding how it works under the hood, this usually manifests itself in the same way).

Note that the "I don't need to know math/cs" people will often not realize they needed something because they will just solve the problem incorrectly, inefficiently, or decide it is not possible to solve efficiently and compromise on requirements. What's worse, even if they are shown the error of their ways multiple times, they almost never truly change their mind, regardless of evidence. It is a mindset people seem to commit to early in their career, or even to a more general version of the same mindset in childhood, and never change it. That's why there's so many of them.

Sure, there might be situations where it is not useful to be a better programmer than you are. But I would say that is not the norm. I don't work on some algorithmically-super-complex application, it is just a typical large application used by professionals for their work; it doesn't involve any truly difficult problems but has a huge number of relatively small and easy problems all over the place. I'd say it's somewhere in the middle of the software development spectrum.

Re: The Immutability of Math and How Almost Everything Else Will Pass

#63
post #27
post #7

Earlier quoted context omitted.

Is the problem there the actual math, or the obscure, arcane notation that's used to describe it? Combine that with the frequently terrible and all-too-often incomplete source code that's provided as a reference implementation...

The problem is rarely the math, and when it is, I can always find the explanation behind it. It's more the notation (edit: and yes, the content aware compression) - I'm sure it's completely obvious to people who see/deal with it regularly, and I can appreciate its compactness, but unless it's a really simple one, the raw equations are just gobbledygook and often it's only after I've mapped it to some sort of pseudo-c…

An anecdote from the other side: I trained in Mathematics before I ever did any serious programming, and have taken only a handful of proper CS courses from a theory-heavy institution in math-heavy areas (i.e. they were math classes first, and programming was mostly an afterthought). The result is that I actually find pseudo-code descriptions of algorithms far harder to work with than equations. Without a good overview, I just see a collection of vaguely related code-statements, and not a design until I've put a lot of effort in. On the other hand, I can usually grasp the point of something expressed as an equation much more rapidly, if only because my previous experience gives me more heuristics to rely on.

Re: The Immutability of Math and How Almost Everything Else Will Pass

#64
post #9

In response to the dead comment "Is CS a subfield of math or is math a subfield of CS?" This is quite an interesting question because I watched a Robert Harper lecture where he argues the latter. In a nutshell proofs can be mathematical objects and in particular they can be seen as programs.

Both. CS and Math are equivalent.

You can both represent all math expressions in the form of computer programs (what makes programming a superset of doing Math), and can represent all programs as mathematical expressions (what makes doing Math a superset of programming).

Re: The Immutability of Math and How Almost Everything Else Will Pass

#65
post #62
post #60

Earlier quoted context omitted.

These are role models that I personally very much agree with. At the same time, the industry has need for relatively few people like them. Of course, if every programmer would magically turn into them, that'd be great. But no one turns into them over night. And I think it's obvious that it makes no sense honing yourself into a perfect logical machine of deadly precision, if tomorrow you're still writing the same bori…

I think the average programmer makes many more mistakes due to not knowing computer science and math / lacking a deep understanding of programming than due to any other deficiency like not knowing laws. It is at least true for the programmers I've worked with and have not been satisfied with. So in the real world, this is what causes me problems - actual problems with a large application that cause friction with clie…

The language of computation is now a common tongue and of course there will be people who master it poorly or who you perhaps would call inferior.

I think this speaks more for the "inferiors" (programmers) not against it. You can make syntax in math represent anything but practically mean nothing, having programmers in fields where they could make big mistakes, points to its power.

Quite recently, mathematical knowledge was reserved for the "elite" in part because of the dense amount of esoteric grammar that exist in math, and i would say still is. Alot of things can be expressed in multiple ways like geometry, algebra. The "real" math you speak of is instilled convention.

Sometimes the most efficient way is not always the best way and correctness only exists in the framework itself.

If you are going to compare math and programming then you first have to acknowledge that math is also just a language, to express certain concepts in which itself is quite littered with dead and inefficient code.

The fact that the grammatical and syntax constraints of higher math are mostly applied ad-hoc in proofs,rings,fields means you can keep refining some fraction of it ad infinitum thereby giving the illusion of correctness but in its essence is a rich mans PHP.

Re: The Immutability of Math and How Almost Everything Else Will Pass

#66
post #62

Earlier quoted context omitted.

I think the average programmer makes many more mistakes due to not knowing computer science and math / lacking a deep understanding of programming than due to any other deficiency like not knowing laws. It is at least true for the programmers I've worked with and have not been satisfied with. So in the real world, this is what causes me problems - actual problems with a large application that cause friction with clie…

The language of computation is now a common tongue and of course there will be people who master it poorly or who you perhaps would call inferior. I think this speaks more for the "inferiors" (programmers) not against it. You can make syntax in math represent anything but practically mean nothing, having programmers in fields where they could make big mistakes, points to its power. Quite recently, mathematical knowle…

Mathematics is a tool that you as a programmer are supposed to be able to use (among other tools) to solve problems.

There is nothing wrong with mathematics and it is certainly not reserved for "the elite" whatever that is supposed to mean.

Convention is irrelevant except to ensure other people familiar with the convention can easily know what you're talking about. For programmers it is especially irrelevant as we usually only care about finding solutions to problems.

Correctness does not "only exist in the framework itself". If I ask you "if there are 6 people in the room, is it possible that among them there is no group of 3 which know each other and no group of 3 which don't know each other" the only correct answer is "no". The fact that this concept has a name in mathematics does not make the answer "no" any less correct.

Dismissing the importance of mathematics because you somehow find it "elitist" is anti-intellectualism at its worst.

Re: The Immutability of Math and How Almost Everything Else Will Pass

#67
I took a number of math classes, but I've forgotten the overwhelming majority of it. It's hard to remember anything if you never use it for a full decade (my French is gone too). That's not to say I haven't used math, but I just look it up or learn it as needed.

The truth is that I found my math education was a strange liability. I removed my math minor from my resume, as it prompted math based interviews. Having a Google interviewer go: "I see you have a math minor, so I'm going to ask you some math questions!", followed by the guy getting frustrated for 30 minutes, isn't a great experience.

Re: The Immutability of Math and How Almost Everything Else Will Pass

#68
Yes I agree, math is extremely important for people who would like to become a Computer Scientist or Computer Engineer. The vast majority of people learning programming in school are not going to do that. Making these people learn these topics and possibly turning off potential students is counter productive. Many people could gain a lot by just having basic programming skills, and those people are scared off by any mention of the word math.
Post reply on HN