On Mon, 2009-09-07 at 18:12 +0900, Raymond Wan wrote: > Hi Gabor, > > > Gabor Szabo wrote: > > As I think think the best way to learn Perl is tor practice a lot > > and the best place to practice is an open source project I wonder > > how can open source project become more beginner friendly? > > > Follow-up to Philip's message...but I didn't reply to his post since I > wanted to highlight your comment here. > > The best place to learn Perl [or "anything" for that matter] is to > practice a lot. Agreed. "Best place to practice is an open source > project" -- oh...I'm not so sure that is true. Let's remove the phrase > "open source"...even so, I'm not so sure that a project [which > presumably has more than one person working on it] is the best way to > learn Perl as you end up with the issues that Philip mentioned...issues > with software engineering which will end up distracting people. > I'd agree with this. Contributing to a project is well above a beginners level, unless you're already an accomplished programmer and looking to pick up Perl as a new skill (in which case your life as a 'Perl beginner' is probably going to be reasonably short). Working on someone else's code is *difficult* when your a newbie. One of the 'skills' of a newbie is to deliberately write simplistic code with the idea of building up one piece at a time. That's the sort of code you *don't* want to put out in public. For example, if your first introduction to anonymous hash references is someone else's uber smart nested data structure, you're probably going to be hosed. Add the complications involved with project management issues (svn..., code review practices, code standards...) and imho there's just too much to learn for someone below intermediate coding skills (whatever intermediate might mean). For my part I wouldn't think of joining a project until I was comfortable with CPAN, creating modules, debugging and probably a few other skills. Once there however, definitely an open source project is a bloody good way to go. I'm not sure if joining an existing project (with all the complexities involved) is better or worse than scratching a little itch of your own in public for a first effort though. I guess that's probably very much an individual thing. Maybe projects that have 'plugin' type architectures are easier for intermediate coders to get started on (though that doesn't rule out complex multiple levels of abstractions which can do in a newbies head). Maybe a more visible tutorial to 'scratching your first public itch with Perl' type doc (and it might already be there; I've not looked). > I think some (of course, not all) universities would teach a language or > programming first by getting students to work alone. And then a year or > two later, put them into groups and then that's when the teachers go > nuts. :-) I wonder if it's not time well spent to have students doing git/svn/whatever right from the start (regardless of language)? Just to get students used to the idea at a very simple level. After all, open source or not, code repos are something everyone has to get used to at some point. > > There are a lot of beginner books (not just Perl) out there which > sometimes have "Practice problems" at the end of the chapter. I'm sure > you could start with those if you want newbies to start with > something... Of course, a more Perl-oriented book would be ideal. > > Ray I find I tend to skip over (or more likely quickly skim) the exercises at the end of chapters. Yes, I know they are great at reinforcing the material covered, but I get sidetracked by scratching my own itch. Those bits I need I tend to write my own 'exercises' till I understand the feature in question. Still, I suppose they do help some people. Again, each to their own. I'm wondering if your really targeting newbies, or rather intermediates that are 'newbies to a project'? I don't think they're the same. Regards, Tim BowdenThread Previous | Thread Next