If you're just beginning to learn programming, you probably have been bombarded with opinions. A destructive one is "programming is difficult."
My intention is not to convince you that programming is easy. That's for you to explore and find out. I just want you to avoid the careless assumption that it's difficult even before you've given it a fair try.
I learnt programming as a 11-year old kid. The amount of resources on the internet were scant, and even having an internet connection at my home was a luxury. Compared to that, today the internet is brimming with videos, courses, and interactive tutorials. But all this abundance can cause a lot of distraction too.
Here are some common reasons why you might find programming difficult, and what to do about it.
#1 You primarily watch or read, but you don't write
Programming is an activity. If you merely watch videos and read books, you deprive yourself of the opportunity of figuring things out.
Consider a book on programming. It has an exercise that you need to solve. If you "jump ahead" and view the solution directly, you never learn the process. The point of the exercise was not to know the solution, but to find the solution.
This process can be incredibly frustrating, because you don't just learn programming, but you learn a new way of thinking. And this is not common to programming, but every major field out there.
#2 You try to rush too much
Programming can take time, and there's nothing wrong with it. How much time it will take for you depends on what you already know. Don't get disheartened by someone else picking it up faster than you.
When I started, it took me 1 year to comprehend and fully understand the lines of code that I writing. I could write code from the very first day, but only mechanically, without understanding.
Don't be tempted to take too many shortcuts. Today's shortcuts will become tomorrow's misunderstandings.
#3 You indiscriminately collect miscellaneous knowledge
Here's a pattern that I've observed in various programming forums. A beginner learns the basics of Python. Now the beginner doesn't know how to use that skill, or which project to create. So they end up learning something new, like Numpy, or Pandas, or anything else under the whole data science gambit.
But the one thing they never learn is how to apply what they know. So, regardless of what new things they learn, they are still restricted to writing just a few lines of Python that they can scramble together.
Instead of prematurely collecting miscellaneous knowledge, spend some time applying what you've learnt. Create projects.
#4 You don't spend enough time on the process
Programming (or any other profession for that matter) has two parts. One is knowing. The second is knowing how to know, or finding.
The "finding" part is the programming process. That's where you tackle something not done before. And we're not talking about something completely new like inventions.
For example, you might learn how to create REST APIs from a website. But you still need to adapt and apply it to your particular project. You can't copy/paste code from the tutorial, you can only learn the patterns and figure out how to apply them.
However, too many times, people "practice" by seeing something in a tutorial and replicating the exact same thing again. They never try to isolate the core technique and do something new.
Sure, you can easily find out how to create many impressive applications by merely reading tutorials. And that's perfectly valid. In addition to that, you should also hone your skills of coming up with solutions on your own.