Why to learn?
English to be an IT specialist? Same reason why to learn Latin to be a medic. Another issue is that medical Latin is, frankly, not that Latin of the ancient Roman Empire or even the Church. It is nowadays more of a synthetic. Similarly IT English is not entirely English in a general sense. Let us call it ITnglish.
What is the difference?
ITnglish is not spoken language, neither it is literature, business or any of a dialect. ITnglish is mostly written and read. It is simpler, more formal, does not have much of figures of speech, no humor (almost), no cultural references. On the other hand it is stuffed with lots of terminology, abbreviations, standard phrases. Think of it as some subset of real English.
One does not speak ITnglish. IT specialist does not have to speak on daily basis. Basically it is enough to understand other tech and express yourself so that someone can understand you. In fact the last condition is necessary and sufficient in most cases. There are some debates about necessity of thinking in English, about how important it is to be able to smoothly express yourself without translating on the fly. I'll take a more detailed review on that below.
My central point is that ITnglish exists and should be taken care about appropriately. You have to bear in mind that not all criteria of knowledge of the normal English is relevant. In ITnglish you may have a heavy accent, you could even misspell very common words, but you still can be easily understood by another guy like you. However you must have clear knowledge of some tricky slang. Thus, such rough definitions as 'preliminary', 'intermediate' or 'advanced' in most of the situations, at least in Russia, seem to be a little off topic.
Respectively numerous study programs, courses, schools that offer you those levels may sometimes be irrelevant to your purposes. It does not mean that if you closed intermediate level and you freely understand most of the Hollywood movies, or you are able to travel without having any problem with understanding in hotels and restaurants, you wouldn't do so on IT conference. But sometimes, if you are not a fan of traveling, or you prefer localized subtitles, real English intermediate could be a waste of time and money. More over if you don't from time to time practice even you preliminary English you will finally loose it. Completely.
How to learn?
I myself was lucky to learn the language for more than two years in native environment in Scotland. It was long ago, but learning languages by necessity in the English speaking community worth a lot. I can still even think English in some cases, though the spoken part is long gone. To say it is a best but too extreme way to learn foreign language. I wouldn't do so by choice.
For typical IT specialist, a programmer in particular, with school lessons in background it is not much of a problem how, when or where to learn. It's rather matter of will. You probably don't even need any king of special study. If however it is not question of time or not your employer's requirement. You need just a starting point.
Main problem in the beginning is to find on what actual level you are on. There is three main conditions to check. You read and mostly understand simple text, but still need google to help you - let's say it is a first level. You read fluently, meet some unfamiliar phrases and expressions, but still catch a thought in general - second. Third level - you almost don't need any additional learning to read, however experiencing problems while trying to write down your own thoughts.
For third level actually the start is exactly at place you have a problem with. Just start writing things. Whatever. Program comments, documentation. Make a foreign tech friend, chat with him. Post blog articles. Writing is an action, you don't learn actions without doing them. There is no theory of swimming, no theory for proper writing.
For the second level group my advise would much the same. You read more from now on. Don't try to understand everything. Try to get the meaning of phrases from context. Lookup google only in hardest cases. Additional listening to original speech could be helpful. Movies with original subtitles are preferable. You just see what is going on in the movie so it's simpler to guess. With all that you also start to write simple things. Name variables, write inline comments.
If you are in the first group taking lessons would be the good answer. You probably missed ones in the school or the university. Unfortunately there is no easy way to hack it. Nevertheless you could try to study by yourself. Download some free lectures, do exercises, extend vocabulary and all stuff. Standard university program for IT students is quite a good choice in my opinion. You translate specialized texts, learn by examples close to real life articles. And you read, read, read the fucking manuals.
So when am I ready?
It will sound trite but never. Okay, there is some criteria. When you are able to easily write readable technical documentation. I stress, easily. Not as easy as you would write it in you own language, but close to it. Ideally technical text should be even easier to write in ITnglish, than on any other world language. When you find yourself preferring tech docs to be written in ITnglish may be it's a way to know where to stop. And may be it's time for you to continue with normal English to get to the next grade.
As a matter of a fact it could be good idea for you to start learning real English somewhere in the middle of doing third tech level. Writing process is much more complicated than just reading and understanding. It requires you to either make up sentences in your native and then translate it, or think directly in foreign language. And the last is a rather hard skill. With lack of common words and phrases in your vocabulary you can't do it directly. Translating on the fly is an option but it not for every case and not quite suitable for a dialog. Also you just get tired fast.
So now returning to the issue of thinking directly in ITnglish or normal English. At this point they would almost make up the same. Only that you still don't need to know various everyday idioms, cultural context, humor. There is even special term for that.
Bilingualism
Simply knowledge of some foreign language is not the case. Bilingualism (or multilingualism) is ability not only to speak, read or write, but the way of thinking. This phenomenon is mostly peculiar to multi national countries or to mixed marriages. Generally a child born in such cultural environment is meant to be a bilingual. But if you learned a foreign language and culture to the level when you easily think in it, make (funny) jokes - you are also a bilingual.
It is not just an additional skill. There are studies that show how bilingualism affects brain structure itself. Scientists don't clearly say what are the ways these effects work, are they good or bad, but their existence is not doubted. For me it's good in all the ways. And I'm not telling you about English.
I was again lucky to become a pure bilingual from early childhood. From the time I don't even remember I easily switch from Russian to Yakutian (one of Turkic languages) and wise versa in any minute. And I'm quite confident that this is exactly what helped me much in learning English. Third language just added up at the time when my vocabulary reached some minimum. Like a plugin.
Thus. My last advise would be despite that ITnglish is enough for an IT specialist it is always better to reach to the point when you are bilingual. It trains the brain. It makes you learn other languages easier. And maybe not only natural languages. Who sad this does not help when learning the ones for programming?
*/
End;