|
List Info
Thread: Interesting article on CS courses and Java
|
|
| Interesting article on CS courses and
Java |

|
2006-11-12 17:41:24 |
|
| http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
|
| Interesting article on CS courses and
Java |

|
2006-11-12 18:53:11 |
On Sunday 12 November 2006 09:41, Vijay Balakrishnan wrote:
" http://www.joelonsoftware.com/articles/ThePeri
lsofJavaSchools.html
Interesting. Written in 2005. I wonder if he still feels
that way.
Probably.
He asks too much of Java. Java is an applications language,
not a systems
language. Always has been. For the very reasons he
"pointed" out. He
should thank Sun next time he's deep in the stack unraveling
the pointer that
went one byte too far.
While I sympathize with Spolsky's difficulty in finding good
candidates,
blaming the schools is diningenuous. He could ask better
questions, for
instance. He's a bright guy. I'm sure he's seen at least
one example of
some flawed code he could ask interviewees to debug.
It is the nature of technology -- and CS in particular -- to
make more power
available to more people for less effort. That for me is
the beauty of
technology. Java exemplifies this. Here is a tool that
many can use, and
that remains reasonably effective even in the hands of
tyros.
Instead of railing that schools are teaching what *he* wants
taught, Spolsk
should catch up, relax and thank the march of technology
that he doesn't have
to worry about the deeply-embedded structure and relations
of his car's
engine, or the bridges he crosses daily to get to work
himself. Then he
should figure out how to teach his new hires the additional
things that
important for them in their new job.
--
Richard Johnson
_______________________________________________
Web Site - http://www.pjug.org/
Javamail mailing list
Javamail pjug.org
http://www.pjug.org/mailman/listinfo/javamail_pjug.org
|
|
| Interesting article on CS courses and
Java |

|
2006-11-13 08:33:53 |
|
I think the author goes too far to make his point. But I don't think
the author doesn't have some valid points to make.
I agree with this statement that he makes:
Pointers and recursion require a certain ability to reason,
to think in
abstractions, and, most importantly, to view a problem at several
levels of abstraction simultaneously. And thus, the ability to
understand pointers and recursion is directly correlated with the
ability to be a great programmer.
I don't, however, agree that it can't be gained another way --
including via Java. But I think his point is that when using C, it was
easier for an employer to test candidates.
More comments below...
Richard wrote:
ytivarg.com" type="cite">
On Sunday 12 November 2006 09:41, Vijay Balakrishnan wrote:
MailScanner has detected a possible fraud attempt from "www.joelonsoftware.com" claiming to be " http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
Interesting. Written in 2005. I wonder if he still feels that way.
Probably.
He asks too much of Java. Java is an applications language, not a systems
language. Always has been. For the very reasons he "pointed" out. He
should thank Sun next time he's deep in the stack unraveling the pointer that
went one byte too far.
Although I think his point is that a "CS" major should have the skills
and the conceptual understanding to think abstractly the way pointers
require. I don't think he's asking Java to add pointers or be a
Systems language -- just that Universities produce students with these
concepts. I think this can be accomplished w/ Java as well and that
virtually everything you did w/ pointers can be accomplished in another
way w/ Java. The exception being the "hacks" that did some interesting
things (char * video = 0xA000000;)... but these "hacks" don't teach the
concepts that he's looking for anyway.
ytivarg.com" type="cite">
While I sympathize with Spolsky's difficulty in finding good candidates,
blaming the schools is diningenuous. He could ask better questions, for
instance. He's a bright guy. I'm sure he's seen at least one example of
some flawed code he could ask interviewees to debug.
Yes and no... if the good students aren't being produced, surely the
school is partly to blame. I don't know that this is or isn't true.
But I agree w/ you, he does need to interview by asking a better
questions. Does anyone have a good question / problem you can throw an
interviewee to test their ability to think abstractly? I know lots of
people suggest "interface" questions, but that only scratches the
surface. Concurrency is one thing, but doesn't address the types of
issues that recursion and pointers do... which are still VERY valid
concepts to understand in CS and Java specifically (BTW... they *must*
still teach recursion I hope!!).
ytivarg.com" type="cite">
It is the nature of technology -- and CS in particular -- to make more power
available to more people for less effort. That for me is the beauty of
technology. Java exemplifies this. Here is a tool that many can use, and
that remains reasonably effective even in the hands of tyros.
This is true, but while this simplification moves us forward... it does
nothing to ensure the quality of *people* that grow up on this
technology know what they're doing. ;)
It has crossed my mind many times how lucky I was to grow up *before*
all the visual editors and code libraries available for developers. In
the "good old days" you had to build everything from scratch... which
meant you had to know everything (i.e. how the car was built). It
forced me to focus on the "CS" part of Computer Science, not the
drag-and-drop part. ;) I am a better developer b/c I went through
this. I think it's *more* of a challenge today for Universities to
replace this type of experience with an equivalent.
ytivarg.com" type="cite">
Instead of railing that schools are teaching what *he* wants taught, Spolsk
should catch up, relax and thank the march of technology that he doesn't have
to worry about the deeply-embedded structure and relations of his car's
engine, or the bridges he crosses daily to get to work himself.
But someone has to design these systems, and *if* the type of thinking
that used to be taught is not adequately replaced, then the pool of
people with the higher level thinking skills is smaller. Hopefully the
auto manufactures and CAE software companies find these people!
Perhaps they'll choose Math majors instead of CS majors and teach them
to use Java. ;)
Ken
ytivarg.com" type="cite">
Then he
should figure out how to teach his new hires the additional things that
important for them in their new job.
|
| Interesting article on CS courses and
Java |

|
2006-11-13 14:03:29 |
|
|
What
scares me is that when I was in uni (graduated 2004, I took the long
"professional student" route...), people thought having to deal with memory was
beyond them and more then once I was told by my fellow students "Why should I
have to do this? A real language would do it for me." and it only grew from
that. I recall one instance in a class where we where in three person teams
working on an assigned problem & required implementing the problem on an old
12 processor Sequent (circa 1982 unix based system, if my memory
is correct) machine in C. The three of us stayed up for 2 weeks until the
wee hours of the morning working on the design and implementing it.
One person in the group was completely worthless, they couldn't get their head
around all the uses of pointers and why we had to do things like
malloc/free for memory allocation. And this person wasn't dumb by any
means, it just wasn't something they had ever had to really understand, or
grasp, and to me they never seemed to get it either.
A
friend of mine in the summer of 2003 did a research internship at TAMU on
something called STAPL and before she left from that summer I had a talk with
her about what she might encounter outside of our little
"sheltered" university. When she got back, the first thing she said to me
was how different it was. To me, I've felt that more and more that CS programs
are becoming seriously sugar coated, by that I mean to easy and requiring to
little. When people that where "stars" of our little school refused to do
something in C/C++ because they didn't understand, or even make an attempt to
understand, the basic principals of how languages work it scares me. When people
pursuing a CS undergrad degree don't care enough to try to grasp how
things like memory allocation work, pointers, basic fundamentals of
concurrency & parallel/distributed computing, how to design & implement
basic & advanced ADT's (don't get me started on this one...),
recursion, the fundamentals of language designs & considerations, how to
design & dissect algorithms in general, and many many more things, it
bothers me.
My
biggest fear is that over time the people who have the knowledge to write things
like a kernel will be beyond rare. That the people who are needed to maintain
something like the JVM and all of its pieces are going to be hard to find, if at
all. The more we abstract things out and make it easier for those who walk this
path after us, it seems the less they want to know about the core concepts they
are hedging on for their future. Being probably a younger member of this list
(28 years old) with substantially less years of experience then most on
this list, it scares me when I look at the younger generation that are coming up
now who have no drive, or want, to learn how things where built and what makes
them tick. And perhaps when I first seriously started developing toy
programs ('93), people said the same thing about me writing programs using C
& asm tweaking with things like graphics cards (Gotta love VESA standards!
And thanks for the memory there Ken ;o) & learning from others knowledge to
do things like how to read a mouse over IRQ's or how
segmented memory banks worked on video cards so I could do graphics at
higher resolutions.
But
this is just my 2 cents.
Jeff
I think the author goes too
far to make his point. But I don't think the author doesn't have some
valid points to make.
I agree with this statement that he makes:
Pointers and recursion require a certain ability to reason, to
think in abstractions, and, most importantly, to view a problem at several
levels of abstraction simultaneously. And thus, the ability to understand
pointers and recursion is directly correlated with the ability to be a great
programmer.
I don't, however, agree that it can't be gained
another way -- including via Java. But I think his point is that when
using C, it was easier for an employer to test candidates.
More
comments below...
Richard wrote:
ytivarg.com type="cite">On Sunday 12 November 2006 09:41, Vijay Balakrishnan wrote:
MailScanner has detected a possible fraud attempt from "www.joelonsoftware.com" claiming to be " http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
Interesting. Written in 2005. I wonder if he still feels that way.
Probably.
He asks too much of Java. Java is an applications language, not a systems
language. Always has been. For the very reasons he "pointed" out. He
should thank Sun next time he's deep in the stack unraveling the pointer that
went one byte too far.
Although I think his point is that a "CS" major should
have the skills and the conceptual understanding to think abstractly the way
pointers require. I don't think he's asking Java to add pointers or be a
Systems language -- just that Universities produce students with these
concepts. I think this can be accomplished w/ Java as well and that
virtually everything you did w/ pointers can be accomplished in another way w/
Java. The exception being the "hacks" that did some interesting things
(char * video = 0xA000000;)... but these "hacks" don't teach the concepts that
he's looking for anyway.
ytivarg.com type="cite">While I sympathize with Spolsky's difficulty in finding good candidates,
blaming the schools is diningenuous. He could ask better questions, for
instance. He's a bright guy. I'm sure he's seen at least one example of
some flawed code he could ask interviewees to debug.
Yes and no... if the good students aren't being produced,
surely the school is partly to blame. I don't know that this is or isn't
true. But I agree w/ you, he does need to interview by asking a better
questions. Does anyone have a good question / problem you can throw an
interviewee to test their ability to think abstractly? I know lots of
people suggest "interface" questions, but that only scratches the
surface. Concurrency is one thing, but doesn't address the types of
issues that recursion and pointers do... which are still VERY valid concepts
to understand in CS and Java specifically (BTW... they *must* still teach
recursion I hope!!).
ytivarg.com type="cite">It is the nature of technology -- and CS in particular -- to make more power
available to more people for less effort. That for me is the beauty of
technology. Java exemplifies this. Here is a tool that many can use, and
that remains reasonably effective even in the hands of tyros.
This is true, but while this simplification moves us
forward... it does nothing to ensure the quality of *people* that grow up on
this technology know what they're doing. ;)
It has crossed my mind many
times how lucky I was to grow up *before* all the visual editors and code
libraries available for developers. In the "good old days" you had to
build everything from scratch... which meant you had to know everything (i.e.
how the car was built). It forced me to focus on the "CS" part of
Computer Science, not the drag-and-drop part. ;) I am a better
developer b/c I went through this. I think it's *more* of a challenge
today for Universities to replace this type of experience with an
equivalent.
ytivarg.com type="cite">Instead of railing that schools are teaching what *he* wants taught, Spolsk
should catch up, relax and thank the march of technology that he doesn't have
to worry about the deeply-embedded structure and relations of his car's
engine, or the bridges he crosses daily to get to work himself. But
someone has to design these systems, and *if* the type of thinking that used
to be taught is not adequately replaced, then the pool of people with the
higher level thinking skills is smaller. Hopefully the auto manufactures
and CAE software companies find these people! Perhaps they'll choose
Math majors instead of CS majors and teach them to use Java. ;)
Ken
ytivarg.com type="cite">Then he
should figure out how to teach his new hires the additional things that
important for them in their new job.
|
| Interesting article on CS courses and
Java |

|
2006-11-13 14:32:11 |
Jeffrey Olson wrote:
" One person in the group was completely worthless,
they couldn't
" get their head around all the uses of pointers and
why we had to
" do things like malloc/free for memory allocation. And
this person
" wasn't dumb by any means, it just wasn't something
they had
" ever had to really understand, or grasp, and to me
they never
" seemed to get it either.
That seems important.
How do you fingure out if a person is "getting
it", "not getting it (yet)",
or "not capable of getting it"? Is a CS degree
about developing software,
about computing machinery, or about thinking? Many
engineers have
successfully moved from hardwre to software. You can't even
do a science
career without an ability to write (and understand) cogent
programs.
If we're graduating people who don't or can't think, that's
a serious problem.
If we're graduating people who can think, but don't that's a
worse problem.
If we're graduating poeple who can't think like real
software engineers, we
should find a useful place for them. If we're graduating
people who don't
think like software engineers but want to, let's train them.
Ultimately we're all in this together.
--
Richard Johnson
Sometimes I get it, sometimes I don't.
_______________________________________________
Web Site - http://www.pjug.org/
Javamail mailing list
Javamail pjug.org
http://www.pjug.org/mailman/listinfo/javamail_pjug.org
|
|
| Interesting article on CS courses and
Java |

|
2006-11-14 04:58:32 |
|
PSU's program teaches CS in a way the author would like. When I was done with the undergrad requirements, I am able to write applications using pointers and recursion and have used those skills to analyze system-level code. I just received my masters early this year with a
3.77 GPA and a good understanding of Java, C, and C++. And you know what? That degree, the knowledge I gained, my 18 years of experience in software engineering, and a buck will buy you a cup of coffee.
The thing that is going to make it hard for the author to find the kind of people he's looking for is a lack of opportunity. I've been looking for work for the last 6 months and have found absolutely zilch. Most jobs require years of experience in specific technologies and there are no jobs which give you the opportunity to learn. I am currently trying to learn J2EE via an on-line class and get experience by working on open-source projects. Maybe someday that will enable me to actually work again. I'm fortunate that I have resources so that I can devote most of my time to doing
that.without worrying about feeding myself and putting a roof over my head. I really feel sorry for these bright kids just coming out of college expecting to make a living in software. Once it becomes commmon knowledge how difficult building in software development is, fewer and fewer people are going to want to spend their time and money learning the most basic software skills, never mind the skills that Spolsky thinks are so important. The signs of this happening are already apparent. PSU's CS enrollment is way down this year.
On 11/13/06, Richard < richard ytivarg.com">richard ytivarg.com> wrote:
Jeffrey Olson wrote: " One person in the group was completely worthless, they couldn't " get their head around all the uses of pointers and why we had to
" do things like malloc/free for memory allocation. And this person " wasn't dumb by any means, it just wasn't something they had " ever had to really understand, or grasp, and to me they never
" seemed to get it either.
That seems important.
How do you fingure out if a person is "getting it", "not getting it (yet)", or "not capable of getting it"? Is a CS degree about developing software,
about computing machinery, or about thinking? Many engineers have successfully moved from hardwre to software. You can't even do a science career without an ability to write (and understand) cogent programs.
If we're graduating people who don't or can't think, that's a serious problem. If we're graduating people who can think, but don't that's a worse problem. If we're graduating poeple who can't think like real software engineers, we
should find a useful place for them. If we're graduating people who don't think like software engineers but want to, let's train them.
Ultimately we're all in this together. -- Richard Johnson Sometimes I get it, sometimes I don't.
_______________________________________________ Web Site - http://www.pjug.org/ Javamail mailing list Javamail pjug.org">Javamail pjug.org
http://www.pjug.org/mailman/listinfo/javamail_pjug.org
|
| Interesting article on CS courses and
Java |

|
2006-11-14 07:07:46 |
Interesting discussion. I'll chime in to add my 2-cents.
I've been reading Joel on Software since around 2001. One
thing to
realize is he mostly only blogs when there is something in
it for him.
For example, in the article mentioned he was promoting his
Summer
2006 internship. Recently he has been promoting his new job
board
(jobs.joelonsoftware.com). The more controversial his post
the
better. It means more people will stand up and notice what
he says.
All that said, he is still a delightful read. I find he has
some
great thought provoking and discussion inducing statements.
Especially when you start to dig into the archives.
On a tangential note I disagree with some of the PJUG
member's statements...
[Jeff Olson] The more we abstract things out and make it
easier for
those who walk this path after us, it seems the less they
want to know
about the core concepts they are hedging on for their
future.
As Sir Issac Netwon said, "If I have seen further [than
certain other
men] it is by standing upon the shoulders of giants."
I certainly hope the path is easier for those who walk the
path after
me. I can only hope that I don't leave a mess and may one
day be
considered a giant. I would hate to have to reinvent the
wheel or for
that mater the alphabet just to be able to do my job.
[Michael Phoenix] Most jobs require years of experience in
specific
technologies and there are no jobs which give you the
opportunity to
learn.
I agree with the "most jobs" but your statement of
"no jobs" is wrong.
Out of 483 java jobs in the Portland area
(http://www.indeed.com/jobs?q=java&l=portla
nd%2C+or&radius=) there are
25 listed as entry jobs
(http://www.indeed.com/jobs?q=java+entry&
amp;l=portland%2C+or&radius=).
That search is for Java specific and doesn't include .net
jobs also in
Portland.
That said, the best way to get a job is still to use your
network of
former classmates, former co-worker, individuals
contributing to the
same open source projects you have been working on and PJUG.
Jonathan
_______________________________________________
Web Site - http://www.pjug.org/
Javamail mailing list
Javamail pjug.org
http://www.pjug.org/mailman/listinfo/javamail_pjug.org
|
|
| Interesting article on CS courses and
Java |

|
2006-11-14 07:43:55 |
|
Jonathan,
Thanks for the feedback. I have tried some of the things you suggested, without much luck. Just about all the jobs listed on most boards such as monster and oregonlive are of the "5 years in J2EE, 3 years of XML, and at least 1-2 years in a number of other technologies" sort. I will check out the site you mentioned and as I start proving my skills on the open source projects will start trying to get some assistance there.
Mike
On 11/13/06, Jonathan Hager < jhager gmail.com">jhager gmail.com> wrote:
Interesting discussion. I'll chime in to add my 2-cents.
I've been reading Joel on Software since around 2001. One thing to
realize is he mostly only blogs when there is something in it for him. For example, in the article mentioned he was promoting his Summer 2006 internship. Recently he has been promoting his new job board (
jobs.joelonsoftware.com). The more controversial his post the better. It means more people will stand up and notice what he says.
All that said, he is still a delightful read. I find he has some great thought provoking and discussion inducing statements.
Especially when you start to dig into the archives.
On a tangential note I disagree with some of the PJUG member's statements...
[Jeff Olson] The more we abstract things out and make it easier for those who walk this path after us, it seems the less they want to know
about the core concepts they are hedging on for their future.
As Sir Issac Netwon said, "If I have seen further [than certain other men] it is by standing upon the shoulders of giants."
I certainly hope the path is easier for those who walk the path after
me. I can only hope that I don't leave a mess and may one day be considered a giant. I would hate to have to reinvent the wheel or for that mater the alphabet just to be able to do my job.
[Michael Phoenix] Most jobs require years of experience in specific
technologies and there are no jobs which give you the opportunity to learn.
I agree with the "most jobs" but your statement of "no jobs" is wrong. Out of 483 java jobs in the Portland area
(http://www.indeed.com/jobs?q=java&l=portland%2C+or&radius=) there are 25 listed as entry jobs (
http://www.indeed.com/jobs?q=java+entry&l=portland%2C+or&radius=). That search is for Java specific and doesn't include .net jobs also in Portland.
That said, the best way to get a job is still to use your network of
former classmates, former co-worker, individuals contributing to the same open source projects you have been working on and PJUG.
Jonathan
_______________________________________________ Web Site -
http://www.pjug.org/ Javamail mailing list Javamail pjug.org">Javamail pjug.org http://www.pjug.org/mailman/listinfo/javamail_pjug.org
|
| Interesting article on CS courses and
Java |

|
2006-11-14 04:58:32 |
|
PSU's program teaches CS in a way the author would like. When I was done with the undergrad requirements, I am able to write applications using pointers and recursion and have used those skills to analyze system-level code. I just received my masters early this year with a
3.77 GPA and a good understanding of Java, C, and C++. And you know what? That degree, the knowledge I gained, my 18 years of experience in software engineering, and a buck will buy you a cup of coffee.
The thing that is going to make it hard for the author to find the kind of people he's looking for is a lack of opportunity. I've been looking for work for the last 6 months and have found absolutely zilch. Most jobs require years of experience in specific technologies and there are no jobs which give you the opportunity to learn. I am currently trying to learn J2EE via an on-line class and get experience by working on open-source projects. Maybe someday that will enable me to actually work again. I'm fortunate that I have resources so that I can devote most of my time to doing
that.without worrying about feeding myself and putting a roof over my head. I really feel sorry for these bright kids just coming out of college expecting to make a living in software. Once it becomes commmon knowledge how difficult building in software development is, fewer and fewer people are going to want to spend their time and money learning the most basic software skills, never mind the skills that Spolsky thinks are so important. The signs of this happening are already apparent. PSU's CS enrollment is way down this year.
On 11/13/06, Richard < richard ytivarg.com">richard ytivarg.com> wrote:
Jeffrey Olson wrote: " One person in the group was completely worthless, they couldn't " get their head around all the uses of pointers and why we had to
" do things like malloc/free for memory allocation. And this person " wasn't dumb by any means, it just wasn't something they had " ever had to really understand, or grasp, and to me they never
" seemed to get it either.
That seems important.
How do you fingure out if a person is "getting it", "not getting it (yet)", or "not capable of getting it"? Is a CS degree about developing software,
about computing machinery, or about thinking? Many engineers have successfully moved from hardwre to software. You can't even do a science career without an ability to write (and understand) cogent programs.
If we're graduating people who don't or can't think, that's a serious problem. If we're graduating people who can think, but don't that's a worse problem. If we're graduating poeple who can't think like real software engineers, we
should find a useful place for them. If we're graduating people who don't think like software engineers but want to, let's train them.
Ultimately we're all in this together. -- Richard Johnson Sometimes I get it, sometimes I don't.
_______________________________________________ Web Site - http://www.pjug.org/ Javamail mailing list Javamail pjug.org">Javamail pjug.org
http://www.pjug.org/mailman/listinfo/javamail_pjug.org
|
| Interesting article on CS courses and
Java |

|
2006-11-14 07:07:46 |
Interesting discussion. I'll chime in to add my 2-cents.
I've been reading Joel on Software since around 2001. One
thing to
realize is he mostly only blogs when there is something in
it for him.
For example, in the article mentioned he was promoting his
Summer
2006 internship. Recently he has been promoting his new job
board
(jobs.joelonsoftware.com). The more controversial his post
the
better. It means more people will stand up and notice what
he says.
All that said, he is still a delightful read. I find he has
some
great thought provoking and discussion inducing statements.
Especially when you start to dig into the archives.
On a tangential note I disagree with some of the PJUG
member's statements...
[Jeff Olson] The more we abstract things out and make it
easier for
those who walk this path after us, it seems the less they
want to know
about the core concepts they are hedging on for their
future.
As Sir Issac Netwon said, "If I have seen further [than
certain other
men] it is by standing upon the shoulders of giants."
I certainly hope the path is easier for those who walk the
path after
me. I can only hope that I don't leave a mess and may one
day be
considered a giant. I would hate to have to reinvent the
wheel or for
that mater the alphabet just to be able to do my job.
[Michael Phoenix] Most jobs require years of experience in
specific
technologies and there are no jobs which give you the
opportunity to
learn.
I agree with the "most jobs" but your statement of
"no jobs" is wrong.
Out of 483 java jobs in the Portland area
(http://www.indeed.com/jobs?q=java&l=portla
nd%2C+or&radius=) there are
25 listed as entry jobs
(http://www.indeed.com/jobs?q=java+entry&
amp;l=portland%2C+or&radius=).
That search is for Java specific and doesn't include .net
jobs also in
Portland.
That said, the best way to get a job is still to use your
network of
former classmates, former co-worker, individuals
contributing to the
same open source projects you have been working on and PJUG.
Jonathan
_______________________________________________
Web Site - http://www.pjug.org/
Javamail mailing list
Javamail pjug.org
http://www.pjug.org/mailman/listinfo/javamail_pjug.org
|
|
|
|