Image is from a learning group I hosted for a while. I've also taught in university and given trainings. About 400 people have tried to learn as my student. Many have failed. The following is just my opinion, don't take it too seriously.

By interactive tutorial I mean Codecademy and freeCodeCamp type tutorial based code editors.

The best one I've completed is probably of redis, the database. Because you literally only need like 10 commands to do most things. Programming is not that easy. There are errors, context and timing issues.

Interactive tutorials are like any other games. There are a set number of possibilities to complete a mission. GTA is called open world right? Then why do the missions always have very specific tasks you absolutely need to do? Because every action you do must be programmed.

So if you make a mistake in an interactive tutorial editor, you're somewhere the designer didn't expect you to be (and programming languages give you a lot of chances to make mistakes). Thus "you shall not pass" 🧙 even if your code is correct and working. Only because the designer of this tutorial didn't foresee your silly whitespace problem. Now you're stuck and there's no error to help you. Because programs that checks your program doesn't have an error reporting system.

Videos are different. Not that they actually teach you (you need to code yourself), but because they at least don't get mangled in one place. Maybe the presenter doesn't quite speak your language. Maybe you have questions you can't ask. Okay, maybe there is no video for the app you want to make. These are real problems (solution below), but they're better than the black box that is the interactive tutorial. At least there's a clear path to the end of the project.

Best way to learn? I'm glad you asked. It's to book an hour of my free time on my website. Shameless? Here's the real advice: get a mentor. Meet/v-call ("vall", anyone?) every week. A mentor is your personal assistant. Your mentor will make sure you're not focusing in the wrong place. Most of all - they'll keep you going. Getting stuck without help is the biggest killer of motivation. And writing code is mighty frustrating at times. The fact that you're building the project you want to build is just another amazing bonus.

You probably know someone who codes well. Don't be afraid to ask them to be your mentor. Software is the world of open-source. We get giving back to the community. We get the struggle of learning.

But don't waste a mentors time. If you haven't done your homework (meaning there's no progress in between lessons) you're not getting anywhere. Please save both of our time.

If there is no mentor to be found, the next best thing is a community. And for these I suggest going right back to freeCodeCamp since their forum and blog is amazing.