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.
adalger: Earthrise as seen from the moon, captured on camera by the crew of Apollo 16 (Default)

[personal profile] adalger 2009-08-06 12:58 pm (UTC)(link)
I like this. It's something that my learning style works well with. And, when I have time, I'm good at prettying up other people's writing. :)
sofiaviolet: drawing of three violets and three leaves (Default)

[personal profile] sofiaviolet 2009-08-06 01:08 pm (UTC)(link)
I would find that super-valuable.

I need to talk myself into getting a Dreamhack, though. :\
kareila: Seraphim uses her laptop. (laptopangel)

[personal profile] kareila 2009-08-06 01:44 pm (UTC)(link)
I think this is a good idea. If you gather up the elements for a particular topic I can turn them into a tutorial.

I agree with the need for ordering, though. The main problem as I see it with the existing wiki development pages is that they're all just kind of splatted in a pile. It's easy to miss links to useful info.
pixel: Dreamwidth: Home is where the heart is (dw: homeis<3)

[personal profile] pixel 2009-08-06 02:22 pm (UTC)(link)
Coming from an little more experienced dev (not that experienced with OSS) point too, I think some little exercises on the dw codebase would be awesome, just as a little more structured way to poke around and get comfy. Also including as much of the normal workflow including source control would be awesome.

I just ran through getting up and running over on OTW and while the generic 'make a blog on rails' intro exercise is probably great at getting newbie devs' feet wet, I know all that about rails already. I want something that lets me poke in the existing codebase without breaking something.

(For the record I'm a Java dev, have hardly touched Perl or Ruby before but slowly working over into the Ruby/Rails world, so I have a leg up on that side.)
adalger: Earthrise as seen from the moon, captured on camera by the crew of Apollo 16 (Default)

Suggestion: how to patch from the repo

[personal profile] adalger 2009-08-06 02:53 pm (UTC)(link)
I think a good lesson one would be a tutorial on getting your dreamhack patched to the live version from a previous version. (I think this is documented in the wiki, but I felt intimidated by the process, and I'm a computer geek.) A nice option would be to be able to get a temporary D'hack of the last patch.

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. ;)
damned_colonial: A camel. (camel)

[personal profile] damned_colonial 2009-08-06 05:57 pm (UTC)(link)
I, um, used to be a professional perl trainer. Tap me if you like for how to express things. It'll be good for me to learn DW-specific things too.
highlander_ii: House stacking 2 coffee cups ([House] 010)

[personal profile] highlander_ii 2009-08-07 03:16 am (UTC)(link)
I would like this lots... I've had a dreamhack for some unknown length of time but as I know next to nothing about Unix/Linux, much with the lost.