The students already seem to have passed the EGE and are about to go to apply to universities. Programming and IT-technologies are in stable demand, approximately as legal and economic specialties 10 years ago.
In this article I will tell how higher education for IT works, how to choose an IT specialty correctly.
The article will be useful not only for prospective students-2015, but also for high school students who have already decided to connect their lives with IT.
Do I need to go to university to become a programmer?
There are many points of view on this question and I am sure that in the comments it will be raised more than once. In my humble opinion, higher education is not a prerequisite for becoming an IT specialist, as well as a guarantee of this. But it can be a solid foundation for professional growth.
')
You can read books, participate in the OpenSource community, work on oDesk and in a few years you will be an experienced developer, without a higher education. True, nothing prevents this all from being done in parallel with studying at a university, except for one’s own laziness.
You can enroll, take tests and exams, get a diploma and not become a professional programmer as a result - there are millions of such stories.
A good university provides, above all, excellent conditions in order to receive knowledge, experience, connections and grow as a person. And it depends only on you how you will use them (and whether you will at all).
Let's accept conditionally that you have already made the decision to get higher education in the field of IT, and we will go further.
Bachelor, Specialist and Master
Since the Ministry of Education decided to integrate Russia into the Bologna higher education system, years have passed and much has changed. Previously, all IT people could only get a diploma. This year the last graduates graduated (with the exception of specialties, where the term of study is more than 5 years).
Now you can become a bachelor, then a master, and then go to graduate school for the Russian equivalent of Ph.D.
What really changed?
In the old curricula for “specialists”, the number of hours was reduced by one year, while the most complex disciplines were either deleted or reduced. Many academic topics from the field of algebra, probability theory, physics will remain unlighted for the bachelor. In a number of specialties, where programming is an auxiliary competence (for example, information security), various programming technologies came under the knife - from web development to parallel programming.
For the rest, neither the theoretical material nor the teaching methods have changed. Reduced the amount of material. If at some university they used to give laboratory for Pascal, then they still give them.
At the same time, master's curricula can boast a novelty. You can write about this separately if there is a demand.
It should be borne in mind that a bachelor is not a ready employee who can come to an employer with a red diploma and ask for an average salary in a hospital. The bachelor knows something, something knows how from technologies, but as a rule does not know how to work in a team, a large team and completely independently solve specific practical problems. In the terminology of the developers, this is Junior, promising in 2-4 years to become Middle Developer. In many companies, internship programs with a mentor for 6-12 months are arranged for such graduates without experience.
Applied and academic baccalaureate
Of course, the fact that the specialty was simply reduced by 20% could not please the Ministry of Education. Few can please the "unspecialist", who now knows even less. Therefore, from 2015, applied baccalaureate will be introduced everywhere as an alternative to incomplete academic education.
In short, the applied from the academic is different from the new curriculum, where all disciplines are focused on graduating the employee who is as ready as possible for real work tasks. Without internships and other smut for the employer. For example, a “mathematician-programmer” can come out of an academic bachelor’s program, and from a applied “Developer .Net”, “Developer of relational databases” or “C ++ programmer”. The latter are more interesting to the labor market immediately after graduation, but the first after graduation from the bachelor’s program must go to the magistracy and continue to swing their competencies in order to qualify for higher positions after graduation. Another useful thing is participation in the curriculum of the applied bachelor's program of employers (as a base of practice) and IT vendors.
Despite the fact that, in my opinion, the idea is sound and its implementation was started 5 years ago in 44 pilot universities, I have not yet encountered any qualitatively new teaching materials or graduates who are ready for independent work. I suppose that in the next 2-3 years nothing will change and there will not be a significant difference in the preparation of academic and applied bachelor degree. Nevertheless, if you have already decided to be a master, go to the academic, if after 4 years of study you plan to go to work, and to return to the magistracy “someday” - then apply.
University teaching
If they study at school, then they study at the university. And the difference here is huge. No one will force to learn. If you want to get a diploma - sit, sort it out, ask your classmates. A teacher is simply a carrier of knowledge who can explain this knowledge. His goal is to tell, yours is to understand. If you do not understand something - the teacher still fulfilled his goal. Even if in some cases it is not so - it is better to think in this particular paradigm, there will be less disappointment.
The quality of teaching lies precisely in how well the teacher conveys to you the knowledge of what practical competence you gain. For example, it is possible to convey the principle of OOP in the Delphi programming language, or in C # or Java. You will understand OOP anyway if you try, but acquaintance with C # or Java languages ​​will be useful for you in the future, when preparing term papers, during part-time work or further employment.
Teaching is an inert thing. The more the teacher reads the same course on the example of the same technologies - the better he is able to convey the knowledge to the students. But IT technologies are changing too quickly, so two extremes are possible:
- the teacher reads to you what is morally obsolete, but you understand perfectly
- the teacher talks about the latest technologies, but you still have big gaps in understanding something (if you do not fill them in your own books, on StackOverflow or MSDN, then it will remain so).
There are wonderful teachers who update 30% of their teaching material every year, but not everyone is ready for such efforts.
In addition to crushing the undergraduate program into academic and applied, now the standards of education are also being updated from the second generation to 3 and 3+. With so many changes in teaching, there is a risk that the next 2-3 students will be prepared worse than the next ones. And that means - you need to make more personal efforts.
Choosing a university and specialty, it is desirable to know Who and What will tell you. Before the final choice - find out from current students, read VK student groups.
The choice of specialty
So, you decided to get a higher education, to become a programmer. And not just a programmer, but, for example, it is a Web developer specializing in frontend. It's cool that at 18 years old there is already a purpose in life, but I hurry to upset. In our country there is such a thing as higher education standards and they are much more abstract than you would like.
A complete list of higher education standards can be found
here . Not all still have generation 3+ standards, but until the end of the year they will. I recommend reading these boring documents.
Mathematical software and administration of information systems (MOAIS).
Specialty, giving the best conditions for the development of developer competencies.
You will learn: programming technologies in different languages ​​(usually in 4 years you will get acquainted with at least three programming languages ​​- for example: C ++, C #, Lisp, or C ++, Java, Python), development and administration basics of relational and object-oriented databases, network technologies , application development "client-server", "client - application server - database server", parallel programming.
Education provides an understanding of programming in principle, for a couple of months you are able to learn any programming language and develop in it; understanding how any program works, how to solve most computational problems. After receiving a diploma from you strong Junior, but once you understand the specific tasks and tools in a particular company, the baggage of knowledge will be enough to qualify for Middle.
After work experience and a good magistracy in this specialty, you can not just make programs and information systems, but also get acquainted with the principles of developing high-load systems, managing a team, planning development and applying for a Senior and Team Lead.
Fundamental informatics and information technologies (FIIT).
The specialty is close to MOAIS, but is focused on computational experiments and research tasks.
In other words, as a programmer, you will be in the best shape, but you will be almost useless for solving practical business problems. But you have a valuable frame for R & D departments, research laboratories and research teams. Education in this specialty in a good university allows you to choose a job around the world, working well-known companies. Initially it is assumed that the bachelor will be only the first step of your education.
Quite a real story: after receiving a bachelor's degree at Moscow State University, to enroll in the master's degree CalTech. Of course, physics, algebra and mathematical analysis should be your passion.
Computer Science and Engineering (ICT)
The specialty is focused on the education of system programmers working with “iron”. You will have programming skills in robots, real-time systems, and working with a blowtorch. With this kind of education, you don’t want to develop boring accounting systems and web applications, but your further career can begin as a video surveillance engineer in a small private security company, and in a large-scale robotics laboratory (by itself after completing the master’s program).
In my opinion with purely programmer specialties everything. Below is a list of specialties where programming is also taught. But if the specialties on top of the curriculum is designed so that the programmer graduated, then the specialties below are Specialist in something with programming skills.
Not just a programmer
Software engineering
A relatively new specialty that prepares essentially software managers. This specialist looks over development tasks, manages requirements, functionality, versions, development teams. In the first courses you will learn programming technologies and, perhaps, a couple of languages, but further in the curriculum there will be more and more about software development management. You can start your career as Junior Developer, but instead of further upgrading to Middle, you will become a project manager.
Applied Informatics
Releases system analysts with a broad outlook in IT and business. They also know how to program, but they are really good at writing technical tasks, formalizing business processes and communicating effectively with developers who are in high abstractions. You can become a project manager or even a director of your company if you have such ambitions.
Business Informatics
Very close to applied computer science, but the graduate’s managerial competencies are much stronger. You can be an IT application consultant or manage the IT policy of a small holding. After receiving a diploma, start working at least in support, but the career goal of an “IT director” can be achieved in a few years.
Information systems and technologies
Focus on the administration of information technology and the correct choice of software and hardware for the tasks of the corporate LAN. Programming will be, but at the procedural level, closer to the scripts and configuration files.
Mathematics and Computer Science
A large portion of fundamental knowledge will allow you to work as an informatics teacher at school, and as an analyst in a large company. In a good university, this specialty is subject to scientific research and can also be a start in R & D for those who prefer mathematical sciences to physics.
Information Security
The first course is often similar to specialties like MOAIS, where they program a lot and in different languages, but then it stops. You do not have to write code, you have to understand how any code can attack. Networks and operating systems will be familiar to anyone else, you can call yourself a hacker, but you will have to work in the field of security, with legal documents, and not just with a firewall and sniffer.
It is important to understand that everything depends on the particular educational institution. This is like the HTML standard and its implementation on the website of the provincial beauty salon. There are universities where students of all specialties attend the same lectures. There are universities where MOAIS studies Visual Basic and Pascal, writes macros to Excel, and studies databases using Access as an example. If in your hometown is such a university, then it's time to buy train tickets.

The choice of specialty for admission is extremely important, since it determines the future career and, perhaps, the whole life. This is essentially the first independent choice in life and the error will be measured in years. Therefore, it is early to “exhale” after the exam, it's time to learn as much as possible about the nearest university, its students and teachers. Good luck.
PS I suggest Habrap users to share personal experience: what specialty in which university helped you to become such a wonderful developer.