Interesting article by Joel Spolsky: The Perils of JavaSchools

I

IchBin

Casey said:
Interesting article by Joel Spolsky: The Perils of JavaSchools

http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

There is some truth to it. I guess, you could lose some deeper abstract
training unless you are a double major\minor in math. I come from those
days of yore also but then.. I did not have to patch wires to run the
mainframe in my day either. I did spend most of my career in systems
programming coding mainframe assembler but then I was a psychology
major, go figure.

--

Thanks in Advance...
IchBin, Pocono Lake, Pa, USA
http://weconsultants.servebeer.com/JHackerAppManager
__________________________________________________________________________

'If there is one, Knowledge is the "Fountain of Youth"'
-William E. Taylor, Regular Guy (1952-)
 
C

Chris Smith

Casey Hawthorne said:
Interesting article by Joel Spolsky: The Perils of JavaSchools

http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

I think the problem is ever-so-slightly mis-diagnosed. The problem
isn't the mere use of Java to teach computer science in universities.
It is two-fold:

a) The use of ONLY Java to teach computer science... or ONLY any
language. A computer science graduate who only knows one language well
enough to implement non-trivial projects is a symptom of a seriously
deficient program.

b) The de-emphasis on real computer science, which the article
definitely mentions but doesn't spend enough time on. As long as
universities continue to believe that "computer programming" is anything
more than a necessary skill for doing computer science -- in much the
same way that use of a word processor or typewriter or pencil is a
necessary skill for writing a novel -- no choice of programming language
is going to be sufficient.

In the end, (a) is probably a consequence of (b) anyway... so attacking
the problem by complaining about universities that teach in Java is all
wrong.

--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
M

mpx

The market forces shifted main burden of programming from inventing and
coding algorithms to using existing components. The main chunk of time in a
real-world learning is rather memorizing all those
libraries/frameworks/tools/design patterns which seem to created and
extended faster than one can learn how to use them. The only intellectualy
demanding problems left seem to be multithreading and asynchronous system
design.

There is of course a class of people inventing new algorithms, and creating
those libraries/frameworks/design patterns that 95% of others just
implement. But they are a minority, and therefore there should be separate
courses for them.
 
R

Raymond DeCampo

Chris said:
I think the problem is ever-so-slightly mis-diagnosed. The problem
isn't the mere use of Java to teach computer science in universities.
It is two-fold:

a) The use of ONLY Java to teach computer science... or ONLY any
language. A computer science graduate who only knows one language well
enough to implement non-trivial projects is a symptom of a seriously
deficient program.

b) The de-emphasis on real computer science, which the article
definitely mentions but doesn't spend enough time on.

He also tries to have it both ways in the article on this point. He
seems to equate learning computer science with learning programming
languages like C, Scheme, Haskell, etc. These are simply applications
of computer science. One can learn a lot about computer science without
learning specific programming languages.
As long as
universities continue to believe that "computer programming" is anything
more than a necessary skill for doing computer science -- in much the
same way that use of a word processor or typewriter or pencil is a
necessary skill for writing a novel -- no choice of programming language
is going to be sufficient.

In the end, (a) is probably a consequence of (b) anyway... so attacking
the problem by complaining about universities that teach in Java is all
wrong.

Ray
 
D

Dimitri Maziuk

Raymond DeCampo sez:
.... He
seems to equate learning computer science with learning programming
languages like C, Scheme, Haskell, etc. These are simply applications
of computer science. One can learn a lot about computer science without
learning specific programming languages.

In theory, if you did a pure CS theory course, maybe -- but then
you'd be unemployable. Any practically useful course will have one
or two languages that you write assginments in, plus it will
at least introduce the concepts behind Pascal, C, Lisp, SmallTalk,
Prolog, and a few others.

Dima
 
C

Chris Smith

Dimitri Maziuk said:
In theory, if you did a pure CS theory course, maybe -- but then
you'd be unemployable. Any practically useful course will have one
or two languages that you write assginments in, plus it will
at least introduce the concepts behind Pascal, C, Lisp, SmallTalk,
Prolog, and a few others.

There are two ways that "practical" could be used here.

In one sense, you could be complaining that without knowing any
programming languages, the computer science student would be left
without the tools to do any investigation into computer science. I
would certainly agree. Read any peer-reviewed computer science journals
or doctoral dissertations or the like, and you'll find that a fair
majority of them involve implementation of some concept of algorithm in
order to provide experimental results (benchmarks, etc) that confirm the
theoretical concepts. In fact, I was interested in garbage collection
algorithms for some time, and I'd say it fair to assert that the
particular field of garbage collection is dominated at its very core by
empirical results. So yes, it's definitely true that programming
languages are practically necessary to do serious computer science work.

Then you talk about employment. That's just another consequence of
being confused about what computer science is. We're reaching the point
where universities begin to distinguish between computer science and
software engineering, at least at advanced levels such as in masters
programs. As we move in that direction, there will be less and less
confusion over what computer science means, because software engineering
will describe the people who implement software systems... including
myself, for example.

--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
C

Chris Smith

Indeed. There's a discussion going on in comp.programming as well,
sparked by a similar message. Search Google groups for newsgroup
comp.programming and "spolsky" in the subject line ....

Sparked by the same multiposted message, in fact. Nevertheless, I
prefer our thread, which is not dominated by a kook who wants to feel
superior to everyone but refuses to explain any concepts.

--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
D

Dimitri Maziuk

Chris Smith sez:
Then you talk about employment. That's just another consequence of
being confused about what computer science is. We're reaching the point
where universities begin to distinguish between computer science and
software engineering, at least at advanced levels such as in masters
programs. As we move in that direction, there will be less and less
confusion over what computer science means, because software engineering
will describe the people who implement software systems... including
myself, for example.

There are very few jobs in academentia. There are even fewer
"pure science"-type jobs in CS outside of academentia. Thus,
very few "computer science" postgrads are employable after
their second postdoc.

Once undergrads figure out that "computer science" program
will get them starved 5 years down the track, they'll stop
enrolling in it and schools will start closing such programs
down.

In the meantime, "software engineering" courses will teach blub
programmers Java ... "My God, they're trying to dumb down the
curriculum even further!"

Dima (oh, wait, didn't I just read this somewhere?)
 
C

Chris Smith

Dimitri Maziuk said:
There are very few jobs in academentia. There are even fewer
"pure science"-type jobs in CS outside of academentia. Thus,
very few "computer science" postgrads are employable after
their second postdoc.

Once undergrads figure out that "computer science" program
will get them starved 5 years down the track, they'll stop
enrolling in it and schools will start closing such programs
down.

Are you sure? I have a brother with a philosophy degree.

--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
O

Oliver Wong

mpx said:
The market forces shifted main burden of programming from inventing and
coding algorithms to using existing components. The main chunk of time in
a real-world learning is rather memorizing all those
libraries/frameworks/tools/design patterns which seem to created and
extended faster than one can learn how to use them. The only intellectualy
demanding problems left seem to be multithreading and asynchronous system
design.

There is of course a class of people inventing new algorithms, and
creating those libraries/frameworks/design patterns that 95% of others
just implement. But they are a minority, and therefore there should be
separate courses for them.

Some feel that if you want to learn a useful skill to get a job, you
shouldn't be going to university at all, but some sort of technical crafts
college. They would argue that university is for "higher learning", for
which the "everyday usefulness" may be more subtle.

- Oliver
 
O

Oliver Wong

Dimitri Maziuk said:
There are very few jobs in academentia. There are even fewer
"pure science"-type jobs in CS outside of academentia. Thus,
very few "computer science" postgrads are employable after
their second postdoc.

Once undergrads figure out that "computer science" program
will get them starved 5 years down the track, they'll stop
enrolling in it and schools will start closing such programs
down.

In the meantime, "software engineering" courses will teach blub
programmers Java ... "My God, they're trying to dumb down the
curriculum even further!"

My best friend from highschool went on to a Software Engineering
program. I was in the Computer Science program.

I often poked fun at how he lacked understanding of certain concepts in
CS. He wrote code for an embedded processor, but didn't know the difference
in expressive power between an DFA, a regular expression, and a Turing
Machine. He learned to program in C, but didn't know how to analyze the
asymptotic running time performance of various sort algorithms, and in what
situations one algorithm would be faster than another. He wrote some client
server applications, but didn't know what a petri net is.

Now we both have jobs, but he makes more money than I do.

And he STILL occasionally e-mails me, asking for my advice on how to
solve problems he encounters at work.

- Oliver
 
C

Chris Smith

Oliver Wong said:
Now we both have jobs, but he makes more money than I do.

And he STILL occasionally e-mails me, asking for my advice on how to
solve problems he encounters at work.

And to some extent, that's how it should be -- not the part about your
friend making more money than you, of course, which I'm not qualified to
speak to; and not necessarily that software engineering experts should
be clueless regarding the concepts of complexity and computability,
either. However, while they are the very foundation of computer science
upon which most everything else is built, these concepts are not the
core areas of expertise of the software engineer. They are somewhat
rarely needed in large-scale business software systems.

This isn't to say that software engineering is for losers, while CS is
for smart people. It's just as poor an idea for software developers to
be undereducated as for computer science students to be so. I don't
mean to say that I think it's okay for software engineering programs to
turn out single-minded developers that can only solve a certain kind of
problems. I just don't believe that "software engineering" has
developed enough that it's possible to point to all the things that the
software engineer should know , but with which the computer science
researcher would not be mainly concerned. As the field is developing,
though, these things appear to include mechanisms for managing
complexity and levels of abstraction. Those techniques are
fundamentally outside of the domain of computer science.

If software engineers need to approach computer science (or even
slightly more computer science educated colleagues) for occasional help
with algorithms, that's what a computer science education is for.
Similarly, they also frequently approach lawyers for interpretations of
statutes that regulate the insurance industry, or approach physicists
for formulae for determining the result of collisions of rigid bodies,
etc. It is their expertise to ask the right questions, then put it all
together and make the product work.

--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
C

Casey Hawthorne

Which is why I posted the message here to see if there would be more
intelligent discussion,as opposed to comp.programming where things
seemed to deteriorate!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,564
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top