D Learning Resources
Morgan McDermott
morganmcdermott at gmail.com
Wed Nov 29 14:17:38 PST 2006
Repost from DSource <http://www.dsource.org/forums/viewtopic.php?p=12007>
As a newbie to this great language, one of my biggest challenges in
learning D is finding learning resources. I've gotten to the point now
where I generally use digitalmars.com/d/ as a starting point for any
questions, and the NewsGroup has been a great help, but starting out
with D seems much harder than it is with other languages due to the
scarcity of tutorials (alongside the absence of books ^_~).
Without a C-like programming background, I'm sure that learning D would
have been even harder, as most of the ''basics'' are described in terms
of how they are implemented in D, obviously targeting a more experienced
crowd. Besides the absence of learning-materials themselves, the other
challenge that comes up is having a good starting point for finding
other resources. Things are too spread out - it would be very hard for
someone new to programming to quickly develop a good understanding of D
from just one D-website. Here at DSource there is a large (in comparison
with other sites) number of tutorials, but few feel very complete, and
the target audience seems to change from tutorial to tutorial.
I would like to suggest that a project be undertaken by D-programmers to
create a centralized tutorial and example resource. A good way to
segment this out might be:
#####-----------------------------------------------#######
Basics: (covers basic types, operators, flow control, functions, arrays etc)
-Basic D for the programming novice
-From (your programming language here) to D.
Intermediate: (Mix of intermediate general-programming and D-specific
topics)
-Intermediate Programming from a D perspective
-What's different in D and why (modules, scope etc)
-Good-Coding practices
Intermediate How-To for common tasks
-Database Interaction
-Compile a D Project
-Filesystem interaction
Advanced: (Smaller section, geared towards harnessing the "true" power of D)
-Advanced D Features
-Tips & Tricks
-Security
Links: (Other D-Programming References)
-NewsGroup
-Digitalmars
#####-----------------------------------------------#######
What's best about this project is that not only writers could contribute
- that is, there are enough D-tutorials out there written by authors who
would probably let you Borg-assimilate their tutorials into this
reference that we already have a pretty good starting point.
I think that the best tutorials would function as a series up to a point
- that is, readers are led through learning D in a coherent series of
steps. Learning Intermediate Programming tutorials should expect
knowledge covered in Basics, and the How-To section of tutorials should
expect only the knowledge covered in the Learning Intermediate
Programming tutorials.
With this in mind, I don't suggest working from the "Basics" upwards
towards "Advanced" linearly; there are many people who would only like
to write about certain aspects of D. However, letting people run around
and write tutorials with no knowledge of the tutorials that lead up to
theirs would result in a resource that lacks good cohesion, flow, and
certainly would suffer from the absence of a tangible learning-path.
A solution to this would be to simply create an outline of what you want
readers to know at which point. For instance, you might decide that once
a reader reaches the "Intermediate Tutorials", you want them to know x,
y, and z. Once a tutorial-writer figures out where his tutorial fits
into the grand scheme, he would then be able to know exactly what the
reader should already know, and target that audience specifically.
As a plan of action, I propose two distinct steps:
1) Have the D community produce an outline (like my ad-hoc one above),
sectioned into distinct 'steps' of learning. Broad how-to areas might
want to be separated into the knowledge required to use that how-to
properly.
2) Get tutorials and articles flowing! Gather up willing writers from
the D-community and start making the tutorials needed. Assimilate the
spread out D-tutorials on the web (only for those authors who permit it,
of course). This step is an ongoing process - as people write tutorials,
they can add them into the structure where they fit, and eventually a
fully fleshed-out, coherent, and easy to use D learning resource will
result.
More information about the Digitalmars-d
mailing list