Welcome to the D language! We hope you'll have a lot of fun working on the language. This document is a summary of the things you, as a starting collaborator, need to absorb in order to start contributing. It is primarily intended for starting collaborators of The D Language Foundation, but any occasional collaborator may find it useful as well.
Getting the Toolchain
You first need to install the usual suspects: the dmd compiler, the core runtime library, the standard library, the website source, and the additional tools. To do so, please visit this page and follow the instructions therein. Make sure you have all the appropriate tools installed before you continue.
In order to get up to speed with the D language, you may want to use the following resources:
- Start with The DLang Tour to get a quick overview. (This is recent work that would be greatly helper by your feedback as a learning D beginner.)
- Ali Çehreli's book "Programming in D", available in a variety of formats and at a variety of prices starting at zero. It's a terrific and detailed resource not only on the D language proper, but also on learning programming at large.
- Andrei Alexandrescu's book "The D Programming Language" is written for intermediate programmers who want to learn D and understand the motivation behind some of its differentiating features.
- Got n00b questions? The D Learn Forum is a vibrant, active forum with excellent signal to noise ratio. Ask your question there and you're likely to get good answers in minutes.
- Can't wait minutes? Try seconds by joining the #d channel on http://freenode.net. This link should start your IRC client if you have one installed; if not, search for one. You'll find many knowledgeable D contributors and users in that channel.
- To discuss ideas, strategy, plans, deeper thoughts about the language, and much more, try the General D Forum. It's an active group with generally good content; the leadership is monitoring it and frequently participates. The interesting content makes the forum quite addictive and liable to the occasional heated debate on a variety of matters. Tread carefully and be nice to others.
In programming circles, Bootcamp is a Facebook-initiated tradition of an intensive onboarding process (you can learn more about Facebook's bootcamp by searching the net, e.g. refer to this video). We at the D Language Foundation took inspiration from that concept.
Our Bootcamp lasts for one month, during which you're expected to carry the following tasks:
- Install the toolchain, per the instructions above
- Acquire fluency with the language, using the resources above
- Fix a few "bootcamp" bugs. This is the most important activity during bootcamp. Go to our bugzilla repository and create an account there. Familiarize yourself with the search feature. Then search for bugs with the "bootcamp" keyword. Here's a canned link with that search. The "bootcamp" bugs are manually earmarked by senior contributors as bugs that are fit for a beginner to tackle. The ideal bootcamp bug is easy but not too easy, has good impact, can be fixed in 1-3 days by a motivated beginner, and offers a good learning experience.
- You may get assigned an issue to work on by your mentor or manager. These should get priority. If you aren't yet assigned one, feel free to look around bugzilla for things you'd enjoy working on.
A Word on Conduct
We don't have a written Code of Conduct at the D Language Foundation because we believe people who would really respect it are those who don't need it written. Use common sense and behave professionally, as you would do in any civilized workplace. Don't forget we are a distributed organization and we do much of our communication by email, forum posts, and instant messages. This is somewhat challenging because these forms of communication are limited, and as is well-known people tend to be a tad more abrupt and confrontational in email communication than they'd be in face-to-face interaction. So in written communication, don't forget - being too nice is almost enough.