Math is very important for programmers. I'm only 14, yet I've sat through some of my dad's Algebra II classes (my dad is a high school teacher) and picked up enough trig to make some primitive graphics demos (trust me, nothing worth seeing
) You do have to know basic Arithmetic and Algebra at least.
On the subject of "Non-programming things you should be good at", I seriously recommend learning English well. There are many multi-lingual programmers, but I would say that the vast majority of programmers speak English, and knowing English is helpful. First of all, because most programming languages are English. No, really, they are! Does "printf" sound like Spanish or Russian? And, many technical terms do not exist in other languages. The words "bit", "byte", and "dword", for example, will make very little sense in Portugeuse. Also, since most programmers speak English, you can get more help by asking questions (in English) in forums like this one. And English speakers prefer you to use good grammar and spelling, if possible, though if you make mistakes we try to be understanding
Other than math and English, it doesn't matter what your background is so long as you study hard and try to be a good learner