The question is not phrased to our taste at mathoverflow, but the user has a point that this particular Wikipedia page is under-developed.  As David Speyer suggests, it is a very different problem for very large primes than for small ones.  For small primes the simplest algorithms described in Wikipedia are probably the most appropriate.  If the question is instead about the theoretical time complexity, see this review article.

The Discrete Logarithm problem
I'm trying to understand OOP so I can write better OOP code and one thing which keeps coming up is this concept of a delegate (using .NET). I could have an object, which is totally self contained (encapsulated); it knows nothing of the outside world... but then I attach a delegate to it. 

In my head, this is still quite well separated as the delegate only knows what to reference, but this by itself means it has to know about something else outside it's world! That a method exists within another class!

Have I got myself it total muddle here, or is this a grey area, or is this actually down to interpretation (and if so, sorry as that will be off topic I'm sure). My question is, do delegates defy/muddy the OOP pattern?
