First I read your title, and told myself, "No, I ain't that", but I clicked anyway to see what others are saying about being a master programmer.

Then I read your definition for this question, and I thought, " sure, I am that. I can program stuff with only google."

How I came here?

I programmed a lot. First, books, tutorials, then small projects.

Coding is not really the harder part. You can go to codewars and begin solving easy problems. And where you don't understand, get help from YouTube. Neetcode is great for Leetcode. This way you learn to solve logical problems. Turn ideas into code.

Ideally learn multiple languages. And then you understand the concepts rather than the syntaxes.

Then you can make minor improvements to existing code. I use and used (before learning to code) a lot of OSS, and, after learning to code, when I saw something that could be improved, I went ahead and created a PR, or fixed a bug. This is lot easier than creating something from scratch.

Before coming here, I fixed some documentation, added translations to readme after learning to use Git and GitHub.

After documentation, and before features/bugs, I fixed minor code errors in tutorials that I watched. Most tutorials nowadays have an open GH repo.

Then comes the harder part, that is planning something. You have to know how to design systems. And here, too, mimic others first. If you want to create games, look for similar OSed games, and learn the structures from them.

Then code your own. Games, websites, apps, whatever.

Tutorials like from freeCodeCamp are important, too, as they not only show you the code, they show you the structure/architecture of things as well. A good starting point from tutorials would be to understand the architecture/function definition and then pause the video and write the code yourself. This is how you start.

Then you start your own project. Design the whole architecture yourself and code it up.

Some Mathematician said that you can't become a Mathematician until and unless you have given yourself a problem that you want to solve. Same goes for programming, in my opinion.

Build something that you need for yourself, that you think should exist.

Write program in the area where you feel genuine interest. For me it was scientific programs like Non-Linear Dynamics, Conway's Game of Life, Machine Learning, Deep Learning, etc. For a friend, it was Electronics circuit simulators. Write stuff that you feel interested in.

This way you begin to see coding as an means to an end, and not the end itself. In my opinion, this is good.

One missing piece in this comment is knowledge of solutions. Immersion is helpful like it is in learning languages. Immerse yourself in an environment buzzing with programmers. It is free with a CS degree or a job writing software. But I started out as a Physics undergrad, and I had to get my immersion from Reddit, Quora, and later HN.

You have to know the names of solutions that exist. Netlify, Ghost, Hugo, DragonRuby, Unity- you must know the names and one line descriptions first, in order to use them as pieces in your software.

I wrote what I know. I hope it helps you. Although Austin Kleon's "Steal Like an Artist" is written for the creator economy, beginner programmers can learn from it. "Don't start with a blank page"- is an important lesson.

May I get the name of the DSA book that your friend read three times?