yvi: Dreamsheep in Germany's national colors (Dreamsheep - Germany)
yvi ([personal profile] yvi) wrote in [site community profile] dw_dev_training2009-08-06 01:31 pm
Entry tags:

Training exercises

So, [personal profile] afuna is enabling me again.

The idea basically is that it's easier to actually do some bugfixes aster a few days of learning basic Linux commands and some Perl exercises, because the big code can be intimidating. But sending people to read a book is also not very welcoming and also not always relevant to the type of code we are dealing with here.

Besides, doing a tutorial where you learn what $u->{userid} does is hopefully more interesting than doing $foo->{bar} exercises.

So, how about instead we have some Dreamwidth-specific tutorials and exercises?

What I am thinking about is an area on the Wiki with a general introduction to how the code is structured (which we already have, it may just need to be elaborated and tied into this new system) and what the basic Linux commands you may need are (cd, cp, grep, find, diff), and after that a few tutorial problems.

These would need to be:

1) ordered in difficulty level
2) relevant to the kind of problem you are likely to come across in the first bugs (searching for where code is, searching for where functions are defined and what they return, getting the value of a variable,...)
3) interesting
4) deal with the different kinds of code (Perl, BML, CSS, S2)
5) not take too long - an hour max for each one, so that you can hopefully do them in one session
6) with an obvious result; ideally many of the exercises would be based on an existing bugfix

Then for the first examples, I'd like have a detailed walk-through, including how to generate the patch in the end and how you'd upload the patch. Also, the page could link existing walk-throughs, which are also very helpful.

Does this sound like a good idea? Does this sound interesting to the new developers here, would you like to have that? [This would definitely not replace help on IRC or through this community] And for anyone who is new or still remembers being new, what areas would help be needed in?

Would anyone be interested in helping me with that? My strength is definitely not with putting things into understandable words, but I think I can come up with small, interesting challenges, example patches and such things.

And lastly, if you think this is a good idea, throw suggestions at me.