Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / January 2006

Tip: Looking for answers? Try searching our database.

Interesting article by Joel Spolsky:  The Perils of JavaSchools

Thread view: 
Casey Hawthorne - 12 Jan 2006 00:55 GMT
Interesting article by Joel Spolsky:  The Perils of JavaSchools

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

--
Regards,
Casey
IchBin - 12 Jan 2006 02:06 GMT
> Interesting article by Joel Spolsky:  The Perils of JavaSchools
>
[quoted text clipped - 3 lines]
> Regards,
> Casey

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.

Signature

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-)

Chris Smith - 12 Jan 2006 07:15 GMT
> 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.

Signature

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

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation

Raymond DeCampo - 12 Jan 2006 15:20 GMT
>>Interesting article by Joel Spolsky:  The Perils of JavaSchools
>>
[quoted text clipped - 11 lines]
> 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
[quoted text clipped - 6 lines]
> the problem by complaining about universities that teach in Java is all
> wrong.

Ray

Signature

This signature intentionally left blank.

Dimitri Maziuk - 12 Jan 2006 17:07 GMT
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
Signature

Relativity, Uncertainty, Incompleteness, Undecidability: choose any four

Chris Smith - 12 Jan 2006 17:40 GMT
> 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.

Signature

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

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation

Dimitri Maziuk - 13 Jan 2006 06:56 GMT
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
[quoted text clipped - 4 lines]
> 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?)
Signature

We're sysadmins. Sanity happens to other people.                  -- Chris King

Chris Smith - 13 Jan 2006 15:30 GMT
> There are very few jobs in academentia. There are even fewer
> "pure science"-type jobs in CS outside of academentia. Thus,
[quoted text clipped - 5 lines]
> enrolling in it and schools will start closing such programs
> down.

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

Signature

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

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation

Oliver Wong - 13 Jan 2006 21:26 GMT
> There are very few jobs in academentia. There are even fewer
> "pure science"-type jobs in CS outside of academentia. Thus,
[quoted text clipped - 9 lines]
> 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
Chris Smith - 14 Jan 2006 04:26 GMT
>     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.

Signature

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

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation

mpx - 12 Jan 2006 10:27 GMT
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.
Oliver Wong - 13 Jan 2006 21:26 GMT
> The market forces shifted main burden of programming from inventing and
> coding algorithms to using existing components. The main chunk of time in
[quoted text clipped - 8 lines]
> 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
blmblm@myrealbox.com - 12 Jan 2006 18:26 GMT
>Interesting article by Joel Spolsky:  The Perils of JavaSchools
>
>http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

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 ....

FYI, FWIW, etc.

| B. L. Massingill
| ObDisclaimer:  I don't speak for my employers; they return the favor.
Chris Smith - 12 Jan 2006 21:54 GMT
> 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.

Signature

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

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation

Casey Hawthorne - 16 Jan 2006 19:17 GMT
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!

>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.
--
Regards,
Casey


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.