managed some large business application development projects
There are business applications, and what I would call technical applications such as image processing, geographic information systems, numerical analysis, etc. I work for a large company that does the latter, and every project that I am aware of uses C++.
I live in the U.S where most software development related degrees are called "Computer Science". My current title is "Software Developer". I have seen companies where people doing the same thing I am have the title "Software Engineer". I don't think the title has any correlation with what you do at work.
I don’t mean for this to sound arrogant, but it probably will. I was a physics major who took a statistics course that was taught in the Psychology Department and meant for psychology students. A lot of science and math majors took the course as a way to pad their GPA’s. I could see from the books the other students brought to class that about one forth of the students were science or math majors. I think I made about a 96 on the first test and was embarrassed at the thing I missed. The class average was 48 or something. The grad student teaching the course said that maybe the test was too hard, but “there were a lot of very good grades”. I have a feeling that not many of the good grades were made by the psych majors.
If I were teaching the course, I would probably emphasize the purpose of the various statistical techniques for behavioral evaluation, and not make the math portion too detailed or rigorous.
We have a fair number of women where I work. The interesting thing is that they are all Asian. Whatever we stupid males are doing to drive away women apparently doesn't work on Asian women. Or it could be that there is something in Western Culture that discourages women from pursuing careers in programming.
I’m afraid I didn’t do a decent job of explaining myself. I didn’t mean to say that the tester did a poor job. She did a very professional job. It’s just that users will use the system in ways that can’t be predicted. This was a complex system with a flexible user interface. The kids (two of them, not a big group) used the system in unexpected ways, just as users sometime do.
Sometimes professional testers make poor testers. I worked on a project with a professional tester who did her job conscientiously, wrote test procedures and methodically exercised the software. We also hired some college kids during the summer and assigned them to test the software. They just tried things. The kids found a lot more bugs than the tester.
I hate marketing stuff, I hate business stuff, and I really hate "networking".. what I love is building software.
Me too. And that’s exactly what I do. Where I work, management handles the business stuff. You just have to keep looking for the right company where they realize that a first rate programmer is a valuable resource even if they aren’t into the business stuff.
The problem lies in the fact that doing well in those types of courses requires a certain type of analytic thinking that is simply not that intuitive for most people.
When I started college I majored in Physics. It was hard. I switched to the much easier (but still hard for some people) Computer Science major. After I graduated I got a job in software development. It was hard. These disciplines are inherently hard. Making the curricula easier may help graduation rates but it is not going to prepare students for careers in STEM. Most of the people who drop out of STEM and major in something else are going to lead happier and more productive lives than if we somehow kept them in a discipline that they are not suited for.
You obviously don't need computers to teach, but to claim that can't be helpful is just Luddism.
I agree. It's obviously a question that could be decided by a few carefully designed experiments. To make a blanket assertion without any evidence is not what you would expect from an educator. Given the importance of the question, I'm surprise that someone hasn't done the research.
When I am developing software, I have a lot of new ideas, many of them at least as good as some of the software patents that I have seen. My motivation for coming up with these ideas is to make my software more efficient and more reliable, not to patent them and keep the company lawyers employed. If I had to worry about whether someone had already patented one of my ideas, my productivity would come to a halt.
Right. I think the contractor's employee gets paid about one third of the billing rate. The rest of the money goes to paying for office space, taxes, support people (managers, accountants, secretaries), company profit, training, etc. Hiring contractors gives the government a lot of flexibility. If they need a system that uses technology X, they can hire a contractor with the relevant experience for the project, and when the project is over, the contractor is gone. Also, it is a lot easier to avoid a contractor who has done a poor job in the past than it is to fire a government employee.
Professors may need to ponder the "shared responsibility in the collective metropolitan realm", or at least pretend to, but engineers need to develop innovative products. Different jobs need different environments.
I can understand and empathize with that, because I was in that situation myself, at the time. About half the summer hires quit after a couple of weeks. Those of us that stuck it out were not the strongest or the toughest, but the ones that needed the money. I applied at the same place next summer, but the job I had been doing had been automated. Outsourcing is not the only way you lose manufacturing jobs.
We once were a manufacturng giant. People had decent middle class jobs.
When I was in college, I had a manufacturing job one summer. I stood on an assembly line doing an incredibly boring task until my hands were blistered. Being a manufacturing giant has its draw backs.
If I add a new public function to a class why should have to re-compile all the old code that doesn't use that function?
C++ requires that the size and layout of an object in memory (its vtable) be known at compile time for efficiency. Otherwise, there would be another level of indirection requiring a second memory read. From what i have read, Stroustrup was very aware of the concern for efficiency among C programmers and wanted C++ to be on a performance level with C.
you're being ridiculous. Anyone who types that is an idiot
There are are a lot of examples for type inference that do exactly that. I would still rather have a more verbose and informative typedef in code that I am reading than the word "auto".
Did you catch the problem with the first statement? You can’t from context. It would pass the compiler and introduce subtle errors in you code as the “area” variable is always truncated to int. All so you can type var instead of double.
Have you SEEN the stuff they're adding in the C++0x standard?
I have the same impression. A bunch of useless, error prone, legibility degrading changes to save a little bit of typing. In my opinion this is the worst standards committee ever.
Maybe 20 years ago, but I just opened a file in Emacs and it loaded in about a half a second.
I guess all of these students were planning on going into politics.
There are business applications, and what I would call technical applications such as image processing, geographic information systems, numerical analysis, etc. I work for a large company that does the latter, and every project that I am aware of uses C++.
You make it sound like Windows 8 is a stroke of marketing genius instead of a case of user interface design stupidity. I’ll put my money on stupidity.
I live in the U.S where most software development related degrees are called "Computer Science". My current title is "Software Developer". I have seen companies where people doing the same thing I am have the title "Software Engineer". I don't think the title has any correlation with what you do at work.
Right. How are the lawyers going to make any money if everything is well defined?
I'm putting all my money on hypothesis one.
I don’t mean for this to sound arrogant, but it probably will. I was a physics major who took a statistics course that was taught in the Psychology Department and meant for psychology students. A lot of science and math majors took the course as a way to pad their GPA’s. I could see from the books the other students brought to class that about one forth of the students were science or math majors. I think I made about a 96 on the first test and was embarrassed at the thing I missed. The class average was 48 or something. The grad student teaching the course said that maybe the test was too hard, but “there were a lot of very good grades”. I have a feeling that not many of the good grades were made by the psych majors.
If I were teaching the course, I would probably emphasize the purpose of the various statistical techniques for behavioral evaluation, and not make the math portion too detailed or rigorous.
It helped manage complexity, but it increased the skill level needed to program effectively.
We have a fair number of women where I work. The interesting thing is that they are all Asian. Whatever we stupid males are doing to drive away women apparently doesn't work on Asian women. Or it could be that there is something in Western Culture that discourages women from pursuing careers in programming.
I’m afraid I didn’t do a decent job of explaining myself. I didn’t mean to say that the tester did a poor job. She did a very professional job. It’s just that users will use the system in ways that can’t be predicted. This was a complex system with a flexible user interface. The kids (two of them, not a big group) used the system in unexpected ways, just as users sometime do.
Sometimes professional testers make poor testers. I worked on a project with a professional tester who did her job conscientiously, wrote test procedures and methodically exercised the software. We also hired some college kids during the summer and assigned them to test the software. They just tried things. The kids found a lot more bugs than the tester.
Me too. And that’s exactly what I do. Where I work, management handles the business stuff. You just have to keep looking for the right company where they realize that a first rate programmer is a valuable resource even if they aren’t into the business stuff.
When I started college I majored in Physics. It was hard. I switched to the much easier (but still hard for some people) Computer Science major. After I graduated I got a job in software development. It was hard. These disciplines are inherently hard. Making the curricula easier may help graduation rates but it is not going to prepare students for careers in STEM. Most of the people who drop out of STEM and major in something else are going to lead happier and more productive lives than if we somehow kept them in a discipline that they are not suited for.
I agree. It's obviously a question that could be decided by a few carefully designed experiments. To make a blanket assertion without any evidence is not what you would expect from an educator. Given the importance of the question, I'm surprise that someone hasn't done the research.
When I am developing software, I have a lot of new ideas, many of them at least as good as some of the software patents that I have seen. My motivation for coming up with these ideas is to make my software more efficient and more reliable, not to patent them and keep the company lawyers employed. If I had to worry about whether someone had already patented one of my ideas, my productivity would come to a halt.
They would have to pay me a lot more than that.
Right. I think the contractor's employee gets paid about one third of the billing rate. The rest of the money goes to paying for office space, taxes, support people (managers, accountants, secretaries), company profit, training, etc. Hiring contractors gives the government a lot of flexibility. If they need a system that uses technology X, they can hire a contractor with the relevant experience for the project, and when the project is over, the contractor is gone. Also, it is a lot easier to avoid a contractor who has done a poor job in the past than it is to fire a government employee.
Professors may need to ponder the "shared responsibility in the collective metropolitan realm", or at least pretend to, but engineers need to develop innovative products. Different jobs need different environments.
I can understand and empathize with that, because I was in that situation myself, at the time. About half the summer hires quit after a couple of weeks. Those of us that stuck it out were not the strongest or the toughest, but the ones that needed the money. I applied at the same place next summer, but the job I had been doing had been automated. Outsourcing is not the only way you lose manufacturing jobs.
When I was in college, I had a manufacturing job one summer. I stood on an assembly line doing an incredibly boring task until my hands were blistered. Being a manufacturing giant has its draw backs.
C++ requires that the size and layout of an object in memory (its vtable) be known at compile time for efficiency. Otherwise, there would be another level of indirection requiring a second memory read. From what i have read, Stroustrup was very aware of the concern for efficiency among C programmers and wanted C++ to be on a performance level with C.
There are are a lot of examples for type inference that do exactly that. I would still rather have a more verbose and informative typedef in code that I am reading than the word "auto".
No
And lambda functions?
Yes
And type inference?
Especially type inference. Now we can write
var area = 0;
Instead of
double area = 0;
Did you catch the problem with the first statement? You can’t from context. It would pass the compiler and introduce subtle errors in you code as the “area” variable is always truncated to int. All so you can type var instead of double.
I have the same impression. A bunch of useless, error prone, legibility degrading changes to save a little bit of typing. In my opinion this is the worst standards committee ever.