Live data from Hacker News

The Immutability of Math and How Almost Everything Else Will Pass

blog.hackerrank.com

51–60 of 68 posts

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

#51
post #48
post #46

Earlier quoted context omitted.

I would argue with waterfall model (naïve translation of engineering to software) being out of favor for decades now, almost nobody actually makes "blueprints" for software. Agile, XP and TDD is basically "put something together and make sure it doesn't fall apart when we ship it". Now what actually requires engineering is a whole another perspective. I'd argue most software development jobs are closer to "renovate t…

> most software development jobs are closer to "renovate the kitchen" And why people need different kitchens? Cannot the differences required be resolved by configuration, do they have to be resolved by programming? I argue that everybody having different kitchen is inefficient and wrong approach to software development. Waterfall was never in favor - IMHO programmers (or software engineers) always recognized that th…

There are ISO standards for what is known as waterfall model, from block diagrams (the actual blueprint) to project flow. It was the only model in widespread use before time-sharing systems and then personal computing came to dominate the market. The Mythical Man-Month was written as an argument against established practice in the field then.

> And why people need different kitchens? Cannot the differences required be resolved by configuration, do they have to be resolved by programming?

Sure, if all your want is say IKEA kitchen with IKEA appliances. Some people have genuinely different needs.

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

#52
post #44

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…

I agree with what you say, but it seems obvious to me. On the other hand, what gets overlooked, IMO, is the "other stuff". Humanities, law, business, biology, take your pick! When faced with a problem, a programmer is always looking at at least two issues: 1. to implement, 2. to understand the problem domain. I see math being exceptionally helpful in 1), but at most somewhat helpful in 2) -- because at the end of the…

I disagree, I would say most programmers know too little math and even too little computer science. As a field we are way behind most other fields in how well we know our own field. Yet most programmers are somewhat familiar with many other fields because they spend a lot of time reading about stuff on the internet.

I think the reality is the opposite of what you suggest, programmers are in no way an example of a profession where most practitioners have a deep and extensive knowledge. For most programmers, the learning method is finding out how to DO things (as in, find an example on the internet, try it, it works, I'm done) without actually understanding anything.

You must be very lucky in where you work if you think programmers know a lot of math and even know what "category theory" is.

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

#53
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.

That's why your incomplete quote is continued by "or better to say, we shouldn't need".

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

#54
> Number theory. If you’re ever asked how one algorithm or data structure performs over another, you’ll need a solid grasp of number theory to make that analysis.

Um, what? I mean, apart from some fancy/hypothetical cache aligning nonsense, I have no idea how this makes sense. Maybe someone can explain?

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

#55
post #52
post #44

Earlier quoted context omitted.

I agree with what you say, but it seems obvious to me. On the other hand, what gets overlooked, IMO, is the "other stuff". Humanities, law, business, biology, take your pick! When faced with a problem, a programmer is always looking at at least two issues: 1. to implement, 2. to understand the problem domain. I see math being exceptionally helpful in 1), but at most somewhat helpful in 2) -- because at the end of the…

I disagree, I would say most programmers know too little math and even too little computer science. As a field we are way behind most other fields in how well we know our own field. Yet most programmers are somewhat familiar with many other fields because they spend a lot of time reading about stuff on the internet. I think the reality is the opposite of what you suggest, programmers are in no way an example of a pro…

I don't think that reading about stuff online leads to knowledge, just like repeating writing the same boring CRUD app over and over again won't make you a much better programmer.

> As a field we are way behind most other fields in how well we know our own field.

I'd be surprised if that was so. I think we have a tendency to idealise other fields' achievements :) Additionally, I think you're using a scientist as a role model for a programmer. I don't think that's a good role model. Most programmers are technicians, not scientists. They produce products, not knowledge.

> You must be very lucky in where you work

Hm. It is the case that I'm lucky! I work at a University, in a PL group. So the people around me daily have better math foundations than most. I'll admit that there is bias in what I say.

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

#56
Tsk, tsk,

The author isn't going to make friends of mathematicians by declaring MATH as a subfield of CS in a diagram that looks like an org chart (because it's from a Forbes article? :-))

I was once righteously scolded after saying that logic was "merely" the physics of information. I learned a lesson.

We all can do better with more cross-pollination of different fields of study and less categorization.

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

#57
post #55
post #52

Earlier quoted context omitted.

I disagree, I would say most programmers know too little math and even too little computer science. As a field we are way behind most other fields in how well we know our own field. Yet most programmers are somewhat familiar with many other fields because they spend a lot of time reading about stuff on the internet. I think the reality is the opposite of what you suggest, programmers are in no way an example of a pro…

I don't think that reading about stuff online leads to knowledge, just like repeating writing the same boring CRUD app over and over again won't make you a much better programmer. > As a field we are way behind most other fields in how well we know our own field. I'd be surprised if that was so. I think we have a tendency to idealise other fields' achievements :) Additionally, I think you're using a scientist as a ro…

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 simply not the case, and yes, reading about it on the internet is better than not reading about it at all. It's not like dentists spend their time reading actual law books. Honestly, I have no idea where you get this from, it sounds absolutely wrong, but I guess we'll have to agree to disagree on this.

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

#58
This is more than slightly tangential, but that article led me by two steps to the Wikipedia article on OCaml based prop trading shop Jane Street Capital, which contained this very odd paragraph:

"A number of people involved with the effective altruism movement have recommended Jane Street Capital as a place to work at for people considering earning to give, and some of the full-time employees as well as interns have been from the effective altruist community.[7][8][9][10][11] In September 2012, Tim Reynolds, one of Jane Street's co-founders, stepped down from the job to redirect his energies towards the philanthropic pursuit of teaching poor students to master photorealistic painting.[12]"

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

#59
post #16

There is other big connection between math and programming, which article completely ignores - functional programming (from the mathematical side it corresponds to various lambda calculi). Interestingly, lambda calculus is a different language (syntactically) for mathematics than classical logic, so the connection is not obvious. I think programming will eventually become more mathematical, due to this connection.

> functional programming (from the mathematical side it corresponds to various lambda calculi)

And category theory, in the case of Haskell. (and yes, to work with Haskell at a basic level, category theory isn't required. But as someone who is learning the basics of category theory, it sure helps understand the "why" behind a lot of things if you move to a more advanced level.)

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

#60
post #57
post #55

Earlier quoted context omitted.

I don't think that reading about stuff online leads to knowledge, just like repeating writing the same boring CRUD app over and over again won't make you a much better programmer. > As a field we are way behind most other fields in how well we know our own field. I'd be surprised if that was so. I think we have a tendency to idealise other fields' achievements :) Additionally, I think you're using a scientist as a ro…

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 boring crap. Most programmers have boring jobs. Not because they're bad, but because most software being written is solving boring problems.

I don't think that the average programmer knows less about the law (or any other field) than someone in another non-legal profession, I think that they know about the same amount. But they should know MORE about the other professions, because most programming jobs have to do with commerce, law, design, what have you. Software products almost always have to do with a domain that is not software. A dentist has little use for law in his working life, but a programmer is more likely to profit from a basic understanding.

One thing that is special about the programming profession is that it is very diverse in levels of skill. And that's not only ok, I think that's a good thing.

I think this diversity is connected to a few things, one of them:

Our work product is very cheap to copy, and in the resulting economy, a small difference in utility will lead to huge differences in market share. Given a large market, this makes it reasonable to hone your skills further, where in other professions you'd be facing diminishing returns much earlier. This applies more to software that is widely used -- it has a larger market. Given a small market, this applies much less. In other, oversimplified, words: if you're writing software that is used (directly, or indirectly) by thousands, it pays off to train yourself for an extra year, even if it increases the utility of your product by only a small percentage. On the other hand, if you're a freelancer building web pages for a local business (a market size of 1), you're not going to profit much from the increase in utility.

Becoming Carmack makes sense in a large market. In a small market, it doesn't make sense to try to dominate it, but to acquire new markets.

Post reply on HN