News for hackers. Stuff that matters.
Re:Brushing up on Computer Science Part 1, Big O by scott_s on Monday March 14, 2011 @05:32PM (#2324599)
I never said details. I just expect a firm grasp of the fundamentals. If I say "This algorithm is linear," or "This algorithm is quadratic," or even, "This algorithm is linear in the worst case, but constant in the average case," I expect them to know what I mean. Anyone who pulls a B average in an undergrad CS program should be able to do that.

I find your example with civil engineering and QCD disingenuous, because one doesn't need quantum theory when building buildings, bridges and roads. My point in mentioning Newtonian mechanics is that it is the foundation of mechanical engineering. I never said "it's all just physics," so I don't know why you did.

Re:Brushing up on Computer Science Part 1, Big O by bane on Monday March 14, 2011 @07:54PM (#2325086)
Considering that the developer in question was described as an autodidact and lacked formal training, your rebuttals are just becoming pedantic.

I find your example with civil engineering and QCD disingenuous, because one doesn't need quantum theory when building buildings, bridges and roads.

You conflate fundamental academics with fundamental knowledge.

People were building all kinds of great things before Newton. Lots of that stuff is still standing, some of it is still functioning.

Here's some examples:

http://en.wikipedia.org/wiki/Eupalinian_aqueduct

http://en.wikipedia.org/wiki/Pantheon,_Rome

http://en.wikipedia.org/wiki/Appian_way

http://en.wikipedia.org/wiki/Forbidden_city

http://en.wikipedia.org/wiki/Taj_mahal

http://en.wikipedia.org/wiki/List_of_aqueducts_in_the_Roman_...

http://en.wikipedia.org/wiki/Macchu_pichu

Civil Engineering not your thing? Here's some mechanical engineering

http://en.wikipedia.org/wiki/Antikythera_mechanism

http://en.wikipedia.org/wiki/Cannon

http://en.wikipedia.org/wiki/Aeolipile

http://en.wikipedia.org/wiki/Water_clock

http://en.wikipedia.org/wiki/Catapult -- you couldn't possibly make one of these without knowing Newton's laws of motion...

http://en.wikipedia.org/wiki/Bellows

http://en.wikipedia.org/wiki/Chain_drive

http://en.wikipedia.org/wiki/Crank_(mechanism)

Here's some pre-Newton celestial mechanics

http://en.wikipedia.org/wiki/Armillary_sphere -- some even hydraulically powered!

http://en.wikipedia.org/wiki/Gnomon

http://en.wikipedia.org/wiki/Chinese_calendar

http://en.wikipedia.org/wiki/Antikythera_mechanism

These guys got along more or less alright without fundamental Newtonian mechanics

http://en.wikipedia.org/wiki/Leonardo_da_Vinci

http://en.wikipedia.org/wiki/Hero_of_Alexandria

http://en.wikipedia.org/wiki/Archimedes

I could go on, but you probably get the point.

To hear you tell it, humans were just scratching around in the dirt until Newton lifted us into civilization on the wings of F=ma.

One doesn't need big-O to write software either -- even great software. I know that in academia these kinds of things are seen as absolutely fundamental, every published algorithm paper should at least show complexity for big-O (at a minimum) to be taken seriously. And that's great for your milieu, but you need to come down from Mt. Olympus and mix with the rest of us mere mortals and just build stuff. I guarantee you can build all sorts of wondrous, magical things without ever even considering big-O.

Re:Brushing up on Computer Science Part 1, Big O by scott_s on Monday March 14, 2011 @10:03PM (#2325491)
I'm sorry if you find me pedantic, but I'm honestly trying to get a point across - and obviously failing. This discussion has been frustrating for me because I thought my point was self-evident, but most of your responses seem like non-sequiturs to me. I also think you're being unnecessarily sarcastic and antagonistic - Mt. Olympus and the like.
Re:Brushing up on Computer Science Part 1, Big O by bane on Tuesday March 15, 2011 @12:05AM (#2325861)
ahh, I'm just ribbing ya.

You do have a point, which I agree with, learning about complexity theory is a tremendously useful skill to have as a developer.

Is it required to be a good one? You say yes (absolutely), I say no (but it doesn't hurt).

Fair enough?