On Fri, Nov 19, 2010 at 9:38 PM, Josh Cheek <josh.cheek / gmail.com> wrote:
> I have an incredibly difficult time imagining a web developer being asked
> either of these questions. The second one in particular, if you had that
> question, would you think "I better go find a web developer"? Or even mor=
e
> generally "a programmer"? If you are able to word it like that, then you =
are
> probably already ahead of them in solving it. And if you aren't, then thi=
s
> isn't a compelling example.

The first one is likely, once you shift the ERP to a web app. The
second one: not so much, but then again, Electrical Engineering uses
specialized software.

>> 3) SQL's JOIN (set theory).
>> What's the intersection of the sets {1,2,3,5,6} and {1,2,4,6}?
>>
>>
> Okay, I guess I should clarify that I am mostly thinking about Calculus a=
nd
> Linear Algebra and Statistics. I'm not saying there is no merit to Discre=
te
> Math. Though I don't think it is anywhere near as difficult as school mak=
es
> it, and I still think it is less relevant than academics consider it, and=
 I
> expect you will figure almost all of that stuff out when you need it -- i=
f
> you need it.

It's easier than school makes it, definitely. But set theory is pretty
basic, and like all basic things, it is not that difficult, but still
highly important. Fortunately, a good 3 hours in Maths 101 will teach
you the basics well enough that you won't ever have to look up any
laws related to set theory.

> In my discrete math course, they taught prefix, postfix, infix. I underst=
ood
> it well enough to walk through their drawings of trees and get the right
> answer on my test. Then in Data Structures, I was given code for a Binary
> Search Tree, looked at the delete function (recursive), couldn't comprehe=
nd
> it, sat down and worked out what it was doing, and said "holy crap!". And
> when told to print the tree, wrote my own version. I didn't comprehend th=
at
> it was the same as what I learned in Discrete Math, I just thought about =
it
> for a while, tried putting it after the traverse child code, it didn't wo=
rk.
> I thought about why not, realized it needed to go between them. Then,
> several days after I finished. I was reflecting on it, and finally realiz=
ed
> the placement of the print statements was just prefix, postfix, infix
> traversal. I had solved it without math. Of course, I can't see myself ev=
er
> needing to code my own BST, so even then, not sure how relevant this exam=
ple
> would have been for the pro-math side.

You solved it without maths, but it took you much longer. Algorithms
of any kind are the bread and butter of mathematics, and once you grok
maths, any algorithm becomes easy (outside of cryptography, anyway).

Instead of days, it'd taken you just a few hours *at most*.

Of course, that assumes were taught actual mathematics, and not
computing (Wolfram had an interesting TED Talk on teaching maths using
computers, instead of teaching computing at school).

> Another example: I have never used De Morgan's laws =A0outside of homewor=
k
> problems, but I've been taught them at least 6 times (yes, I just stopped
> and counted).

I've been taught vectorial maths 5 times sofar, and I expect a few
more lessons on that. But be that as it may, maths is the universal
language of any hard science endeavour, and just worthwhile to know,
if only to make an educated guess on whether or not a certain solution
works, or makes sense.

To look at our set theory in the context of JOINs: You can go ahead
and try all possible iterations until you strike gold, or you can, up
front, define the exact result you need by formulating it in
mathematical logic. It's TDD before you write a single line of code,
more or less.

--=20
Phillip Gawlowski

Though the folk I have met,
(Ah, how soon!) they forget
When I've moved on to some other place,
There may be one or two,
When I've played and passed through,
Who'll remember my song or my face.