No, coding is not difficult to learn. Although learning may require you to delve into areas with which you are previously unfamiliar, those who have time, persistence and dedication can begin to gain experience in coding in the same way they can learn to do anything else. Like any other skill, learning to code requires time and persistence. The difficulty will depend on the programming language itself and the type of software you want to make.
The journey sounds intense and, frankly, it often is. It is important to understand what lies ahead, especially if you are going it alone. There are ways to avoid most of these problems. Learning to programme is often not as easy as people say it is, but it is also not as difficult as it seems in the depths of despair.
You have to be persistent and tenacious. If you're a novice, learning to code requires a different mindset than what you're used to, so of course it will be difficult. But if you play with a problem for several hours, you will gradually begin to understand how it all works (more or less). As with any other skill, a person has to study and learn to program from scratch, and would have to devote the time and effort (and money, if necessary) required to learn.
I was convinced that the seemingly normal programmers I encountered were actually sociopaths who had experienced, and then repressed, the trauma of learning to program. If you choose to learn PHP or Ruby, that's fine, or if you want to learn Swift or Objective-C to create iPhone apps, that's fine too. If I had to learn to code all over again, this is how I would do it ððð¾ð¾ð¾ð¾. For example, if you just want to learn the basics of programming, then you probably don't want to invest in a crash course in coding.
As your learning progresses, you will no longer settle for the first solution you find: you will start looking for better ways to solve your coding problems. Students who have learned entirely on their own may be productive, but they rarely have the kind of readable, modular, maintainable code that makes them attractive in a professional environment. Be prepared to learn multiple technologies, as it will (probably) not be enough to learn just one programming language to build your application. Open source can be the most wonderful discovery for non-technical people learning to code, as the functionality you are looking for is likely to have been open-sourced so you don't have to reinvent the wheel.
Later on, when you are ready to learn a new programming language, you will find that your previous knowledge of the first language you learned will help you learn the new one. I intentionally started with data rather than learning to code, because if I didn't get to build the app, I could at least open the spreadsheet and make a meaningful contribution to the startup community. You can play coding games, or even find one of those websites to teach kids how to code, if that makes things easier to understand. You can learn to code self-taught, through a traditional four-year degree in computer science, or through a coding bootcamp.
I guess learning to code is a real challenge, especially if you don't have experience or a good programming background.