Live data from Hacker News

The Immutability of Math and How Almost Everything Else Will Pass

blog.hackerrank.com

31–40 of 68 posts

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

#31

As someone who has done a fair bit of both math and programming, I will agree that having some math knowledge has definitely helped at various times when programming, but I don't think these specific instances (e.g. the 10 examples given in the article) constitute the primary reason it's a good idea to learn math. For the purposes of handling those specific situations, I think you would do fine to just learn the math…

This comment sums up my own thinking better than I could have. Though if the pure functional approach gains more ground, the link between maths will become more direct -- writing a Haskell program feels a lot like writing a formal proof of an algorithm. And all proofs are maths.

That said: this might be a reason to teach less maths in schools. If someone can invent a good informatics curriculum for children, then it's OK if it eats into class time for maths, because the (hypothetical good) IT subject will teach them some of the most skills underpinning maths.

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

#32
post #15
post #3

"But is downplaying the importance of math a sustainable message for future generations of engineers?" No, but most programming is definitely not engineering. Math savvy people will definitely be needed - more in some areas than in others, but it is silly to have something most people don't have use for in their daily work as a requirement. The point being is that there is a need for people with engineering skills, b…

> The point being is that there is a need for people with engineering skills, but there is also a need for people with craftman skills. I disagree. We don't need people with craftman skills, or better to say, we shouldn't need. Because once you can define what is craft, then computer can be programmed to do it. At work, I still code in (mainframe) assembler sometimes. It's a craft, but it has been largely replaced by…

> We don't need people with craftman skills

> I still code in (mainframe) assembler sometimes. It's a craft

You seem to be contradicting yourself. Unless you are saying that you use assembler even though you don't need to.

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

#33
post #15

Earlier quoted context omitted.

> The point being is that there is a need for people with engineering skills, but there is also a need for people with craftman skills. I disagree. We don't need people with craftman skills, or better to say, we shouldn't need. Because once you can define what is craft, then computer can be programmed to do it. At work, I still code in (mainframe) assembler sometimes. It's a craft, but it has been largely replaced by…

> We don't need people with craftman skills > I still code in (mainframe) assembler sometimes. It's a craft You seem to be contradicting yourself. Unless you are saying that you use assembler even though you don't need to.

He explained it above (and in the very next sentence):

"It's a craft, but it has been largely replaced by compilers".

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

#34

Earlier quoted context omitted.

It's not arcane notation, it's content-aware compression at work. When a mathematician sees a small greek delta with subscripts ij, they immediately know it's the Kronecker delta. If every paper would explain every convention and notation in the field, all papers would be huge and much less readable for those working in the field.

In other words, slang.

No, the very opposite of slang.

Slang is created and perpetuated mostly for fun or historically for hiding from others (e.g. gay slang, black slang, thief slang), changes quickly, and doesn't compress much information, mostly encodes a word with a different word.

The only common thing with slang is that its a dialect constrained to a specific group of the population (mathematicians).

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

#36

As someone who has done a fair bit of both math and programming, I will agree that having some math knowledge has definitely helped at various times when programming, but I don't think these specific instances (e.g. the 10 examples given in the article) constitute the primary reason it's a good idea to learn math. For the purposes of handling those specific situations, I think you would do fine to just learn the math…

This comment sums up my own thinking better than I could have. Though if the pure functional approach gains more ground, the link between maths will become more direct -- writing a Haskell program feels a lot like writing a formal proof of an algorithm. And all proofs are maths. That said: this might be a reason to teach less maths in schools. If someone can invent a good informatics curriculum for children, then it'…

Agree 100%. The strong connections between FP and maths make the programming in an FP language very much like doing maths. Usually very simple maths, but that's a good thing.

You might like the Bootstrap curriculum: http://www.bootstrapworld.org/ It's developed by the PLT research group behind Racket and How to Design Programs. Very good stuff.

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

#38
post #15

Earlier quoted context omitted.

> The point being is that there is a need for people with engineering skills, but there is also a need for people with craftman skills. I disagree. We don't need people with craftman skills, or better to say, we shouldn't need. Because once you can define what is craft, then computer can be programmed to do it. At work, I still code in (mainframe) assembler sometimes. It's a craft, but it has been largely replaced by…

> We don't need people with craftman skills > I still code in (mainframe) assembler sometimes. It's a craft You seem to be contradicting yourself. Unless you are saying that you use assembler even though you don't need to.

> Unless you are saying that you use assembler even though you don't need to.

Yes, that's what I am saying. The use of assembler is historical legacy, so that's similar to how my mother does embroidery for restoration work (and also for fun!) even though she could just use CNC loom or something fancy like that.

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

#39
Math is good and can be useful. I went back to school after 15 years to study math (currently studying for a Complex Analysis final.) If people are interested, I would encourage them to study math, whether or not they think they are "good at math." However, I disagree with most of this article.

Take this breathless assertion for example:

> "[S]oftware development is quickly shapeshifting. If you discount mathematics, and in turn focus on learning transitory programming tools, you’ll be left without the skills necessary to adapt to emerging computer science concepts that have already started infiltrating engineering teams today. Without expanding mathematical knowledge, these software engineers are going to risk being left out of the most exciting, creative engineering jobs of the rapidly approaching future."

i.e. If you don't know math, in the future you'll miss out!

Not really. Adaption is a key skill of developers. Developers will adapt to whatever the future of software development brings. (And if not, there's plenty of maintenance to do!) Mathematical ideas only "infiltrate" software engineering to the degree that software engineering can accept them. It's a continuous process. Sooner or later, software engineering either absorbs a mathematical idea (e.g. relational algebra) or the idea passes out of fashion.

On the other hand, it has always been true that mathematics is part of many of "the most exciting, creative engineering jobs," for example: programming the Apollo guidance computer, implementing systems to predict the weather, designing the Page Rank algorithm, programming self-driving cars, simulating music synthesizers, or designing physics simulations for games.

So yeah, math is one of the places where the fun stuff is at, but you're not going to lose your job without it.

On the other hand, knowing CS fundamentals will probably help you adapt better than knowing CSS and some JavaScript.

> "We’re far beyond the point of needing engineers to code simple solutions."

I don't think so. The bulk of software development work is in integrating 3rd party components, refining user interfaces and marshaling data between communication and storage formats/APIs. From a coding point of view, this is relatively simple stuff -- but doing it at scale, at speed, with quality and finesse still takes great skill, care, and time. We're not "far beyond" this.

> "[A]re we all really still going to be coding web and mobile apps 10 years from now?"

Maybe not web and mobile, but there will be an equivalent.

One thing is certain, we're not all going to be coding machine-learning predictive data analytics engines from scratch. That is specialized work. If it's important enough to become mainstream, it will become componentised and commodified. Yes, there will always be companies developing the industry-leading "AAA games engine" or equivalent, but this is by no means the only way to participate in the market.

A final point: Software that is built on specialised knowledge (e.g. mathematical models, but it could also be physical, biological, psychological or other domain-specific models) often needs to be wrapped in a lot of non-specialised infrastructure in order to make it function as a product. There will always be roles for domain-specialists with software development chops, and these will be well-paid, fun jobs worthy of aspiration, but there will also be plenty of work for people who specialise in software (e.g. infrastructure, UI, networking, operating systems).

[edited to fix typo]

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

#40
post #8

I have all the wrong math. I got discrete math in CS - number theory, formal logic, and combinatorics. Now you need more real-number math - probability, statistics, and matrix algebra.

Apparently I'm in a good position with a double major in physics and CS.
Post reply on HN