reddit.com: first Chapter of TDPL available for free

Daniel Keep daniel.keep.lists at gmail.com
Tue Aug 11 02:04:50 PDT 2009



Jeremie Pelletier wrote:
> Andrei Alexandrescu Wrote:
> 
>> Steven Schveighoffer wrote:
>>> On Mon, 03 Aug 2009 18:00:59 -0400, Andrei Alexandrescu 
>>> <SeeWebsiteForEmail at erdani.org> 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!



More information about the Digitalmars-d mailing list