Jeremie Pelletier wrote:
> Andrei Alexandrescu Wrote:
> 
>> Steven Schveighoffer wrote:
>>> On Mon, 03 Aug 2009 18:00:59 -0400, Andrei Alexandrescu 
>>> <[email protected]> wrote:
>>>
>>>> http://www.reddit.com/r/programming/comments/975ng/diving_into_the_d_programming_language_tdpl/
>>>>  
>>>>
>>>>
>>>> (Don't tell anyone, but I plan to rewrite it.)
>>>>
>>>> Andrei
>>> Wow, my head's spinning :)
>>>
>>> That's a lot of data/concepts in one chapter.  Have you considered how 
>>> this chapter will be for a newbie programmer?
>> Like K&R, TDPL is intended for people who already know how to program in 
>> another language. Knowledge of a specific language is not recommended or 
>> required. The preface will make that clear.
>>
>> Some reviewers are still concerned that I discuss topics a bit too 
>> advanced in the first chapter. I was suggested to adapt The Case for D 
>> instead of this first chapter.
>>
>>> *disclaimer: I'm not an expert on teaching or writing books.
>> Well you are an expert on reading books and that's what matters here.
>>
>>
>> Andrei
> 
> I agree that your preview, while being really insightful into D, is gonna 
> make the head of beginners explode. For example, you dive rather headfirst 
> into variables, using immutable and auto before even talking about variable 
> types.
> 
> I for one believe the market for such a book is mostly beginner to 
> intermediate programmers. I only needed the language reference on the 
> digitalmars website to learn about the syntax and semantics of D, and reading 
> the code in the runtime and phobos gave more than enough examples to get 
> comfortable using the language.

I think it's a hard problem: how do you write a book that's accessible
to beginners without alienating experienced programmers?

I'm personally of the mindset that beginners should most definitely not
be attempting to learn D as their first language.  Languages like D, C,
C++ are horribly unsuitable because they force you to understand how the
machine works before you can learn to program; except that they force
you to learn to program in order to understand how the machine works.

I've seen too many *university students* (and we're talking second and
third year students) struggling with both because they don't quite
understand how the machine works and don't quite understand how C works;
the two work together to sabotage their understanding.

I think something like Python or even, yes, BASIC is more appropriate
because it reduces the size of the problem down to "how do I correctly
sequence the actions I want the computer to perform, and how do I
express those actions?"

I personally don't think TDPL should worry too much about absolute
beginners; they'll be better served by a different type of book for a
different type of language.

That, and they'll take one look at templates and run screaming.  I still
have trouble explaining the difference between compile-time arguments
and run-time arguments to experienced programmers, let alone novices!

Reply via email to