But yes, it is entirely possible that you can be a self-taught programmer. However, it will be a long and tedious process. There is a saying that it takes approximately 10,000 hours of practice to achieve mastery in a field. Learn how to manipulate and analyse data with a carefully planned curriculum made up of free online classes, assignments, projects and much more.
You'll start writing code almost immediately once you begin lessons, completing 1200 programming assignments and getting immediate results for your solutions. Whether you're just learning to code or you're an old hand, experimentation is a key part of it. Once you gain some experience with programming, you'll be able to answer other people's questions, or even teach what you've learned to newbies, a great test to see if you really know what you're doing. But to succeed in this self-learning route and jump from beginner developer to junior developer quickly, you'll need to incorporate some of the magic of bootcamps into your self-taught journey.
Edabit is "like Duolingo for learning to code, offering bite-sized coding challenges that simulate what programming is like in the real world". If you want to go pro and become a full-time developer, an intensive, face-to-face coding bootcamp could help, especially if you learn best in a structured environment with real people who motivate you. Free tutorials, courses, guided paths and follow-up projects to learn real-time 3D development skills for making video games, VR, AR and more. Along the way, I've found that there's no fairy dust to sprinkle on your code that will suddenly make learning easier.
You can probably find an e-book for whatever language or framework you're trying to learn on GitHub, but many web developers swear by Jon Duckett's colourful series on everything from front-end to back-end web development. If you don't get seemingly minor things like closing an HTML tag right, you'll be stuck debugging a simple syntax error instead of writing more impressive and complex code. For example, if you never feel the pain of object-orientation, then you can either use object-oriented code without understanding why it's better, or ignore object-oriented code altogether and write everything procedurally. Instead of focusing on learning a specific programming language, you can also learn to solve problems in a way that a computer understands.