Who Killed the Software Engineer? (Hint: It Happened in College): Page 2

(Page 2 of 2)

Okay, So He’s Not Fond of Java

One of the most ill-considered steps that universities took was to adopt Java as the most widely used language in introductory programming courses, Dewar says. Driving this change was a desire to make CS programs more popular.

He recalls a discussion among the NYU faculty several years ago when they decided to switch the introductory language from Pascal to Java. Pascal had never been that successful in industry, yet this lack of market acceptance didn’t matter; learning Pascal tended to promote solid programming practices.

“They taught Pascal because it seemed to be pedagogically the best choice,” Dewar says.

Yet the switch to Java was made “purely on the basis of perceived student demand.” To be sure, it’s a popular code for Web applications and is relatively easy for novices to navigate. Yet it is exactly this ease that goes to the core of what’s wrong with today’s CS curriculums.

Robert Dewar, New York University

Robert Dewar
Professor emeritus, NYU

“If you go into a store and buy a Java book, it’s 1,200 pages; 300 pages are the language and 900 pages are miscellaneous libraries. And it is true that you can sort of cobble things together in Java very easily…so you can sort of throw things together with minimal knowledge,” he says. “But to me, that’s not software engineering, that’s some kind of consuming-level programming.”

In Dewar’s view, today’s young Java jockey is not so much a programmer as a Programmer Wanna-Be. For example, “Many Java developers have no idea what storage management is about. So consequently they’re quite surprised if they have a storage leak which results from them not being careful about purging junk from their accumulating data structures.”

Furthermore, “The trouble with Java is that it hides a lot of stuff…it hides the issue of compiling – what is a compiler doing? I think if I was to talk to a Java student coming out, they might not even know the word ‘compiler.’ If they do, I’m sure I won’t get a clear picture if I asked, ‘What does a compiler do?’”

The most pressing problem, in Dewar’s view: “If people come out of school and they know Java and web programming, and they know how to put things together from libraries, that’s just the kind of skills that are not going to be demand.” Jobs requiring nothing more than these low-level skills set can easily be shipped off to low wage countries.

In short, today’s Java library cobbler is tomorrow’s pizza delivery man.

Who should (and Shouldn’t) be in Computer Science?

It takes a person with a very specific set of inclinations and talents to be a computer programmer, Dewar notes. It’s these specific people who colleges should gear their CS programs for – not the mass of semi-interested people who use pre-built libraries to create uninspired apps.

“Most of us who got into programming really did it because we find it fun. We find the intellectual challenge fun. We find being faced with tricky problems, then figuring out interesting algorithmic solutions, fun. We find clever data structures that solve some interesting problem fun.”

“Maybe it’s not fun to a bigger audience, but computer science education should be more about finding those people who like that kind of fun, and catering to them, rather than [making it all easy].”

“If people find it boring to compute some interesting value, then run that program and get a value of 42 when it should be 83, and figure out why they’ve gotten 42 instead of 83, if they find that tedious and boring, they really aren’t the kind of people we need.”

Page 2 of 2

Previous Page
1 2

Tags: Java, IT education, coding language, programming language, college software courses

0 Comments (click to add your comment)
Comment and Contribute


(Maximum characters: 1200). You have characters left.