News for hackers. Stuff that matters.
Re:Brushing up on Computer Science Part 1, Big O by scott_s on Monday March 14, 2011 @04:54PM (#2324410)
While I agree that more accurate terms would be a good thing, I don't think my expectations are all that high - nor does it only include "people who are great at every bit of modern software development." And I certainly did not imply that only people who are good in what I'm good at are good developers.

What I do expect is for "good developers" to have, at least, a firm grasp of the material covered in most undergraduate Computer Science curriculums. It's funny that you also use "real" engineers as an example, because we know that any practicing engineer does have a firm grasp of the fundamentals of their discipline: they had to take a licensing exam which ensured so.

Re:Brushing up on Computer Science Part 1, Big O by bane on Monday March 14, 2011 @05:13PM (#2324514)
Maybe we should do a poll of HN? How many people know the details of algorithm design w/r to the Family of Bachmann–Landau notations?

"It's funny that you also use "real" engineers as an example, because we know that any practicing engineer does have a firm grasp of the fundamentals of their discipline: they had to take a licensing exam which ensured so."

But do they understand the fundamentals in the examples I provided? My Civil Engineering friend (with a PhD such) doesn't know the first thing about QCD and he'll gladly tell you that. It's all just physics though right?

edit poll is submitted.

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?