People say that programming is hard. But it’s not. Programming is easy.
What’s hard is figuring out what you need to do to make your idea a reality.
Breaking down the idea into a specification. Designing the data structures. Planning an interface. It’s all difficult work and requires great concentration and consideration.
As you implement your program you’ll inevitably find edge cases that you didn’t plan for or as a result of a requirement change.
The hardest part about programming is admitting that your plans, the ones you spent so much effort and time on, didn’t hold up to the requirement changes and then doubling back to fix it.