You can even contribute money to pay a programer, or fundraise for a project.
No. You could write documentation. You could test and report the bugs. You could simply help people out on the forums or IRC chat.
No, you can give feedback to the programmers, make tutorials, share your experiences...
No. There are a lot of possibilities to get involved.