yvi (
yvi) wrote in
dw_dev_training2009-08-06 01:31 pm
Entry tags:
Training exercises
So,
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.
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.

Suggestion: how to patch from the repo
This would open all sorts of training opportunities, and also many cans of worms. The downside is all for our poor D'hack maintainer, but is significant workload; the upside is that trainees would be able to get a hack and then actually follow along with the steps of implementing a patch that's already been implemented in the live codebase. This is powerful learning mojo.
Alternately, it may already be possible using the repo to sync with a previous version, as opposed to the tip. I seem to recall seeing this option somewhere. If so, that would be a good starting point in the lessons, and would allow all the same training opportunities without overloading Madame Hackmeister. ;)
Re: Suggestion: how to patch from the repo
That certainly sounds like a good idea! I may well go about doing something like that. :D