D vs Java as a first programming language

Chris R. Miller lordsauronthegreat at gmail.com
Tue Sep 30 11:04:23 PDT 2008


Sean Kelly wrote:
> Chris R. Miller wrote:
>> Sean Kelly wrote:
>>> == Quote from Chris R. Miller (lordsauronthegreat at gmail.com)'s article
>>
>>>> At a certain point you have to pedagogically ask the student to take
>>>> certain things on faith until you can better explain it all.
>>>
>>> Fair enough.  But the amount each student is willing to take on faith 
>>> varies.
>>
>> It doesn't matter what they're willing to take.  You are the 
>> instructor.    In due time you will make all things known.  For now 
>> they need to just shut up and do what they're told.
> 
> And some will become frustrated and change majors, fail out, etc.

Probably a better thing for them.  If they can't deal with approaching a 
new and foreign concept by gently probing into it, they probably won't 
fare well in the rest of Computer Science as well.

>> Yes, standardized education for nice little standardized children!
> 
> If children were all the same then this wouldn't be a problem, as you're 
> clearly aware :-)

I have several classic quotes (of my own invention!) related to that 
topic, perhaps my favorite of which:

School is like a trash compactor: we stick our kids in and expect to 
have nice little rubbish cubes come out that stack nicely with the rest 
of the stinking trash heap we like to call "modern society."

>>> Some will accept pretty much anything as magic, while others want to 
>>> know
>>> how a function call works mechanically (or in some cases 
>>> conceptually, if
>>> they're math geeks) before they feel comfortable actually calling 
>>> functions.
>>
>> I have seen many different kids from all three ends of this triangular 
>> spectrum do just fine with Java.  I got curious and started 
>> experimenting with it, trying to make my own classes at month 4. 
>> Eventually I figured out how they worked syntactically so I could use 
>> multiple classes in my programs (the files were getting too big for my 
>> tastes, I just wanted to split stuff up).  Later on the explanation of 
>> why and how they worked came and I had this great big "ah hah!" moment 
>> and I was ruined as  a Java pro ever since.  It's been four long years 
>> of deprogramming myself to get off of Java, so I'm doing well.  ;-)
> 
> In my experience, students with a math background often tend to do 
> better with functional languages, since the way they work is a bit 
> closer to the mathematic definition--immutable variables, no global 
> state, pure functions, etc.  My wife is one such person, and between 
> that and her need to know the details behind how things worked before 
> she could apply the concepts she was pretty much the antithesis of the 
> standard approach to teaching CS.  Once she got to the more theoretical 
> or low-level classes like computer architecture, algorithm analysis, 
> compiler design, AI, etc, she had no problem at all.  But those first 
> few programming courses were incredibly frustrating for her.

I think that part of computer science is appreciating the proverbial 
"black-box" of architecture and learning how to use an abstracted system 
that you don't know how the whole thing works.  To a degree you need to 
train yourself to ignore the dead zones in your understanding and to do 
the best with what you have.

She must be really fond of closed-source proprietary APIs that hide 
everything about their implementation, eh?  ;-)



More information about the Digitalmars-d mailing list