The computer science professors usually say to their students that the more one learns and the later one starts to work, the greater salary one can expect. Opinions on this issue can vary, but in the light of the recent problems of education in IT, this topic worth discussion. One can say that the issue of education in the field of IT is very important. The companies usually look for the programmers of two types. Those are the working hands, who can do the job entrusted to them, and the creative brain, who can generate new ideas, propose new approaches to the issues and to develop new directions for the projects. To work as a programmer of the first category, it can really be enough to attend a pair of institute courses and to read some relative books before bedtime. The second category is much more difficult... Actually, those people have to be the real experts and have the higher level of knowledge, but it must be wider than the one required for the work only.
Thus, if you are ready to work as a working hands programmer, you can get a job without special IT-education. Therefore, you have to cultivate your love for the subject, to develop self-organizational skills, the ability never to do things by halves and to self-learn rapidly. Well, and to convince the potential employer in your own utility.
However, to work as a creative brain the higher education at the good University is necessary. For example, education in the IT or applied mathematics spheres will be a great specialty for a future programmer. Without education, you are unlikely to become a serious programmer. Here are some of the suggested spheres you should be good at to become a programmer: data structures, discrete mathematics (graphs, disjunction conjunctions), functional logic programming (lambda functions and so forth.), matrix transformation, OOP programming (patterns), design (UML), the theory of algorithms (Turing machines, RAM-machine complexity classes), systems analysis, computer networks (OSI levels), system programming (flow processes, semaphores), the theory of databases (relational algebra, normalization, OLAP), artificial intelligence (neural networks, genetic algorithms).
Sounds not so easy, right? That list excludes the most interesting subjects such as analytic geometry, linear algebra, and probability theory of integral calculus. So, to become a successful programmer one needs to obtain a 5-10 years education.