Specific documentation, in general, for WoW emulation programming is sparse. What there is to find is more often than not fragmented, poorly written, outdated, or simply wrong. The good news is, learning how to program is not difficult, providing you have the desire and patience to learn, just as with any other craft that requires time to develop and understand.
Others here have given good suggestions.
Purchasing a book and progressing through it, and
perusing through other people's code, analyzing it and starting to slowly modify it are both excellent methods. Someone else suggested to stay focused and not involve yourself with too many avenues at once; also excellent advice.
If you've never programmed before, then you should expect a long road to expertise. You'll come across labels like "procedural programming" and "object oriented programming" which, in essence, will not matter until you have a mental conception of what
programming means. An important distinction to understand from the beginning, however, is the differentiation of interpreted and compiled languages. A general, basic, quick explanation:
C++ is an example of a compiled language. Meaning, in order to execute it, it must first be
built into an application. The sequence of events that must take place are: writing the source code, compiling the source code into an application, executing the application.
PHP, on the other hand, is an example of an interpreted language. Meaning, an application (an interpreter)
interprets the code dynamically, while executing it. There is no separate compiling step nor a distributable, "stand-alone" executable built by it.
C, C++, PHP, and JavaScript (as well as some others) are very closely related in syntax structure (it could be said that they belong to the same family of programming languages). Learning one will easily translate to one of the others through association. (In fact, often the code from one can be used by one of the others with very minor modifications.) If your goal is to program WoW emulation, then you should start with any ONE of these languages. [My personal opinion would be to start with PHP, only because it is easy to install, execute and debug. There are many tutorials and free books on the web regarding it's programming, and it provides excellent documentation. Also, because you can apply it to both a User Agent (browser application) and a CLI, it becomes very useful in all sorts of ways. It is also built to seemlessly connect to MySQL (and other RDBM) and can, therefore, provide a simple, intergrated and useful learning path for SQL as well.]
Regardless of how you start, at some point you'll need to acquire build tools so you can compile C++ applications. When first starting out, much of what you will be doing will be using a CLI to compile and execute your programs. This is good because its a skill you must acquire AND it will provide a means of relatively immediate feedback (i.e., NOT having to write, compile, launch the WoW servers, launch the client, go in-game, and confirm what you've written is as expected; if not, round and round you go). It will also acquaint you with error messaging (STDERR), arguably the most difficult part of familiarization with any language.
The key is to begin and stay the course. Programming is not something everyone enjoys but it is something that anyone can learn, providing they enjoy it