К сожалению, время от времени я встречаю статьи и просто мнения о том, что высшее образование бесполезно для разработчика и лучше всего не тратить на него свое драгоценное время. Мне есть что сказать по этому поводу и я скажу. 🙂 Эти мнения в большинстве своем очень поверхностные и редко исходят от людей, успешно закончивших хороший ВУЗ и на данный момент занимающихся интересной работой. Разберемся почему так…
Сразу оговорюсь, что если вы рассматриваете высшее образование как процесс подготовки специалистов по определенной специальности, то в большинстве случаем это не так. Особенно это касается таких специальностей как IT, где все меняется очень быстро: языки, платформы, библиотеки, фреймворки, подходы и т.д. Все эти изменения просто не успевают внедрить в программу обучения, да и некому это делать, потому что преподаватели в большинстве своем к современной разработке имеют малое отношение. Мы это в силах изменить и некоторые компании отправляют читать курсы в ВУЗах своих сотрудников. Но большей части из нас, как и свойственно нашему менталитету, проще просто жаловаться на образование и не ударять пальцем о палец для его улучшения. Это была ложка дегтя.
А теперь поговорим о хорошем. Я действительно считаю, что высшее техническое образование дает разработчику ооочень много всего. Начну пожалуй с того, что базовые математические предметы как математический анализ, дифференциальные уравнения, прикладная алгебра, функциональный анализ и другие позволяют сформировать отличное техническое мышление. После прохождения этих курсов вы начинаете понимать, что даже самые неожиданные задачи как расчет натяжения струны или затухающих колебаний можно легко привести к математической модели и строго решить. Вас несколько лет учат строить математические модели по реальным жизненным задачам и решать их. Этот же навык очень сильно пригодится вам при разработке, ведь задача разработчика – это моделирование задач клиента и решение их с помощью средств программирования.
Следующая штука, которую незаметно год за годом дает вам ВУЗ – это техническое мышление. Вы впитываете в себя термины, понятия, формулы, общаетесь с такими же как вы, преподавателями, читаете учебники и в результате у вас складывается оно, техническое мышление. Его нельзя потрогать или измерить, но когда оно есть у вашего собеседника, вы это понимаете.
Небольшое лирическое отступление. 8 лет назад мы давали в качестве обязательных заданий на собеседовании несколько средней сложности математических задачек. Тем, кто не дотягивал до приема на работу, но в ком мы видели потенциал. Так вот, это была самая забавная часть собеседования. Каких только ответов от людей с нетехническим мышлением мы не наслышались. В одной задачке финальный вопрос звучал как: “какова вероятность, что бабушка сядет на свое место в самолете”. Анекдот про блондинку и вероятность встретить в городе динозавра придуман не просто так. Многие не задумываясь отвечали: “это простая задачка, ответ 50% – либо сядет либо не сядет”. У них не было технического мышления…
Следующая важная особенность ВУЗа – это геймификация с оценками в ее основе. Раньше, в советское время, может быть и было важно при приеме на работу какие оценки у тебя в дипломе. В наше время это не более чем геймификация. Вы стремитесь получить более высокие баллы, чтобы подтвердить свое превосходство, выбиться в лидеры, получить признание. Кто-то все зубрит, кто-то просто во всем разбирается, кто-то пытается правдами и неправдами давать взятки, всячески вытягивая себе оценки. Это ли не прекрасно? Вам предстоит на работе заниматься этим всю жизнь. И тут кто-то будет просто программить и особо не лезть на рожон, кто-то будет стремиться показать себя и подняться по карьерной лестнице, кто-то будет хитрить и мутить. Все как в жизни! Только в обучающем режиме, с разными “виртуальными компаниями”. Класс, тренируйся на здоровье! Получи красный диплом любым способом и гордись этим по праву всю жизнь!
Идем дальше. Один из очень классных практических навыков, которые дает развить ВУЗ – это объяснять свои решения группе других людей. Без этого навыка разработчик навсегда останется просто кодером. Для этого все курсы делились на теоретические занятия и практические. На практике вызывали всех и каждый должен был объяснять у доски преподавателю и другим решение задачи. Я вспоминаю как это было забавно в первый семестр: кто-то вообще не мог говорить на людях, кто-то краснел и стоял красным все время, кто-то начинал заикаться, кто-то терялся в уже готовом решении и не мог довести его до конца. Мне в этом плане повезло и я уже пришел очень подготовленным в этом плане, но люди собрались из совершенно разных мест. И тут переплетались все проблемы, включая неопытность, неуверенность, волнение, нехватку знаний. А еще усмешки и подсказки “добрых одногруппников”…
Следующим я бы хотел отметить общее развитие, которое дает тебе ВУЗ. Ведь очень маловероятно, что разработчик самостоятельно нашел бы время и взглянул на историю Беларуси (ну или Украины), философию, психологию, педагогику и прочие обязательные нетехнические предметы. А теперь все больше и больше в интернетах трубят, что без них в IT никуда. А тут тебе в универе как на тарелочке приносят базовые основы, позволяя быть достаточно образованным человеком.
Вот мы и дошли наконец до разработки. Есть базовые предметы, незнание которых делает из вас никудышного разработчика (именно разработчика, не кодера). Например теория вероятности и математическая статистика. Нереально полезные предметы. Как без их знания проводить нагрузочное тестирование и его грамотный анализ? Как планировать горизонтальное масштабирование и рассчитывать динамику роста? Следующая полезные науки – это теория игр и теория расписаний. Без последней тяжко управлять ресурсами, искать бутылочные горлышки, планировать ресурсы. Ну и никак не осознать пользу диаграммы Ганта. 😉 Совершенно отдельные места в подготовке разработчика занимают теория алгоритмов и основы проектирования. Без них хорошему разработчику совсем никуда, да и меняются эти науки не так динамично как другие. И это ведь далеко не полный список: компьютерные сети, операционные системы, базы данных, английский язык и т.д. Все это в вас неторопливо заливают в универе. И неторопливо не потому что не торопятся, а потому что вы не сможете больше потянуть. 🙂
Перейдем к такой замечательной вещи как экзамены. Экзамены учат студента собраться в любой ситуации и добиться результата. Экзамены – это своеобразные дедлайны. Учил или не учил, ходил или не ходил, болел или был здоров – все это неважно. К дедлайну должен все осилить. Экзамены учат работать в стрессовом режиме, запоминать и структурировать информацию в сжатые сроки, выдумывать способы и хитрости как добиться своей цели при любой ситуации. Ну а когда отвечаешь на вопросы преподавателя? Это же прекрасная тренировка собеседований, разговоров с начальником, заказчиком и прочих стрессовых ситуаций. Очень обидно, что вводят тестирование вместо обычных экзаменов и убивают этот очень важный студенческий ритуал.
Лирическое отступление. Никогда не забуду как один раз я сдавал теорию вероятности. Я был отлично готов и преподаватель это знал. А он был очень строгим и мог за малейшую погрешность выгнать с экзамена. Тяну билет и мне попадается теорема с доказательством на 3 страницы. Она одна такая была за семестр. Я схематически ее знал, но поддался соблазну списать с собственного конспекта. И вот я уже почти переписал доказательство как преподаватель резко вскочил со стула. Все кто списывал невольно дернулись и были тут же идентифицированы. Всем было предложено идти отвечать тут же или же покинуть экзамен. Я пошел и все ответил по билету. Преподаватель усмехнулся и потянулся к зачетке: “4 балла могу вам поставить, так как отлично отвечали, но ведь списали”. Но я не собирался сдаваться и предложил ему сделку – 3 любых вопроса из билетов без подготовки. На вопросы я ответил и получил свои 5 баллов. Мораль истории – надо учиться искать решения в критических ситуациях и рисковать.
Статья начинает становиться длинной, а значит скучной. Пора заканчивать, поэтому кратко рассмотрю еще пару моментов. ВУЗ дает вам замечательный статус студента – это вроде уже не школота, но и не работник с его проблемами и заботами. Студенческие годы – самые веселые из всех, потому что вас окружает огромное количество людей, совершенно разных, интересных и непохожих. Именно в универе большая часть заводит друзей и знакомых на всю жизнь. И все это не только благодаря постоянному общению, но и разным спортивным мероприятиям, соревнованиям, походам, развлекательным мероприятиям, военной кафедре, экзаменам и их отмечанию… ВУЗ – замечательная школа жизни и она полезна каждому.
Заключительное слово о специфике IT. Никто же не заставляет вас не работать и не обучаться параллельно на практике разработке. Выделяйте для этого столько времени сколько можете, чтобы в меру успевать с учебой. У нас многие работали уже со второго курса. Большая часть пошла с третьего или четвертого. Я первое время вообще работал на почасовой оплате, часто дорабатывал по выходным. Я дополнял свои знания и навыки тем, чем универ не мог мне помочь (об этом я писал в самом начале статьи).
Но помните, что без некоторых фундамендальных знаний, которые как раз и преподают в университете, вам будет тяжело стать хорошим разработчиком. Кодером, который умеет “запедалить MVC проектик” – да, но не хорошим разработчиком. Уже сейчас не так много кому надо MVC проектики, а в будущем эту работу должны делать низкоквалифицированные кадры или уже готовые фреймворки-конструкторы. Это жизнь…
И я рад, что в других сферах не бродят такие мысли о бесполезности образования или по крайней мере их кто-то усмиряет. Представьте что бы было, если бы хирурги начинали практиковать, научившись разрезать лягушку скальпилем. Или если бы архитекторы брались строить дома и мосты после построения собственной дачи. Страшно представить…
Не хочешь пропускать ничего интересного? Подпишись на ленту RSS или следи за нами в Twitter!