top | item 530522

Where Are the Software Engineers of Tomorrow?

26 points| yesraaj | 17 years ago |stsc.hill.af.mil | reply

Where Are the Software Engineers of Tomorrow?

22 comments

order
[+] ealar|17 years ago|reply
This guy suffers from the "schools are job training" mentality that I've noticed has grown in popularity recently. He expects students from the university to be able to work on his development environment without significant retraining, when he is not using the development environment that the universities are teaching.

The fault here is in the business owner expecting freshman grads to be skilled in highly specialized software development specific to their business. The schools are pumping out students who are perfectly good programmers, and if he actually trained them to use his tools, they would be good programmers for his environment.

Edit: To be clear, if the were a university teaching only Java to the students, it would be a bad university. Such a university doesn't exist. If he wants formal methods, he needs to higher Masters students or higher -- or optionally donate a few $$ to a CS department in exchange for adding the course to ugrad.

Edit 2: I'm going to stop editing this now.

[+] tjic|17 years ago|reply
> worrisome trends in CS education ... Mathematics requirements in CS programs are shrinking.

Speaking as someone who had to take several attempts at differential equations to pass it, and has (a) had a very solid career since graduation; (b) has never used even integration or differentiation a single time since graduation, let alone numeric methods, etc., I call BS.

Tons of math is useful for about 1% of programmers.

For the rest of us, it's just a form of hazing, like intern doctors being forced to work 48 hr shifts.

[+] jmtulloss|17 years ago|reply
Differential equations is probably not the form of mathematics he was referring to.

Algorithms, linear algebra, basic logic and discrete math are all used commonly in many CS jobs, especially by those who have a deep understanding of the systems they're working on.

[+] randrews|17 years ago|reply
This guy has written several articles in recent memory complaining about nobody teaching/using Ada any more.

He runs a company that sells Ada dev tools, so I would take what he says with a grain of salt.

[+] three14|17 years ago|reply
I took his (Dewar's) programming languages class in the master's program at NYU, and he certainly knows other languages well. He does have an Ada bias, but he had quite an uphill battle getting the master's students to write simple Ada programs during the part of the semester devoted to Ada. His basic complaint isn't about Ada specifically, and was well supported by his actual students' performance in Ada and Lisp, if I recall correctly.
[+] biohacker42|17 years ago|reply
As a long time C++ programmer, I'm not sure C++ matters for the reasons given. C matters, Lips matters, Smalltalk matters, C++ only matters in the if you can grok this you can grok anything way.

Also I strongly suspect the number of good software engineers is pretty much fixed, and no amount of fudging with this or that will change it.

Now the number of bad or at best average engineers, I suspect that is very responsive to all kinds of things.

[+] gills|17 years ago|reply
Answer: they are working on other projects. The ones that have already left the stone age, and choose tools on merit rather than fear, dogma, and "that's the way we always did it".

Disclaimer: ex-defense programmer. Java. C++. <shudder>

[+] brianto2010|17 years ago|reply
Wait, I'm confused.

> "Over the last few years we have noticed worrisome trends in CS education. The following represents a summary of those trends:...the development of programming skills in several languages is giving way to cookbook approaches using large libraries and special-purpose packages."

I agree with the "several languages" part, but why is using a large library a worrisome trend? Is it really that bad?

Using a library doesn't seem like a bad idea to me. Programmers often advocate code reuse and using a library is an example of code reuse. If you need to sort data, use a provided sorting algorithm or one written by someone smarter rather than writing it yourself. If a problem is solved, don't solve it again, right?

Does it have to do with understanding the solution to the problem?

[+] josh_nyc|17 years ago|reply
I think they are referring to the fact that students new to programming learn to "always" rely on stringing together pre-existing libraries (namely in Java) rather than gaining experience by creating some functionality, algorithms, etc. from scratch.

FWIW, I took a class taught by Shonberg (about OOP) when I attended NYU. Ironically NYU CS majors are required to take several classes that use Java, so I guess he wasn't able to convince the administration of his views. However, I learned a tremendous amount from the algorithms and OS courses there, and there were some great classes still using C and C++.

[+] Dilpil|17 years ago|reply
If anything, I've seen the opposite problem. Programming is fun- reading manuals is boring. People tend to want to dive right into the programming, without first doing research that would greatly improve the speed and stability of the project.
[+] medearis|17 years ago|reply
I particularly agree with this point -- "students need to be exposed to the tools to construct large-scale reliable programs..." The individual technical component is only half the story. Real "software engineering" involves developing software which can be understood by others, expanded and scaled, which I have found to be just as hard as nitty-gritty pointer math.
[+] geebee|17 years ago|reply
It all seems like a pretty fair assessment of what a programmer ought to know in terms of programming languages. We can all find things to disagree about in the details, but this seems very close to Eric Raymond's "how to become a hacker" essay. Python, C/C++, Java, Perl, and LISP. Maybe you'd want to switch out Perl for Ruby, and not bother with Ada, or add Haskell...

The thing that gets to me is that we fret so much about the curriculum. We all know the list, we either choose or don't choose to engage with it. I don't think this can be pushed into someone's head anyway.

[+] Tichy|17 years ago|reply
Don't tell me what to do.
[+] kvh|17 years ago|reply
disagree completely. ada???
[+] andr|17 years ago|reply
i guess it matters if you are writing a fighter jet OS.
[+] daniel-cussen|17 years ago|reply
They're getting beat up in gym class.
[+] daniel-cussen|17 years ago|reply
I'm not being sarcastic. I was a nerd activist for a while and there really is nothing that protects them from this.