You have never programmed….. Then the number one task is to take on a cource in programming.
While I agree that taking a class is the BEST WAY way to learn anything, and ESPECIALLY the best way to learn programming, I'd guess that most Arduino users have never taken a programming or electronics class...
And, the Arduino is an easy way to get started with programming. The downside is that you may need to learn some electronics at the same time.
The basic [u]Arduino C++ Language[/u] is fairly simple and it doesn't take too long to read through the whole language reference (although you won't understand the whole thing if you've never programmed before, and probably nobody remembers the whole thing!). (There are additional\optional libraries to "extend" the language beyond what's in the language reference.)
Most of the Arduino language is NOT standard C/C++. Standard C/C++ expects you to have a (standard) keyboard, display, and disk/file storage. And there's no way in standard C++ to do low-level things like turn-on an LED...
It still wouldn't hurt to take a class in C or C++ to learn the concepts (and to learn more about the language).
That said, in general programming is HARD and it's "different" from almost anything else you'll learn, and not everybody is good at it. (Electronics is a little "hard" too because you can't "see" what's going on.)
Most programing books (and online tutorials) teach the language without teaching programming concepts. That's where a class could really help, although my 1st programming class didn't really teach concepts (at least not clearly) and although I did OK (and I got the misimpression that programming was easy) I kind-of felt lost the whole time.
While we are on the subject - The two most important concepts in programming are conditional execution (if statements, etc.) and loops (doing something over-and-over, usually until some condition is reached).
The other thing I never learned from a class or a book is how to "develop", test, and debug, my own code. The trick is to write, test, and debug, small bits of code at a time. As a beginner, that means writing one or two lines of code at a time. But, that takes some skill and experience because the compiler needs to see a "complete program" so you can't just start at the top and work down. The program also has to "make sense" to the compiler and it has to do enough that it can be verified & tested.
So my advice to beginners is: Add to your program little-by-little, test-compiling and test-running as you go-along, and Don't try to write the whole program at once! Of course, professional programmers can write more than a couple of lines at a time but NOBODY writes the whole program at once. (Of course, pros are usually working on bigger programs.)