The debate about whether programmers need to get a higher education or self-study and some specialized courses are enough, does not cease for many years. In professional environment it is possible to hear diametrically opposite views, each of which is quite reasoned and from its point of view looks logical.
In fact, both answers, “yes” and “no” are correct, but for different cases. It is important to understand that today the word “programmer” refers to an entire industry. And as in any field of activity, there are major scientists pushing the industry forward, there are engineers involved in complex developments. And there are ordinary technicians who solve applied tasks or code fragments under the guidance of the lead developer.
For example, even a schoolboy can create simple sites on CMS. And to take part in projects on creation of artificial intelligence will require a powerful mathematical base, which is almost impossible to get without higher education. And therefore the first thing worth sorting out is the level of ambition and capabilities.
Self-education: pros and cons
You can really learn any programming language and start creating websites or applications on your own. Today there are a huge number of textbooks, video tutorials, training courses, including free ones. Large corporations create a lot of tools which allow you to create some program systems with minimal knowledge. As a result, the “threshold of entry” into the profession has noticeably decreased.
On the one hand, this allows you to start earning money with programming in the minimum time. On the other hand, such approach flooded the market with low-level specialists. As a result, the cost of services of a novice specialist has fallen. And the quality of many software products leaves much to be desired.
Nevertheless, self-training has its advantages:
Allows you to learn the basics of the profession in a short period of time (up to 2 years);
Avoids the need to study a lot of theory, which is rarely needed after graduation;
Gives the opportunity to get a new profession at any age;
Helps build practical skills and a portfolio.
It is important to understand that successful self-education is impossible without self-discipline and programming abilities. Certain personal qualities are also important. For example, even an excellent aptitude to mathematics and strong logical thinking will not help you to become a programmer if you are not assiduous and ready to spend hours and days or sometimes even weeks working with code, looking for errors and defects in it.
Self-taught programmers usually realize themselves in the following directions:
- Web programming;
- Creating mobile applications;
- Development of applied computer programs;
- 1C programming;
- Integration and implementation of ready-made software systems (adjustment, revision, maintenance);
- System administration, maintenance of local networks, etc.
In most cases, programmers without a diploma begin their career in the freelance markets, where they gain practical experience and portfolio. After successful completion of several projects, you may apply for a job in a small company or develop your own freelance brand, and later even open an IT company specializing in certain services.
If this career option corresponds to your dreams, then years of study at a university may indeed be unnecessary.
But when you’re young, it’s hard to predict how life will turn out. And in the staff of a major company without a degree is extremely difficult to get. Some organizations will refuse you, no matter what. Others will only consider you if you manage to prove yourself as a talented developer with a good portfolio. But even then an applicant of your level, but with a degree will have advantages.
It is also important to know: when emigrating or finding a job in Western companies the diploma will be especially important. And, in the West, there is no Russian version of “some diploma. Here you will be required to have a specialized education. There are exceptions to the rule, but only for real “nuggets” and geniuses. Are you sure you will be among them?
Training at the university: what you need to understand
Nowadays the sphere of IT is very dynamic. New software solutions appear all the time, programming languages develop and requirements and standards change. Programs of higher educational institutions simply don’t keep up with all these changes. As a result, students of IT-specialties complain about “useless knowledge” and necessity to be constantly engaged in self-education besides basic subjects.
In fact, there is no task for universities to keep up with all the trends. Higher education is aimed at something else – to give extensive well-structured basic knowledge and teach how to learn. And this situation is observed not only in Russian universities.
When studying in Europe or America a similar situation is observed. Depending on the institution and the country, the approaches, learning features, the amount of practice and facilities change. But the basic program remains almost the same – a maximum of mathematics, a wide list of additional “general” courses, algorithms, application of mathematical and logical base in practice. And the most important skill – the ability to work with information, which will allow in the future to quickly obtain the necessary knowledge.
And the study of modern programming languages and coding itself – is a skill that every programmer should develop yourself. After all, you will have to study all your life.
Advantages of training:
- System approach. Unlike self-study you will not miss anything important just because you have no idea about this field of knowledge.
- Availability of information. At the university, in addition to textbooks, students are waiting for lectures, practical classes, the opportunity to get advice from the teacher, if something is not clear, to communicate with other students.
- Higher mathematics. Programmers are considered almost everywhere, first of all, as mathematicians. And at universities pay a lot of attention to this subject. Mathematics is really one of the important tools of algorithmic design of complex tasks. Often professionals understand years later why they were taught mathematical analysis or graph theory in their first year.
- General educational background. No one knows in what field a programmer will work years later. Some will be working on games or programs for the office. Someone will develop automation systems for industrial complexes, such as in metallurgy or the chemical industry. And someone will be invited to work in aeronautics, space, AI and other innovative industries. Therefore, the broader the outlook, the greater the likelihood of building a career in a variety of fields.
- A graduate programmer can safely be called an engineer. Whereas, as a result of self-education, specialists more often stop at master level, i.e. they know “how to do it”, but without mathematical basis do not fully understand why it works this way. Naturally, such a comparison is only acceptable for real specialists, i.e., people who have studied and not just “got a diploma.”
What do employers think?
Practice shows that when choosing between two professionals of approximately the same level, preference is given to a programmer with a degree. The only exception is a specialized IT-companies and startups, where the project manager can really assess the skills and features of each applicant, and choose a person with the right knowledge and approach to work.
It is believed that certified programmers are more disciplined, they have the basic knowledge to work with projects of different directions. A junior with a diploma is much easier to find a decent job than a self-taught person. And even after years of successful work, the lack of a diploma can be a reason to refuse employment or career advancement.
However, the options of successful activity without higher education we considered above. And if you know for sure that you will never apply for a job at Apple or Microsoft, and you do not see after reading the other reasons for admission to college, study yourself. Time is a very valuable resource. It is not worth wasting it.