Can somebody tell me how is it possible, as a programmer, to improve my communication skills and perfect my English as it is not my mother tongue ?
What steps should I follow to improve on these two matters?
Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined in the FAQ. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about closed questions here.
To master any skill, you need to use it.
There's nothing like real-world exposure to really get into a language. The best way would be to spend some time in an English-speaking country (with nobody around to speak any other language). Unfortunately, most of can't afford this kind of luxury, so the next best thing is to grasp every opportunity you can. Participate in English-speaking online communities, watch movies, read books, find native speakers in your area. You may also want to switch the software you use (OS, browser, programming tools) to an English localisation, where that is possible.
The least you can do is read programming documentation and the like in English rather than your native language - the English-language resources are usually better (newer and more complete) anyway, since virtually all programming communities use English as their lingua franca.
I suggest learning English through programming.
Books are the obvious point to start: the next time you need to learn a new language, technique or technology, get a book written in English instead of other ways. All programming "worlds" have authors expressing themselves in interesting ways: Java has Josh Bloch, Lisp has Paul Graham... find your ecosystem's men of letters and make sure to read all they've written.
Interacting with SO itself also leads to enriching your vocabulary, list of idioms, etc.
Other code-related resources I can think of are documentation, podcasts and convention videos/slideshows.
English and Communication are two independant issues.
I would focus on Communication in my mother tongue first, then English should not be an issue as long as you really want to communicate and be understood.
How to learn communication depends a lot on what is available in your country in terms of schools, grants, libraries, internet...