It
helps if you have previous experience with another language. Either basic, pascal, C, or even something like javascript. The syntax is pretty easy. I started learning it though, before the source code was released so, docs were limited and there was a lot of guess-work about the inner workings of the Engine.
The main trouble I had in the early days was learning the flow of the program. There was always this dark cloud of uncertainty when things got executed. Specifically around the client.qc file.
It does help to pick up a mod that is already created that works and tinker with it for test; instead of starting off scratch. Once you learn the requirements for the client/server scheme and feel adept with the syntax and quirks, then you can start from scratch and focus on a new mod.
It also helps if you plan on making a mod to design the game on "paper", (notepad), get all your details and break down every aspect first. Not only is this easy to do, (you are writing pseudo code in english), it also keeps you motivated. As you do code the mod, limitations will define the end result.
I wrote a BBS door in the early 90s in Pascal, which seemed easier at the time, though it was my first time coding in pascal, the compiler let you execute the program and trace through the code so you saw your code line by line being executed, and where it would crash. QuakeC should have something like this built into the engine. If QuakeC coding was akin to programming on an 8-bit computer, (all code typed into the console), then i think there would be more modders, or atleast something fun to see
