When learning new concepts, make sure you are learning something that has a clear benefit for you. For example "I want to learn HTML/CSS so that I can build a webpage for my dog sitting service", or "I want to learn Vue.js so that I can refactor that smelly front-end code that I hate dealing with at work". When you want to learn something just because it sounds cool it might keep your interest for a while, but once you hit your first obstacle it's likely that you will conclude that it's not that interesting and move onto something else.
For projects, what seems to work best for me is to be disciplined about code quality. Always do the things right way and always try to get deeper understanding of the issue, even if it takes saying 'no' to the management, or pushing a deadline. As somebody once said "Do the right thing and wait to get fired". This is the best way to learn and grow as a developer - by solving real life problems in a good way, and if you like programming this could be enough to keep you going long term.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.