If you want a basic rundown of how CUDA compares to OpenCL and vice versa, read this: http://streamcomputing.eu/blog/2010-04-22/difference-between-cuda-and-opencl/
I myself am just getting started learning CUDA. Currently, I'm reading the book known as "CUDA C by Example". Like MJP already stated, it's very much like C and I haven't used OpenCL yet either.
I'd say they are both a bit overkill for a simple particle engine (unless you're massively drawing and updating millions of particles like rain or snow). I've seen raytracing done using shaders many times before, so it depends on what scale you're doing it on, I guess. Like I said, I'm still learning this myself. ^^