October 2011 Coding Challenge/New developer intro

Becoming a MediaWiki hacker
Here's a good introduction on what's involved in becoming a MediaWiki hacker, including instructions for installing your own MediaWiki instance.

IRC: #mediawiki
IRC is short for Internet Relay Chat, and open source developers talk on IRC all the time. The IRC Primer is a good overview of how IRC works. Friendly MediaWiki developers can be found on the #mediawiki channel on irc.freenode.net (web interface). If you are having difficulties figuring out how to write MediaWiki code, you can ask for help there. Be aware, though: if you want someone to help you, do some homework first. If the answer to your question can be found easily by typing the question into Google, you might not want to ask it on IRC.

Mailing list: wikitech-l
If someone isn't immediately available to help you on IRC, you can also join the wikitech-l mailing list and ask questions there. The same rules for asking questions on IRC apply for asking questions on mailing lists.

Coding conventions
Coding conventions are extremely important in the MediaWiki universe. Read them and understand them. If you do not conform to them, your chances of winning go down significantly.

Pre-commit checklist
Here's a useful pre-commit checklist. Before you decide that your submission is final, go through this checklist. You'll be glad you did.

Security for developers
Wikipedia gets half a billion visits every month, so good security practices are extremely important. Be sure to review the security documentation for Mediawiki developers.

Unit testing
If you truly want to impress, add unit testing to your code. If your code is ever going to be included in Wikipedia itself, good unit tests will be required. Here's some good documentation for writing unit tests in PHP and Javascript.

Browser Compatibility
Because Wikipedia is viewed by so many users, browser compatibility matters. (Remember: 0.1% of 500 million users is still half a million users.) Your new code may not work on every browser, but you must not break older browsers, either. Be sure to familiarize yourself with Wikipedia's browser compatibility policy.