cesy: "Cesy" - An old-fashioned quill and ink (Cesy)Cesy ([personal profile] cesy) wrote in [site community profile] dw_dev_training,
@ 2009-08-06 08:34 am UTC
  • Previous Entry
  • Add to Memories
  • Tell someone about this!
  • Next Entry
Entry tags:beginner guide, introduction
There's been discussion in a couple of places recently about making it easier for people to start out in development when you know pretty much nothing. I think someone is working on an official guide, but I figured I'd put something up here in the meantime, as [personal profile] 7rin was asking.

Firstly, most of our dev-training currently happens on IRC. The wiki page explains how to get on there. However, I know IRC isn't possible for everyone, so I think the plan is for people to be able to ask stuff in this community as well.

The first thing to do is to request a Dreamhack. These are our development boxes, and are the basic tool you'll need to do anything. Note that getting one and not using it doesn't use up any resources, so don't worry if you have to drop out of dev stuff later. Once you've got it, follow the steps in the getting started wiki page on Dreamhacks, though it may not all make sense at this stage.

You've then got two choices of method, depending on how you prefer to learn. Either way, a really important point to bear in mind is that at various points in this process, it will all go horribly wrong. That's normal. There will be something you don't understand, or something breaks, and you have no idea what's going on. That's okay. Post an entry here, or drop a comment to any dev (*) and we'll find someone who can help you fix it. We all have it happen to us on a regular basis. Things Going Wrong is a normal part of programming, not a sign that you've failed. This is important to remember when you've spent three hours banging your head against a brick wall. Anyway.

Method 1
Start having a look at Bugzilla. For Bugzilla, I'd suggest you first set up a new email address, as it gets displayed publicly, set it to forward to your main address, and then sign up on Bugzilla. The most useful search is for the keyword "effort-minor", which should include all the easy bugs. Once you've got a Dreamhack running that you can log into, and you've found a bug you like the look of, I'd suggest asking in IRC or the community to check whether it's harder than it looks or anything like that.

Method 2
Just look at the code on your Dreamhack for something where you know what it does (for example htdocs/userinfo.bml is the profile) and read a Perl book/online guide to figure out what's going on in there, asking in IRC or here when you're stumped. If you've never used a command line before, this wiki page will help.

This: http://www.perl.org/books/beginning-perl/ and http://www.ebb.org/PickingUpPerl/ are the Perl books we recommend.

http://wiki.dwscoalition.org/notes/BML is the Wiki page for BML. But BML is evil.

Other resources
Other resources to look at, if you haven't already, are the wiki and this community. Membership is open and posting is open to all members so you should be able to post in here if you get stuck.

http://www.linux.org/lessons/beginner/toc.html looks like a good Linux introduction and is relevant from lesson 5/6 onwards.

W3Schools have a good basic guide to CSS.

Of course, I've glossed over an awful lot of things, there, so do tell me which bits need more explaining.

(Thanks to [personal profile] yvi for her suggestions and additions.)

(*): This includes me, most of the people commenting in this community, and anyone posting in [site community profile] changelog. Most of us can be contacted by PM, or just leave a comment on any public entry, either here or in our journals.


(28 comments) - (Post a new comment)
(Flat) (Top-level comments only)

yvi: Kaylee half-smiling, looking very pretty (Firefly - Kaylee)


[personal profile] yvi
2009-08-06 07:49 am UTC (link)
The first things to do are probably to request a Dreamhack, and then start having a look at Bugzilla

See, I wouldn't suggest that. I would suggest getting a Dreamhack and then looking at the code first. Just looking at something where you know what it does (for example htdocs/userinfo.bml) and reading a Perl book to figure out what's going on in there, asking in IRC when you're stumped. But that's basically different styles in how to tackle starting to program.

http://tinyurl.com/nalrs8 is the 'effort-minor' Bugzilla search. Handy link :)

(Reply to this)  (Thread


cesy: "Cesy" - An old-fashioned quill and ink (Cesy)


[personal profile] cesy
2009-08-06 08:22 am UTC (link)
Okay, I've updated it to include both methods, since as you say, it's different ways of learning, which tend to suit different people. Does it look better now?

(Reply to this)  (Thread from start)  (Parent)  (Thread


yvi: Kaylee half-smiling, looking very pretty (Firefly - Kaylee)


[personal profile] yvi
2009-08-06 08:26 am UTC (link)
It does, but it probably needs some more links :)

I think this: http://www.perl.org/books/beginning-perl/ is the Perl book we recommend.

http://wiki.dwscoalition.org/notes/BML is the Wiki page for BML. But BML is evil.

http://www.linux.org/lessons/beginner/toc.html looks like a good Linux introduction and is relevant from lesson 5/6 onwards.

Anyone got anything for CSS or JavaScript?

(Reply to this)  (Thread from start)  (Parent)  (Thread


cesy: "Cesy" - An old-fashioned quill and ink (Cesy)


[personal profile] cesy
2009-08-06 08:47 am UTC (link)
www.w3schools.com are pretty good for basic CSS.

(Reply to this)  (Thread from start)  (Parent


yvi: Kaylee half-smiling, looking very pretty (Firefly - Kaylee)


[personal profile] yvi
2009-08-06 10:50 am UTC (link)
Hmm, I looked around the Wiki and apparently we recommend http://www.ebb.org/PickingUpPerl/ :)

(Reply to this)  (Thread from start)  (Parent


yvi: Kaylee half-smiling, looking very pretty (Firefly - Kaylee)


[personal profile] yvi
2009-08-06 07:53 am UTC (link)
Oh, and we now have 'Dreamhack Getting Started' page: http://wiki.dwscoalition.org/notes/Dreamhack_getting_started

I know some people say dicing right into bug-fixing is good, but overall, I am very much in favor of pointing people to Perl and Linux introductory texts and helping them when they encounter problems first.

(Reply to this)  (Thread


afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (afuna, cats)


[personal profile] afuna
2009-08-06 11:11 am UTC (link)
Hmm, I wonder if we could start people off with a tiny exercise? No more than an hour, but lets get them familiar with making a change to a page, and generate a diff, etc, etc, to solve a quick problem?

You wouldn't need to do it, but the structure could help people who get a Dreamhack and the code dumped in front of them but don't know how to start.

(Reply to this)  (Thread from start)  (Parent)  (Thread


yvi: Kaylee half-smiling, looking very pretty (Firefly - Kaylee)


[personal profile] yvi
2009-08-06 11:15 am UTC (link)
Yes, that sounds like fun :). Maybe a few different exercises for different stuff?

Like, I don't know

* get the user names on the userinfo page to print in reverse alphabetical order
* tweak Tropo Red's navigation bar background color to #000000
* make communities use a different icon

Plus a few others and have 'solution' pages for a few of them.

At least it sounds like more fun than going through book exercises.

(Reply to this)  (Thread from start)  (Parent)  (Thread


afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (afuna, cats)


[personal profile] afuna
2009-08-06 11:17 am UTC (link)
Hehhe, agreed. And more relevant ( $u->user has more meaning than $random_variable!)

(Reply to this)  (Thread from start)  (Parent)  (Thread


yvi: Kaylee half-smiling, looking very pretty (Firefly - Kaylee)


[personal profile] yvi
2009-08-06 11:22 am UTC (link)
You know, this sounds like fun. I could maybe sit down and write a few this weekend, depending on whether I am going to meet the family or not.

Maybe a new entry here (or in another community?) to see what people need most and whether anyone would like to help? For example, I'd love something where the user and entry object stuff is involved, since it's used a lot. There needs to be some BML stuff, some English-stripping, etc.

We could have a whole "DW for Beginners textbook" ;) Yeah, I know I am going overboard here.

(Reply to this)  (Thread from start)  (Parent)  (Thread


afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (afuna, cats)


[personal profile] afuna
2009-08-06 11:24 am UTC (link)
Go overboard! I don't think anyone will mind (and I'd be happy to help out *G*, assuming family doesn't eat me this weekend, too!)

And hmm, yeah a new entry sounds good? Or maybe look back to D's last or next-to-last walkthrough,and see whether anyone mentioned anything in particular, too?

(Reply to this)  (Thread from start)  (Parent)  (Thread


yvi: Kaylee half-smiling, looking very pretty (Firefly - Kaylee)


[personal profile] yvi
2009-08-06 11:54 am UTC (link)
Evil enabler :P

(Reply to this)  (Thread from start)  (Parent)  (Thread


afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (afuna, cats)


[personal profile] afuna
2009-08-06 01:21 pm UTC (link)
Yes! :D

(Reply to this)  (Thread from start)  (Parent


pauamma: Cartooney crab holding drink ("Cartooney crab holding drink")


[personal profile] pauamma
2009-08-06 03:01 pm UTC (link)
She's not evil!

(Reply to this)  (Thread from start)  (Parent)  (Thread


yvi: Kaylee half-smiling, looking very pretty (Firefly - Kaylee)


[personal profile] yvi
2009-08-06 03:04 pm UTC (link)
*hides and tries to look innocent*

(Reply to this)  (Thread from start)  (Parent


denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (me, standing outside a broken phone booth)


[staff profile] denise
2010-07-31 03:21 pm UTC (link)
We should totally come back to this idea and pull it together. *g*

(Reply to this)  (Thread from start)  (Parent)  (Thread


sophie: A cartoon-like representation of a girl standing on a hill, with brown hair, blue eyes, a flowery top, and blue skirt. ☀ (skype, sophie, weemee)


[personal profile] sophie
2010-11-13 02:02 pm UTC (link)
I totally agree. :D

(Reply to this)  (Thread from start)  (Parent


afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (afuna, cats)


[personal profile] afuna
2009-08-06 11:20 am UTC (link)
Very very nice! Thank you for gathering this all in one place :)

(Reply to this


av8rmike: (styles)


[personal profile] av8rmike
2009-08-06 01:02 pm UTC (link)
I really need to make a [site community profile] dw_styles post covering these topics, but finding the time before this weekend is going to be hard. Anyway, for people who are comfortable working with CSS or the layer system, it's totally not necessary to have one's own Dreamhack to contribute to styles. Having one means you have to create a lot of test-type entries before you can do any actual work. It's still possible to clone the repository and issue patches without a Dreamhack at all (although the steps are a little different without cvsreport.pl).

(Reply to this


kaisa: (Glitch)


[personal profile] kaisa
2009-08-07 09:42 am UTC (link)
I think it might be a good idea to share information about what tools people use when they work with the code.

For example, while I get along with command line and vi just fine, I still prefer GUI tools for some things.

When I work from a Windows machine, I use MySQL GUI Tools (http://dev.mysql.com/downloads/gui-tools/5.0.html) to look at the database. The connection to the database goes to my development environment through an SSH tunnel. My editor of choice on a Windows machine is UltraEdit (http://www.ultraedit.com/), because a) I can browse remote SFTP sites through the built-in file browser, and save the files through the "File -> Save as" just like saving a file locally, b) UltraEdit handles unix style new lines just fine without getting confused and c) I bought a license for it years ago so that doesn't stop me either.

If I'm working from a Linux machine, I use the MySQL GUI tools with a SSH tunnel, and for a text editor I use Kate, because it, too, allows browsing, opening and saving files on my dev machine (by using the fish protocol through KIO slaves). I'm still somewhat new to Linux on a personal computer, so I don't know what other tools are good.

This way, I can avoid moving files back and forth with a file transfer program, and I can save all my passwords and connection settings so that I don't have to keep typing them all the time, and opening everything is basically just a button click. (Yes, I'm lazy, too.)

What tools are other people using? Would other people be interested in a page that explains, for example, how to use MySQL GUI tools with an SSH tunnel? Although, I'm using my own dev server, so I don't know if my instructions would work with dreamhacks.

(Reply to this)  (Thread


jeshyr: Pile of thick books labelled "Geek" (Geek)


[personal profile] jeshyr
2009-08-07 01:32 pm UTC (link)
On OS X I use:

TextWrangler is a good free text editor with syntax highlighting (there are heaps around that are free and will do the same job, this is just the one I like most).

CyberDuck is an SSH/FTP client which is DonationWare so you can use it for free but it will occasionally nag you for donations. Not very often, I think only once every time you upgrade it.

They work well together: I can get CyberDuck to connect to the Dreamhack site via SSH (bookmark the site and it saves my password/username etc.). CyberDuck shows me the directory structure and I find the file I want to edit then right-click on it and select Edit With -> TextWrangler and every time I save the file in TextWrangler it's automagically uploaded to the Dreamhack.

Saves me having to remember stuff. CyberDuck remembers my passwords and all, and TextWrangler remembers where the file is and the combination remembers to upload the changes when I make them. Less remembering = less silly mistakes. I make enough silly mistakes in my code, I don't need the "forgot to upload the file!" silly mistakes as well!

r

(Reply to this)  (Thread from start)  (Parent


jeshyr: A flower with text "In life's name" (Young Wizard, Young Wizard - In Life's Name)


[personal profile] jeshyr
2009-08-07 01:24 pm UTC (link)
I love that you wrote that it's all supposed to go horribly wrong! It's so so so true but so discouraging when you just spent what feels like forever and you thought you'd got it!

Would it be OK to post here saying "argh it all went horribly wrong when I tried XXXXX what do I do now?"? I know that's OK on IRC but somehow I find the communities more intimidating.

r

(Reply to this)  (Thread


cesy: "Cesy" - An old-fashioned quill and ink (Cesy)


[personal profile] cesy
2009-08-07 02:32 pm UTC (link)
Yes, definitely okay to post here with that - part of the point of the community, as I understood it, is to be a place to say that for those people who can't get on IRC.

(Reply to this)  (Thread from start)  (Parent


stuntpilot99: (wave)


[personal profile] stuntpilot99
2011-12-26 09:45 am UTC (link)
Seeing as this post is a little old, is IRC still the recommended place to be if I'm looking to join in contributing? (I've not used IRC for um 15??!? years or so)

(Reply to this)  (Thread


foxfirefey: A guy looking ridiculous by doing a fashionable posing with a mouse, slinging the cord over his shoulders. (geek)


[personal profile] foxfirefey
2011-12-26 09:48 am UTC (link)
Yup, we still hang out in IRC! You can also make posts here or in [site community profile] dw_dev.

(Reply to this)  (Thread from start)  (Parent)  (Thread


stuntpilot99: (deadlines)


[personal profile] stuntpilot99
2011-12-26 09:51 am UTC (link)
Ok, I best find something to download then :)

(Reply to this)  (Thread from start)  (Parent)  (Thread


foxfirefey: A guy looking ridiculous by doing a fashionable posing with a mouse, slinging the cord over his shoulders. (geek)


[personal profile] foxfirefey
2011-12-26 09:53 am UTC (link)
I think freenode does have a web based client, if you don't want to go to that trouble--more details on the IRC wiki page, I think.

(Reply to this)  (Thread from start)  (Parent


denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (me, standing outside a broken phone booth)


[staff profile] denise
2011-12-26 09:51 am UTC (link)
Yes! We are now at irc.freenode.org, channel #dreamwidth.

(Reply to this)  (Thread from start)  (Parent



(28 comments) - (Post a new comment)
(Flat) (Top-level comments only)