BharathPeace Matt and Daniel answered this wonderfully, and I wanted to add some thoughts of my own. I'm also a freshman computer science student, and am fairly new to organized software development (Flarum is the first major open source project I'm involved in), so maybe some of this might be relevant.
I'm a volunteer with Flarum, so money's not really a factor in the many reasons why I contribute to Flarum. It is a wonderful learning opportunity with a great product and solid codebase. At it's core, Flarum is both a product and a framework, which poses a very interesting architectural challenge. Furthermore, I'm working on tools and systems that are being used by (and that help) thousands of people around the globe, which is both awesome and humbling. But most importantly, it's also a fantastic community, with really cool people. I've only been involved for about 2 months, but the people I've met here have already had a lasting impact on the way I think and code, for which I am very grateful.
Back to money, I'm in a stage of my career (namely, before it's even started) where the best long-term investment I can make is working on myself to become a better developer, team player, and person. I definitely plan to have my career in software, and there's multiple avenues towards monetizing that. Personally, I'm planning on seeking corporate employment, and perhaps eventually starting my own startup. At the end of the day, one of the best parts of software engineering is how relevant it is: practically every industry, research field, and public service sector needs programmers: this means that you can make a career out of applying programming to something you're truly passionate about, which is awesome in my opinion!
In my opinion, the best way to become a better developer, and to meet people and build a network along the way, is to work on projects with others. There's a LOT of open source project out there that need contributors, once again operating in pretty much every field imagineable.