About Higher Education

    Each person has a certain outlook. When this horizon narrows to infinity small, then it turns to a point. Then the man says that this is his point of view.

    David Gilbert



    More and more, debates are heard about whether a programmer needs higher education, and, given that the flow of opinions on this, without a doubt, acute topic does not dry out, I decided to express my thoughts. It seems to me that the general disappointment in study is associated with the numerous processes and changes taking place in the profession and needs serious study. Below I will consider the most common misconceptions, myths and the main causes of the phenomenon.

    Are you there?


    Let me remind you again: the University is not a vocational school, they study the structure of nails, and do not teach them to hammer. Universities graduate scientists and engineers, not staff. Also, one should not forget that programmers in our country are graduated from mathematics departments, and officially they are considered mathematicians, although recently there have appeared exactly programmer areas with an orientation towards industrial programming.

    First of all, they teach fundamental knowledge in the university, those that will not become obsolete in a few years to your graduation. An American biologist from the National Institutes of Health wrote to me: “Times change but fundamentals do not change” - times change, but the basics remain. That is why it is better to choose general areas of study and try to take the maximum number of elective courses, which is why physicists in American universities have so many, in the opinion of many, “unnecessary” courses, such as biology, chemistry or literature, instead of specialized ones. Carl Sagan, who studied as an astronomer, mentions in his book that they had laboratory work on genetics and experiments to test the hypothesis of abiogenesis. Not to mention the fact that in the USA, in addition to the main (major), you can get a few (minor) specialties. So when choosing from the theory of evolution and programming Java - better choose the first, perhaps someday this knowledge will be useful in your career or life. You learn the language anyway, and you are unlikely to become especially interested in the history of our planet. After all, narrowing your horizons is always easier than expanding it.

    It should not be considered that the situation in foreign universities is fundamentally different. As a result of many years of parallel evolution all over the world, similar requirements for specialists have developed. You are absolutely right that they will teach you differently , but you are mistaken that you will be taught differently . The universities of different countries have different educational processes, the names and volume of courses, the quality of practice and the level of involvement of students in real science, but the theoretical minimum underlying is approximately the same everywhere. This happens not so much as a result of unification, but for objective reasons: the laws of nature are invariant in all countries. Therefore, a specialist from one country can work all over the world.

    Who are programmers


    To illustrate the importance of the problem, I will turn to an analogy. Imagine that you asked what profession a certain person was, and they answered that he was a builder. With no other information, can you tell what he does? He may be an architect with an art education, an engineer, a foreman, a skilled worker, or a construction waste cleaner. Not to mention that many of these areas have their own specializations. And still he would be called a builder, but, obviously, these are different builders. To put together a doghouse, you do not need a special education, but a skyscraper cannot be erected without it. However, those who deal with the first are usually not considered builders. Programmers are now called anyone. Mathematician involved in algorithms; developer of navigation software at NASA; assembler expert studying viruses; the schoolboy imposing HTML pages - all these are programmers. So before answering the question: does the programmer need education, you should clarify which one. Perhaps, in your particular case, education is really not needed.

    Whether we like it or not, the Strugatsky’s dreams of a world of junior scientists have collapsed. Most people are not going to be scientists or engineers, and they need not a university, but a specialized secondary education, which is taught in an educational institution, now called a college in the European manner. Because, as a rule, their desires and needs do not correspond to the goals of the universities, and the level of the work they offer is little connected with science or engineering. There is nothing terrible in this, since at all times there have always been fewer engineers in any field of work than there are workers. And in the working profession itself, if you like it, there is nothing derogatory, but you do not need to call yourself an engineer. Instead, you need to honestly admit to yourself who you want to become and not require universities to be what they are not.

    Measure seven times


    Each specialty has its own minimum set of required knowledge. In computer science and programming, mathematical courses serve as such a basis; so the question: “does the programmer need education?” usually turns into “does the programmer need mathematics?” or “does the programmer need so much mathematics?” Given that the programmer in the classical sense is an engineer, the question can be formulated in another way: “ Does an engineer need education? ”There are usually no disputes in this regard. The only problem is this: not everyone wants to be scientists and engineers. If the limit of your dreams is a successful game in the App Store, rather than designing artificial intelligence, a cryptographic algorithm or three-dimensional animation programs, you can safely bypass the university to start its implementation, but in this case, knowledge will not spoil your career. Universities do not know what you see yourself in many years and what you plan to do - not to mention the fact that you yourself at seventeen may still not know this. It is believed that it is better to teach you all the basics in advance than to miss something important. In addition, core courses are generally interdependent, and you cannot just pick and remove some of them. And their main goal is not to teach you everything in the world, which is impossible in principle, but to provide you with an approximate map of modern scientific and engineering knowledge, so that when confronted with the unknown, you can make the right decision in which direction to go. interdependent and you can’t just take and remove some of them. And their main goal is not to teach you everything in the world, which is impossible in principle, but to provide you with an approximate map of modern scientific and engineering knowledge, so that when confronted with the unknown, you can make the right decision in which direction to go. interdependent and you can’t just take and remove some of them. And their main goal is not to teach you everything in the world, which is impossible in principle, but to provide you with an approximate map of modern scientific and engineering knowledge, so that when confronted with the unknown, you can make the right decision in which direction to go.

    Back to the math. Almost all books on algorithms require a certain mathematical culture from the reader. Algorithms and data structures - as Nicklaus Wirth said - are programs, and not being able to work with them, you can not be called a programmer. Moreover, this is not necessarily the ability to develop your own algorithms, it is much more often necessary to change others' ones, adapting them to particular cases, but also the ability to prove their correctness and applicability in various conditions, and the ability to analyze their behavior in some situations. Mathematics is actively used in areas such as cryptography, graphics, pattern recognition, working with video, sound and images, mathematical modeling of real processes. In such a seemingly mundane system programming, without serious mathematical knowledge it is impossible to write compilers,

    Mathematics is that framework on which all other knowledge is strung. Alas, many begin to learn the profession from the end. A programmer who has studied programming languages, development tools, various technologies and patterns, but has not mastered the mathematical foundations, resembles an artist who has learned to perfectly understand paints and brushes, has mastered many tricks, but does not know composition, perspective, anatomy and other fundamentals. He may have many brilliant thoughts, but he will not be able to express them, and all that he can count on is to work as an assistant or painting other people's paintings. Occasionally, ignorance of the foundations forms new styles, as, for example, in the case of Van Gogh (to his credit, I must say that he was aware of his problems and took painting lessons from professionals), but more often becomes an obstacle to creativity.he sees it , then in industry the wrong algorithm for generating random numbers, which led to the fact that millions of dollars of honest taxpayers missed the mark, is not justified by anything.

    At the same time, we must not forget that for most programmers, mathematics is more a tool than science, and it needs to be taught this way, especially the first courses, each time explaining to students why they need it.

    As for humanitarian and other non-core courses, their importance is emphasized not only by the fact that it is desirable for any person to be cultural and educated, but also because the human mind is extremely unpredictable and sometimes draws inspiration from a variety of sources. My Russian language teacher told me the story of the Soviet era, when they decided to save money at one aviation university and stopped reading literature courses. And what would you think? Soon, the level of graduated engineers decreased. The literature had to be returned. So these courses are needed. Unfortunately, they are often terribly taught that they by no means add to their popularity; but we are talking about the idea itself, right?

    So if you do not use the knowledge gained at the university, then the problems are most likely not in them, but in your work, which does not allow you to be realized. It is foolish to blame your university for incorrect knowledge if a person has learned to design encryption algorithms and works as a manager in a construction company.

    Why do we need universities?


    Well, you say, but than regular education is better than self-education? After all, programming is not genetic engineering — laboratories are not needed, and you can learn the whole theory yourself. In fact: university curricula are known, many courses are open, any book can be bought, borrowed from the library or read on the Web. However, not everything is as simple as it seems. Mathematics, unlike technologies and programming languages, is very difficult to learn. You may not know that you are doing something wrong until they tell you about it. Personal communication is also of great importance, for example, you can listen to a lecture for several hours and not understand anything, and during the break, ask the teacher for answers to all questions. Some programmers still need laboratories and conditions, for example, those who want to program microprocessors with a unique architecture,

    Studying at a university is also an opportunity to do internships at companies and organizations that you would not be allowed to enter otherwise. This is an opportunity to do science, write articles and participate in conferences, which is a condition for working in the research laboratories of many companies, for example, Samsung. Almost all serious technologies were developed at universities, and some, in particular, the famous LLVM, generally grew out of student projects. Well-known companies were founded by scientists and graduates in the walls of universities: Silicon Graphics, Sun Microsystems, Yahoo, Adobe and many others.

    Last but not least, without formal education, and with a specialized one, the doors of many organizations will be closed to you; in others, you will have to prove your professionalism each time and be much better than your competitors, since all other things being equal, they will have an advantage. Also, without it, it is almost impossible to get a work visa to decent countries.

    By the way, the requirement of “some kind” of education without specifying a profile is largely a Russian invention, since in all the English-language vacancies I have looked at, I always indicate the desired degree, direction or experience equivalent to them.

    When they knock from below


    The problem is global in nature, but it is most acute in programming. And that's why. Lowering the entry threshold played a cruel joke on the profession. Initially, all development tools were written by experienced programmers to simplify their lives. These technologies are only useful if you understand what processes are taking place in them. Thus, they allow you to write more programs in less time, but their quality depends solely on your knowledge and skills, since development tools do not yet know how to think and make informed decisions for you. Then someone decided that simplifying programming would attract more professionals to the profession, many even dreamed of a time when all people, regardless of their abilities, could write programs. Be afraid of your desires. Alas, now they have become a reality in many ways, and not at all as was supposed in the seventies. The proliferation of low-cost equipment and the ease of development have led to the flow of low-skilled programmers into the market. And the offer, as Cyril Norkotot Parkinson found out in the last century, creates demand. But it’s not enough to write a program, it still needs to be distributed. The appearance of many online program stores just provided this opportunity to everyone. Google, Apple, Microsoft and other companies that opened them are primarily interested in the largest possible number of programs for their platforms, and they also release development tools for them. In such conditions, the tools are simplified even more, which ultimately led to a further decrease in the initial level of programmers. as expected in the seventies. The proliferation of low-cost equipment and the ease of development have led to the flow of low-skilled programmers into the market. And the offer, as Cyril Norkotot Parkinson found out in the last century, creates demand. But it’s not enough to write a program, it still needs to be distributed. The appearance of many online program stores just provided this opportunity to everyone. Google, Apple, Microsoft and other companies that opened them are primarily interested in the largest possible number of programs for their platforms, and they also release development tools for them. In such conditions, the tools are simplified even more, which ultimately led to a further decrease in the initial level of programmers. as expected in the seventies. The proliferation of low-cost equipment and the ease of development have led to the flow of low-skilled programmers into the market. And the offer, as Cyril Norkotot Parkinson found out in the last century, creates demand. But it’s not enough to write a program, it still needs to be distributed. The appearance of many online program stores just provided this opportunity to everyone. Google, Apple, Microsoft and other companies that opened them are primarily interested in the largest possible number of programs for their platforms, and they also release development tools for them. In such conditions, the tools are simplified even more, which ultimately led to a further decrease in the initial level of programmers. that a flood of low-skilled programmers poured into the market. And the offer, as Cyril Norkotot Parkinson found out in the last century, creates demand. But it’s not enough to write a program, it still needs to be distributed. The appearance of many online program stores just provided this opportunity to everyone. Google, Apple, Microsoft and other companies that opened them are primarily interested in the largest possible number of programs for their platforms, and they also release development tools for them. In such conditions, the tools are simplified even more, which ultimately led to a further decrease in the initial level of programmers. that a flood of low-skilled programmers poured into the market. And the offer, as Cyril Norkotot Parkinson found out in the last century, creates demand. But it’s not enough to write a program, it still needs to be distributed. The appearance of many online program stores just provided this opportunity to everyone. Google, Apple, Microsoft and other companies that opened them are primarily interested in the largest possible number of programs for their platforms, and they also release development tools for them. In such conditions, the tools are simplified even more, which ultimately led to a further decrease in the initial level of programmers. The appearance of many online program stores just provided this opportunity to everyone. Google, Apple, Microsoft and other companies that opened them are primarily interested in the largest possible number of programs for their platforms, and they also release development tools for them. In such conditions, the tools are simplified even more, which ultimately led to a further decrease in the initial level of programmers. The appearance of many online program stores just provided this opportunity to everyone. Google, Apple, Microsoft and other companies that opened them are primarily interested in the largest possible number of programs for their platforms, and they also release development tools for them. In such conditions, the tools are simplified even more, which ultimately led to a further decrease in the initial level of programmers.

    The result of all this was the illusion of ease of programming, the attitude towards it, as to something frivolous, which does not require special knowledge and education, and this opinion has developed not only among the employees themselves, but also, which is much worse, among inexperienced customers and employers. Many have seen advertisements with an impressive list of necessary skills, languages, libraries and technologies, numerous responsibilities - except perhaps courier services - which would more than be enough for several vacancies, and a modest, if not ridiculous salary.

    It is difficult to imagine in such industries as, for example, the aircraft industry, because where human lives are at a price, they carefully select personnel and use numerous filters to weed out incompetent engineers. Nobody needs millions of insurance payments, license stripping and reputation loss. So, an aircraft designer can be either good or none, because no one will let the bad one go to the plane, no matter what low salary he asks for. Quite differently in programming, in which there is no lower bound, and any programmer, no matter how low he is, will not be left without work. The fact that our civilization is still alive, only says that most of the work they do is not critical, and it’s not that nobody needs it, but you could easily do without it, and problems in it do not lead to disaster. Imagine that all computer games in the world suddenly stopped working, is this a disaster? Of course no. Of course, this is a global problem, but certainly not a disaster. And if the same fate befell airliners, the results will be tragic. Of course, in programming there is a serious and responsible work with a hard screening associated with risk, but it is much less.

    Warranties and real life


    Of course, what has been said does not mean that the very existence of education or knowledge of mathematics will turn everyone into a world-class programmer. Everyone knows that most university graduates do not work in their field. And I personally know many mathematicians who write awful programs. In the end, you may not have programming abilities. I am generally against the use of simplified criteria. Everything is important in life: education, knowledge, grades, scientific work, practice, and your desire.

    Many people perceive the words about the social elevator too simplistically, in reality, the university is more of a social ladder, and to come to the desired, you need to go by yourself. Education does not guarantee you a good job if you did not make the effort yourself. And if you did not participate in any projects during your studies and started looking for work only after graduation, then you are not interested in programming.

    How are they?


    Bill Gates, Mark Zuckerberg, Larry Allison. Reading the success stories of famous people, many fragile minds think like this: "if they could, then I can." Maybe. But keep in mind that success is a multifaceted concept: it is one thing to become a successful marketer and quite another to be an outstanding programmer. Nevertheless, it is no secret that some world-famous programmers do not have an education, but when trying on their own lives, remember that they are rare happy exceptions among many losers. If someone jumped out of the window and stayed alive, this does not mean that you should not use the stairs. Similarly, it is not necessary (a very common mistake) to confuse paper with education: the fact that they have not completed their studies does not mean that they have not studied at all. Almost all of them studied for several semesters, attended the first courses and gained some knowledge, but, for example, Steve Wozniak, after many years, still returned and completed his studies. Their intellectual abilities and character are no less important: as a rule, they are all bright, intelligent, talented and somewhat genius personalities, from the very beginning who know what they need, purposeful, engaged exclusively in what they like, and have phenomenal operability. They did not ask someone else's opinion and did not impose their own. Nevertheless, some of them, for example, John Carmack, regret that in their youth they considered themselves the most intelligent and did not learn anything. from the very beginning they know what they need, purposeful, engaged exclusively in what they like, and possess phenomenal performance. They did not ask someone else's opinion and did not impose their own. Nevertheless, some of them, for example, John Carmack, regret that in their youth they considered themselves the most intelligent and did not learn anything. from the very beginning they know what they need, purposeful, engaged exclusively in what they like, and possess phenomenal performance. They did not ask someone else's opinion and did not impose their own. Nevertheless, some of them, for example, John Carmack, regret that in their youth they considered themselves the most intelligent and did not learn anything.

    If you are like them, I sincerely wish you success, otherwise is it not better to use proven paths?

    Also popular now: