5 ms·
I have a huge problem with requiring mathematical proficiency in programming. It's sets an unreasonable barrier to entry. Thousands of every day apps and servi
by greggman3 7y ago
I have a huge problem with requiring mathematical proficiency in programming. It's sets an unreasonable barrier to entry.
Thousands of every day apps and services work just fine without anything more than simple arithmetic. 3 or 4 of the top 5 websites required no math to get started.
Spreading the idea that you need to know math before learning to program is elitist and counter productive IMO.
- andrepd 7y ago>It's sets an unreasonable barrier to entry. Maybe that's not such a bad thing? When a big chunk of our world runs on computers, maybe it's not such a bad thing to have standards and take things seriously, like it is done in every single other engineering profession.
- seanmcdirmid 7y agoSo we don't allow kids to learn how to program until they take a lot of requisite math first? I was planning on teaching my kid some programming when he turned 5 or so, but should I hold off until he is 15 because obviously he isn't going to know all of that math before hand? I believe that programming is a skill, not a profession. You can know how to program without being a professional programmer.
- RHSeeger 7y agoKids can learn how to build bridges out of legos and erector sets before they learn math and (intro to?) materials science and a host of other things. But we don't let them be civil engineers until they learn the basics of these things. It's entirely possible to learn about and "play with" something without the things that are considered prerequisites for being a professional at it.
- andrepd 7y agoWhat I was going to say. Yes little kids can learn to program, but I think 10 year old me and his shitty programs in Turbo Pascal aren't the standard we should be measuring professionals by.
- seanmcdirmid 7y agoAgain, programming is not a profession. You might have a point with being a professional programmer (although a lot of programmers do useful things for money without much math), but programming is a skill that can be learned without a deep understanding of math, and often programming acts as a better lead into math rather than vice versa.
- loup-vaillant 7y ago> often programming acts as a better lead into math rather than vice versa. I suspect this is because programming is actually even more rigorous than maths. When you do maths, you can gloss over details, and sometimes delude yourself into thinking false things (that very same thing happened on my last HN submission: I failed to notice a data dependency in EdDSA, and thought an attack were possible, when in fact it wasn't). Programming uses an external cognitive engine (the computer), that is faithful, exact, and ruthless. Your program has to work. And when it doesn't, you're forced to revisit your assumptions (as I was forced to revisit mine when I actually tried to implement that attack and failed miserably). So yes, totally with you here.
- RHSeeger 7y agoNeither is designing or building scale model bridges. But the minute you put a bridge or software project into a situation where many people depend on it and it can cause serious damage, it tends to become one. And that is when we would start applying stricter standards.
- seanmcdirmid 7y agoSure, but this just brings up the fact that not all programming is the same. Some people are building small programs that don't need stricter standards, some people are building large ones that do. We just happen to call lots of activities that involve writing code programming, but they are fundamentally different.
- loup-vaillant 7y ago> You can know how to program without being a professional programmer. Of course you can. You just… won't be a professional, and won't be held against professional standards (minimum output & quality, that kind of stuff). That's okay. But if you're going to get paid for it, you ought to be better than a random self taught amateur. Though I suspect we aren't, in fact, much better than the average self taught amateur. That would be an indication that we still have progress to do.
- wolco 7y agoSo in order to post a youtube video you would need to take a camera operator course, study the history of movies and pass several advanced english courses? The term professional programmer means the programmer is getting paid that's all. You want to put a barrier up? Are you worried about lives being lost? Professional programmers don't decide what to program that comes from the project owner. They translate human requirements to computers. The people who decide what programmers write are defined by rules governing their project. If it's a health project laws around privacy restrict what the project owner can do.
- loup-vaillant 7y ago> I have a huge problem with requiring mathematical proficiency in programming. A program is a formal system whose overall structure is mostly a directed acyclic graph. Most good practices are about shaping this graph (we try to make it sparser overall, though we do tolerate isolated dense sub-graphs). If you know how to organise your programs, you've just demonstrated some proficiency with such graphs, even if you don't realise it. Maths isn't a way to keep people out. It's a way to get them in. And remember: what we do in high school remains markedly different from what we do in programming. Calculus would be the worst possible introduction to programming. You want discrete maths, graphs, boolean algebra, group theory…
- greggman3 7y agoTell that to the 6 yr old using Scratch. "Hey! Stop that fun stuff with shapes and animation an games and go study math for X years. When you're done maybe I'll let you program".
- carapace 7y agoAre we talking about kids playing with toys, or professional engineers building serious machinery? I credit playing with Cuisenaire rods as a child for strengthening my mathematical intuition, but I wouldn't build my house out of them, eh? In any event, I think it's possible to have your cake and eat it too. See http://iconicmath.com/ http://iconicmath.com/ I think we can make mathematical toys. Heck Scratch is a mathematical toy, eh?
- deleted 7y ago[deleted]
- yowlingcat 7y agoYou have completely ignored the most important parts of that graph, which are the inputs and outputs at its boundaries. Recall that the halting problem, Gödelian undecidability and the Church-Turing correspondence place very hard limits on the ability of axiomatic systems to define the truth, even in an abstract sense. But we see this all the time in computer science and programming. Something which takes so long to compute that you can't distinguish between whether it's accomplishing useful work for a given input case or not has a completely different kind of conceptual characteristic than "discrete maths, graphs, boolean algebra, group theory..." There's less universality. More details. More arbitrary, capricious conditions that you nevertheless have to not just work around, but determine how to build resilient systems in spite of. It is almost cruel to taunt practitioners working around the hard, messy, ugly constraints of reality with the beautiful, elegant, and noble idea of not just conceptual mathematics, but the ability to immanentize it. But, this does little to solve the inherent messiness of the world that the software interacts with, and the messy things that people do which affect what it needs to do.
- Someone 7y ago”I have a huge problem with requiring mathematical proficiency in programming. It's sets an unreasonable barrier to entry.” Whether that follows depends on how much and what kind of proficiency we require. We require programmers to be able to read and write, too, but we don’t require them to be excellent orators or literary writers. I do think requiring some proficiency is OK. Basic arithmetic, for example, definitely is ‘in’. A bit of ability to think logically, too. That doesn’t mean all programmers have to know what a group or a ODE is.