There is literally a open source project for almost any subject on any platform and with any language. Like Auroch said pick a subject that seems interesting to you and start looking for a good project to join.
Some good websites to search on is https://github.com/ and http://sourceforge.net/ you can also just google the subject along with open source and quite a few projects should pop up. The next step after you find a project would be to start browsing and familiarizing yourself with the code on the projects repo. Once you feel you are comfortable enough with the existing structure and code start looking at the buglist/issue page for the project which will list current features that need to be developed, bugs that need to be fix, etc.
You will probably wanna tackle maybe a few bugfixes first to get familiar with working on the project and with the other people working on it, but you can also dive in and start tackling new features also if you feel comfortable doing so.
So make sure you are very familiar with how source control software like git works.
Hopefully that helps give you a starting point if you got any specific questions about anything just let us know and I am sure someone here can help answer them.
I've made a couple open-source projects myself... and lemme tell ya... they've had zero popularity. These range from IRC clients to Linux kernel drivers. Some aren't that useful, some are highly useful and have no alternatives.
I've found that contributing to known software to be more productive. While it's awesome to make your own software, it's not realistically as useful as contributing to software that's used by hundreds or thousands, compared to contributing to your own software used by less than a dozen.
@Auroch
That is debatable (as everything is). Nevertheless, you seem to have missed @NoXzema's point - its not the act of developing for Linux that is problematic, but rather starting from scratch and developing by yourself rather than contributing to an already mature project with known use by many users.
Yes of course. Contributing to existing projects is very useful and it is very good for Linux popularity. Soft that don't take much space on a harddrive and very stable must be more popular. I think that Linux-Developers should create friendly interface for usual users who don't like of terminal working.