On Wednesday, January 16, 2013 4:43:14 PM UTC-8, Russell Keith-Magee wrote:
>
> Hi Daniele,
>
> On Thu, Jan 17, 2013 at 7:07 AM, Daniele Procida 
> <[email protected]<javascript:>
> > wrote:
>
>> I'm re-opening an old discussion - 
>> https://groups.google.com/d/topic/django-developers/MbLD1BL5xkQ/discussion. 
>> Sorry if it all comes out weird, I'm having to do it in Google Groups.
>>
>> I propose maintaining a repository of the Polls tutorial code, with each 
>> branch representing the state of the code at the end of each tutorial.
>>
>> I realise that there is a danger that people might be tempted simply to 
>> checkout the code rather than type it in, following all the useful steps 
>> and mis-steps that the tutorial provides, but at the same time it would 
>> have other significant advantages that it would be a shame to forego just 
>> in order to save people from temptation, especially if they are strongly 
>> warned against it.
>>
>>
> Yes, because the best way to make sure nobody presses a button is to put a 
> sign over it saying "Under no circumstances press this button" :-)
>

What Russell said. 
 

> I can see what you're trying to achieve here, but I'm still not convinced. 
>
>  1) The tutorials aren't that complex; even if you did have to reproduce 
> them from scratch, it doesn't take that long (I've done this quite a few 
> times, so I'm speaking from experience here). 
>

If you copy/paste from an existing code base to get the tutorial working, 
then the tutorial is meaningless. Part of learning Django, Python, or 
whatever is through the experience of finding and fixing your mistakes. 
Making an official repository for the tutorial would be a disservice for 
would-be developers.
 

>
>  2) This is what version control is for. I'd much rather see someone do 
> the tutorial and use version control on their own repository, rather than 
> just pull down the latest version of a repo that contains all the code they 
> need.
>
> Following point 2, it might be worth suggesting that people use version 
> control during the tutorial. I'm not suggesting we turn the Django tutorial 
> into a parallel tutorial on git, but seeding the idea in people's heads has 
> the benefit of reinforcing best practice (you do version control everything 
> you do, right?), and makes it easier to work around the rollback problems 
> you describe; if they don't know what version control is, they might be 
> encouraged to go investigate, and as a result, another code-fairy gets 
> their wings :-)
>

There are already third-party versions of the Django tutorial that also 
instruct on source control and TDD. These are great, and wonderful, but I 
feel they overwhelm beginner Django developers with too much.
 

>
> It will help the documentation writers. It's difficult to build on the 
>> work in the tutorial if it's not easy to get where it was. For example, a 
>> new tutorial could use the Polls application to tackle logging or static 
>> files - which is what I would like to start doing now - but it's quite a 
>> bore to have to go through all the steps in all the previous tutorials just 
>> so you can start writing it.
>>
>
> I'm definitely not convinced by this. Anyone who is in a position to be 
> writing documentation should *definitely* be able to wrap their head around 
> enough version control to handle this sort of thing, or be sufficiently 
> expert to rebuild the tutorial in a couple of minutes.
>

This is a fact.

In August, when we worked on refactor of page 3 of the tutorial Dave and I 
spent about 5 minutes setting up things to match. The real spent was 
gathering feedback from beginners to find their pain points with the 
tutorial.
 

>  
>
>> I think it would be worthwhile having an official repository for this 
>> purpose.
>>
>  
> Thanks for the feedback. I'm still not convinced, but I'm always 
> interested to hear the opinion of others. Eventually, someone (or the 
> weight of public opinion) might convince me to change my mind
>

I'm completely with Russ. Scratch that, I feel much stronger about this 
issue then he does. 

Zed Shaw, with LPTHW, has proven that by forcing people to type stuff out 
they learn better. You don't learn by copy/pasting or checking against a 
working implementation. It's not always fun to learn this way, but learning 
software development is a process of doing.

There are other places the tutorial needs improvement besides an official 
working implementation of the app. Off the top of my head here are a couple 
of items:

1. The new tutorial intros are nice but missing some pieces. I'll document 
this in tickets soon.
2. Page 2 of the tutorial is too long. People start copy/pasting very 
early, and attempts to teach the tutorial as a class always bog down on 
page 2. I would like to make this page shorter and move most of it to new 
intro page.

Daniel Greenfeld

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-developers/-/ER4wJVZTfboJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.

Reply via email to