You need to find some project you actually use (say, FreeBSD). Then, you must fall in love with it (because it had a beautiful design decisions, like arc, or coded elegantly, like nginx or just got a lot of buzz, like clojure). Due to your love, you will read all developer's mailing lists, sites and blog posts related to it. After that you probably feel an urge to improve the thing you love. Now you can start contributing. Everything else will be obvious at that time. ^_^
I'd agree with this. Pick something you already use and fix or extend it in ways which make a meaningful difference to you, but be aware of and respect the design goals of the original authors.
In practical terms, you can just start hacking on the code yourself which will normally be available from a version control system somewhere, but when you've made changes you'll need to submit patches for consideration to the project maintainers at first. If you're unsure what format to use, just email to ask. For projects hosted on github you can just fork the project there which will make it technically easier to get patches back into the main branch. As you build up trust with others involved in the project you'll be able to get commit access to the project repository and make changes yourself.
As for IDEs etc, each project will have conventions and project metadata (makefiles, project indices etc.) suitable for a specific setup, so figure this out when you've picked a project and work with what's already in place as much as possible.
[edit] One other thing: it will be really hard to get started - getting up to speed with how a new piece of software works is difficult at the best of times and most projects aren't designed to make this easy. Persevere, as once you've got to grips with layout and conventions and got to know the other contributors things will become much easier.