@y a t s Since you have some programming experience, I wanted to ask you do you have any recommended resources or links for real-world projects? Because I'm tired of doing the same recommended beginner projects (guess the number, rock-paper-scissors, password generator etc.). Also, do you have some advice on how to handle days where someone doesn't feel motivated to code?
Good questions.
For the first question: I have had difficulty with this over the years as well. I think the best projects come out of some sort of need or necessity, with my SneedChat client being a good example of this. These are things you come across every once in a while where you find yourself thinking "It would be nice if I could do _____." Even if something for that specific task/application already exists out there on github, I find a lot can be learned from using other people's implementations as a reference when rewriting it in a different language or a less retarded way. On a somewhat related note, making PRs for other people's codebases is almost always a brutal experience; not a great place to start.
Many mainstream projects are horribly written and are as stable as a house of cards. You can learn from the mistakes of those who came before you, like alluded to above with
Java's biggest problem is that they came first and made all the mistakes. Everyone else had the advantage of being able to look at Java and say "Lesson learned".
I have written a bitcoin miner in ARM for my graphing calculator, a bittorrent client in rust (painful to write, but I learned a lot), a KiwiFlare solver lib, a browser extension to sync cookies across this site's many domains, etc. I don't say this to brag but to illustrate that the best projects are ones that you have some sort of passion, interest, and curiosity for. I learn a lot from diving in head-first and figuring things out as I go from reading docs. It's similar to how people learn Linux through breaking their setup and spending hours fixing it. The best creations—be it music, paintings, programs, some other art form—come from passion. I write terrible uninspired stuff when I'm forced to for some obligation (e.g. a uni course or other work).
For the second question: The answer for this one goes along with my answer for your first question. Motivation comes from a burning curiosity and a passion to learn something that intrigues you. Regardless, there are some days I couldn't be productive and would just break existing stuff if I tried. There are going to be off-days where you just leave your editor minimized/closed, and those often come when I'm tired, but the rest of the time I'm working on something I find interesting. My hobbies are very cyclical, so there are longer periods where I may not write anything at all, doing something else I find enjoyable at the time.
Depending on your skill level, try mixing things up and do something outside your comfort zone. I know most of what I do purely because I said "fuck it" one day and learned a thing I was clueless about. If you have any other questions, always feel free to send them my way.