I have always thrived learning on my own. I am very quick to just start consuming everything that I can get my hands on, and just going for whatever project is obsessing me until I finish it and I am reasonably satisfied with it. Still, when you are learning something from scratch and specially something as challenging as programming, things don't always go so smoothly. And that's when you need to find things to keep you going. Here's mine:
Have a list of things you have accomplished for motivation. I talk about a bit about it here, if you are curious.
Just a small list of things you want to do, so you don't waste time hesitating. I like using the note taking app Obsidian a lot for that purpose. It's definitely helpful to have clearly defined tasks. And not only have them defined, but being clear about their scope. For example, doing a full project is something that takes weeks, at the very least, before you can consider it done. That's why I prefer having daily and monthly tasks. Keeps me organized in my day to day, and in the big picture.
Find your idols! I love reading interviews by Matz, the creator of Ruby. I think he is a really cool guy.
Or this guy! Look at this, and he even uses VIM! What a madman! Just take a look at his channel and see how cool and unique his videos are. Sometimes I just put them in the background and check what he is doing from time to time.
Reading interviews, watching videos, podcasts. All of it. Not everything you learn has to be this very intense completely focused experience. You can just chill and enjoy these things.
At some point I realized that programming is like parenting. Or at least what my mother always said parenting is. If you get too involved, you fuck your kid up. If you don't get involved at all, you also fuck him up. So, pick your poison. Or try to have a balance.
Yes, avoid tutorial hell. But, to be honest, I never found it particularly useful to jump head on without having any idea of what's going on. I can do it, I guess? Looking things up on the go. It's just that I don't find it very efficient. For that reason, I always found video courses very useful. I get to see how people that are experts actually do it, follow the conventions, the best practices. You are exposed to the fundamentals quickly and in a structured way. Things like Frontend Masters are great for that purpose! You won't know everything, or even how to do it on your own many times. But you have such an easier time picking it up when working on your own projects, which is where you are really learning.
Whether it's frameworks, projects, or extensions. Try them all, have fun with it. If you are like me, finding ways to improve your workflow and different ways to solve the same problems is motivating in and of itself.
If you are daunted by JavaScript, do yourself a favor and install Prettier. Please do it. I used to hate JavaScript coming from Ruby (I LOVE it now), because I wasted too much time while learning it on fixing semicolons and indentation. Your code will be a lot more readable because you will have a clean, consistent style. And you actually won't even have to worry about style at all, you can just focus on the most important thing which is problem solving. You can install the VS Extension here. Best decision you can make, I promise you.
But prettier is just an example. There are lots and lots of ways of making your life a little easier. I feel like taking the time to for example learning how the vs code debugger works, prettier, shortcuts, etc. are all great ways to make the friction of coding every day less draining.
I think all of these things can be summed up in two ideas: self-care and have fun.
I do things on the web. And I like learning japanese, music, and movies. You can check my work here!
Nzoa's Portfolio