Software engineering myths [modified]
-
Gary R. Wheeler wrote:
It's a shame his writing style is so poor
Hopefully when he does his thesis, his advisor will help him out. Writing for Computer Science[^] by Justin Zobel might be a helpful book for him to look at, or anyone who wants to improve their writing in computer science related areas :)
too much daily WTF for someone... - Anton Afanasyev
-
The article makes some pretty good points but is ultimately flawed due to the bizarre nonsense that computer science is, and should be, an extension of departments of mathematics at universities. (Yes, there are specialties within the entire computer science field that require "high" mathematics, but in general the mathematical requirements for computer science are low.) In practice, most of computer science, and especially software development, is an engineering discipline and the failure to treat it as such has not served graduates well. I am continually astonished how few software developers use standard engineering type practices in developing code. On the flip side, if I rank the top ten software developers I know, six have engineering backgrounds or degrees, three have computer science degrees (I think--I'm actually not sure of one) and one dropped out of college one semester short of a degree in classical piano. (Of the worse developers I know, they all have computer science degrees from universities or colleges where the CS department is an adjunct of the mathematics department an is in the college of liberal arts.) [I have to revise the above comment. While writing a response below, I remembered that one of the developers on my "top ten" list actually has a degree in mathematics, not engineering. When I worked with him, he was maintaining RSA code and his math came in quite handy.] -- modified at 17:18 Saturday 19th August, 2006
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
Joe Woodbury wrote:
general the mathematical requirements for computer science are low
Don't know where you went to school but where I went we were taking 400 level math classes and all of us were at least math minors and with a few more semesters could have double-majored. I plan on going back someday to get a mathematics major but I think I'll master in it. Math permeated everything we did. I tend to agree with this guy a lot! We had to work our butts off in mathematics and we applied it to *everything*.
I only read CP for the articles. Code-frog System Architects, Inc.
-
Joe Woodbury wrote:
general the mathematical requirements for computer science are low
Don't know where you went to school but where I went we were taking 400 level math classes and all of us were at least math minors and with a few more semesters could have double-majored. I plan on going back someday to get a mathematics major but I think I'll master in it. Math permeated everything we did. I tend to agree with this guy a lot! We had to work our butts off in mathematics and we applied it to *everything*.
I only read CP for the articles. Code-frog System Architects, Inc.
code-frog wrote:
applied it to *everything*
Only have done so in an algorithm analysis course and in an automata course :-D The guy who taught the two courses had a BA in Math, MS/PhD in Computer Science, so he was pretty math-oriented.
I'd like to help but I don't feel like Googling it for you.
-
Gary R. Wheeler wrote:
It's a shame his writing style is so poor
Hopefully when he does his thesis, his advisor will help him out. Writing for Computer Science[^] by Justin Zobel might be a helpful book for him to look at, or anyone who wants to improve their writing in computer science related areas :)
too much daily WTF for someone... - Anton Afanasyev
Along with a copy of The Elements of Style[^] by Strunk and White, and a decent dictionary wouldn't hurt either.
Software Zen:
delete this;
-
Along with a copy of The Elements of Style[^] by Strunk and White, and a decent dictionary wouldn't hurt either.
Software Zen:
delete this;
Gary R. Wheeler wrote:
Along with a copy of The Elements of Style[^] by Strunk and White
Yep, more the merrier :-D
Gary R. Wheeler wrote:
a decent dictionary wouldn't hurt either
Nope, sure wouldn't hurt at all.
I'd like to help but I don't feel like Googling it for you.
-
Joe Woodbury wrote:
general the mathematical requirements for computer science are low
Don't know where you went to school but where I went we were taking 400 level math classes and all of us were at least math minors and with a few more semesters could have double-majored. I plan on going back someday to get a mathematics major but I think I'll master in it. Math permeated everything we did. I tend to agree with this guy a lot! We had to work our butts off in mathematics and we applied it to *everything*.
I only read CP for the articles. Code-frog System Architects, Inc.
code-frog wrote:
Don't know where you went to school but where I went we were taking 400 level math classes and all of us were at least math minors and with a few more semesters could have double-majored.
I didn't major in Computer Science because so many of the classes had so little to do with practical software development. It was all theory and I wasn't interested in that. I ended up majoring in Design Engineering Technology and got burned out on Calculus, Physics 302 (when you get into electrical fields and stuff) and Materials Science (just plain boring), dropped out and finished my degree at a small film school. I have worked in a wide range of fields as a developer. My experience is that mathematics is rarely required for writing software. I also found that when it is needed, its really needed and you're almost better off getting a math major who knows programming (i.e. in 3D transforms or RSA encryption.) I once worked with a theory heavy PhD developer. He was always using formulas to argue what algorithms should be used. Beyond that fact that in actual practice with the actual data sets, his algorithms were rarely faster and even then only marginally so, he was oblivious to all other considerations that a practical engineer has to deal with, especially resource requirements and maintainability. (One thing that really bugged me is how much "paper" programming he did versus actually just writing code and experimenting with it.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
-
A few years writing commercial, production level code would also be quite helpful.
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
-
code-frog wrote:
Don't know where you went to school but where I went we were taking 400 level math classes and all of us were at least math minors and with a few more semesters could have double-majored.
I didn't major in Computer Science because so many of the classes had so little to do with practical software development. It was all theory and I wasn't interested in that. I ended up majoring in Design Engineering Technology and got burned out on Calculus, Physics 302 (when you get into electrical fields and stuff) and Materials Science (just plain boring), dropped out and finished my degree at a small film school. I have worked in a wide range of fields as a developer. My experience is that mathematics is rarely required for writing software. I also found that when it is needed, its really needed and you're almost better off getting a math major who knows programming (i.e. in 3D transforms or RSA encryption.) I once worked with a theory heavy PhD developer. He was always using formulas to argue what algorithms should be used. Beyond that fact that in actual practice with the actual data sets, his algorithms were rarely faster and even then only marginally so, he was oblivious to all other considerations that a practical engineer has to deal with, especially resource requirements and maintainability. (One thing that really bugged me is how much "paper" programming he did versus actually just writing code and experimenting with it.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
I agree with what you are saying. I believe programmers are like football players. Many people play football and claim to be good. However, the number of players that actually make it into the NFL to the ratio of those who try tells me that the many who play aren't that great. Programmers are the same. Whether they are web developers who picked it up as they went and don't even know what Big O is or MIT graduates who've actually written code for beowolf computing clusters. People coming from both of those backgrounds or similar into programming are not immediately good or bad at what they do. The background really means nothing. I've noticed that outside of degrees (or to say that degrees have nothing to do with it) people on their own are scientist/engineers based upon how they are wired and have been all of their lives. You cannot teach somebody to be a scientist/engineer nor can you teach someone how to be a brilliant programmer. Despite education and background they either have it or they don't. Take any 100 people with a masters degree in computer science and I'd lay odds that greater than 60% suck at designing, developing and implementing practical and useable software. If mathemetics is required I've known many who pop open a reference reason out the math, conduct some experiments to be sure they have it right and boom they are off and running. You've either got it ... or you don't ... but where I went to school the math got pushed hard because the guys teaching knew that programming is fairly easy to pickup. So they forced math and analysis big-time. It was tough work but it taught me to love math. So much in fact that someday I'm going back for a masters in it.
I only read cp for the articles.
Iron Speed Designer MVP
Check out my 7 Part Series on Networking[^] -
code-frog wrote:
Don't know where you went to school but where I went we were taking 400 level math classes and all of us were at least math minors and with a few more semesters could have double-majored.
I didn't major in Computer Science because so many of the classes had so little to do with practical software development. It was all theory and I wasn't interested in that. I ended up majoring in Design Engineering Technology and got burned out on Calculus, Physics 302 (when you get into electrical fields and stuff) and Materials Science (just plain boring), dropped out and finished my degree at a small film school. I have worked in a wide range of fields as a developer. My experience is that mathematics is rarely required for writing software. I also found that when it is needed, its really needed and you're almost better off getting a math major who knows programming (i.e. in 3D transforms or RSA encryption.) I once worked with a theory heavy PhD developer. He was always using formulas to argue what algorithms should be used. Beyond that fact that in actual practice with the actual data sets, his algorithms were rarely faster and even then only marginally so, he was oblivious to all other considerations that a practical engineer has to deal with, especially resource requirements and maintainability. (One thing that really bugged me is how much "paper" programming he did versus actually just writing code and experimenting with it.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
Joe Woodbury wrote:
have worked in a wide range of fields as a developer. My experience is that mathematics is rarely required for writing software
Same thing here. Only time I've ever used any math is for personal projects. Have never been called on for serious math in real world production level work.
-
A few years writing commercial, production level code would also be quite helpful.
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
Joe Woodbury wrote:
A few years writing commercial, production level code would also be quite helpful.
So very true. Even if one does a career in the academics, having some commercial work background is beneficial :)
-
A few years writing commercial, production level code would also be quite helpful.
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
Agreed. That's the most irritating thing about academic pontification about what's "wrong" with the software industry. These opinions are granted weight solely because they come from the academic community. These people have no experience producing commercial software. They propose solutions that are impractical and blithely ignorant of the realities involved. Some experience of the real world (say, 4-5 years in a cube and a few hundred thousand lines of code) might give them a better appreciation.
Software Zen:
delete this;