Shuld I take lessons on C or Embedded C to programme arduino ?

cr0sh:
What you want to learn is basic, ANSI-standard C/C++ (if you are taking a course, ask the instructor if you can use gcc for development; if an ok is given, then the course will be pretty "standard").

The thing to understand and focus on regarding any programming language is the overall "idea" of programming, and not focus on singular language styles (when you get to this point - which isn't something taught as much as it should - it will just "click", and you'll be able to pick up new languages at will, almost - with the exception of a few weird ones out there that are experimental, older, or not as widely used).

thank you for the advice. but can you explain little bit about gcc..? and yeah...I will learn more languages in the future I guess.but for now to start off I chose C. will I be able to catchup..?