To become a better developer ? To read more OR to create/contribute to open source projects?
Contribute to an existing project, rather than starting one yourself. There are a bunch of benefits:
- You know it’s something people need, because there are already people using it and developing it
- You can learn from more experienced developers already on the project (and no risk that no-one good will join the project you’ve started).
- You won’t be creating a brand new project which might become abandonware later down the line
- If it’s a widely used piece of software, contributing will be excellent for your career—“I contribute to project X” where project X is something a company is already using will get you a LONG way in interviews.
- Because the project is already established, you’ll be forced to learn best practice in open source collaboration (mailing lists, issue trackers, pull requests and so on). If you strike out on your own you’ll have to figure this all out for yourself from scratch, and you might not do a very good job of it.
If your objective is to become a better programmer, joining an existing project is the way to go. The best reason to start a new project is that you need to solve a problem that no one else has solved in the right way for your needs yet.