Hey Leihua,
Thanks for the comment! Something I really love about programming is building my own projects and then trying to think of what I want to add to it and then try to figure out how to do that.
My first project was a custom YouTube search engine. It started out as a really basic app. I wanted to save user profiles so I spent the time researching and learning about databases and SQLAlchemy for Python. I wanted to host it somehow so it was accessable online so I learned about Heroku.com and spent the time working with Flask and jinja2 for frontend design.
I enjoy finding my own challenges to overcome and then doing the research and going through the learning process to actually make those things a reality. I got burned out on just watching tutorials over and over. When I shifted to doing this instead it changed my entire thought process as far as learning code goes.
I wrote an article about this if you're interested.
https://medium.com/better-programming/how-i-stopped-learning-to-code-and-started-e32614bccfd8
Best of luck to you my friend! Let me know if you have any more questions!