I like open-source, and Linux specifically, for two big reasons: customizability and community. What could be more customizable than being able to look at and add to a program’s code? And as that customization (which hopefully ends up on Github or Bitbucket or some community-accessible equivalent) happens on a large scale, the community grows.
Note that I’m a law student, not a computer engineer. I can’t really write anything…I guess what I would consider important. I’ll never make a kernel commit, for instance. All I can really do is write (mediocre) bash scripts, and maybe minor Java or C or C++ additions to an existing codebase. But I have found that open-source code is generally well-designed, properly commented, and logically named. So modifying existing codebases isn’t as difficult as I thought, especially when what you have in mind mirrors something already in the code. And at least from my admittedly minimal experience, developers tend to be pretty forgiving of stupid first-timer errors and oddball requests.