Well, if you have no experience with reading programming languages (like C++ here), then there's no easy way to explain this in a few sentences.
In general, for getResearchPercentByID() it should be sufficient to know that everything in brackets (these {}) after an "if" keyword only takes effect if the condition after "if" is fulfilled. For example,
Code:
if (GET_PLAYER((PlayerTypes)pl).getCurrentEra() < 2)
means that the effects coded afterwards only apply if the player's era is less than 2 (i.e. before the middle ages) etc. I think most of the conditions can be guessed at from their name. The "effect" in this case is most of the time a modification of research
costs, i.e. iResearchPercent *= 2 would mean research costs are doubled.
I wouldn't worry too much about the stuff in getResearchPercentByID(), though, since most of it applies to all civs equally (greatest exception is China, they get gradually slower until the Industrial Era to avoid a snowball effect from their UP), so you should simply go with the modifiers listed in CvRhyes.cpp (they are percentual increases in tech costs, so less is better).
That said, the civs with the lowest modifiers here (Germany and America) don't have to necessarily be the best civs for teching. I think those would be which allow settling large areas without becoming unstable, because ultimately your economy is the deciding factor. An early start can also be a great asset, just look what people are able to pull off with China or India, despite their slow modifiers.