2 Steps to Becoming a Great Developer
theadmin.org
theadmin.org
Why do you care? Taking some one else's code and rewriting is a great way to learn. First, you don't need your own idea. Second, there is already a "viable" solution you can learn from and third, you can get to the meat of being a great coder. "How can I make XYZ better, simpler, more performant..."
Once you learn thoughs skills you can go off and create yor own projects. Look at all the things people love today, they are simpler. better architected, more performant versions of existing solutions. Apache -> ngnx, MySQL -> ...,
If you are afraid to fail or worry about what others think you won't be a great coder.
In those rare cases where they are both, it's something magical. I can only think of 3-4 teachers that I have ever had that fit that bill.