On Jan 14, 2008 1:34 PM, Tracy R Reed <[EMAIL PROTECTED]> wrote: > This ties in with our study of SICP. I tend to agree with the author. I > don't have a CS degree either but I am educating myself and I am more or > less familiar with the concepts that are mentioned that a lot of CS > grads don't have these days. I have seen several articles like these > lately: > > http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html > > http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html > > I know they specifically point the finger at Java but I don't think they > are really saying Java is the problem. It is the decisions of school > administrators and their fear of losing all of their enrollment because > programming is just too hard that is the problem. It seems like industry > is starting to put some pressure back on the schools to stop the > dumbing-down process and start making real software engineers (and we > all know we use "engineer" in a rather loose sense here since > engineering is science and programming still too much art) again. > > Some of you may be aware that MIT has recently dumped SICP and Scheme > (known as 6.001) as their intro to computer programming. I don't go to > MIT so maybe I shouldn't care but it seems a shame that such a well > received and respected program is being changed when none of the > fundamentals of programming or the concepts being in the class have > changed. > > -- > [email protected] > http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg >
I've read both those blogs about the dumbing down. I do have a CS degree, and learned probably like most CS students circa 1990s. We learned Pascal first, not so much for the language, but for programming concepts in general. Then we moved on to assembly language so we could understand how the hardware worked. Then we tackled C and watched nearly a third of our class drop because they couldn't grasp the concept of pointers. I think this is the crux of the issue, and Java is taking the hit because from what little I know about Java, you can't do pointers like C. Well, if you don't understand pointers, then you can't move on to understand recursive algos, or even create simple linked lists, etc. Java probably has classes for linked lists, etc but then you loose the intimate understanding of how a linked list works. Nothing taught me better than struggling through code step by step to figure out how something works. Java hides too much, plus it's OO only. I can't think of a single OS that's written in OO language. Don't think you could even write an OS without having pointers. I was aware of this situation a couple of years ago while talking to a friend of mine that's a software engineer. When I found out he didn't take C in college, I've asked him why not. He told me that he didn't need to. Most of the world was either VB - which he worked every day - or Visual C. There's no reason to learn C, or assembly these days, but the folks that work on embedded systems might have something to say! -- Mark Schoonover, CMDBA http://www.linkedin.com/in/markschoonover http://marksitblog.blogspot.com [EMAIL PROTECTED] -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg
