Долгое время между разработчиками велись ожесточенные дискуссии на тему важности высшего образования. Может ли разработчик ПО стать успешным специалистом и преуспеть в карьере, если у него нет высшего образования, или он всю жизнь будет искать работу, но так и не сможет ее найти?
В этой главе мы рассмотрим преимущества и недостатки высшего образования. Я дам тебе несколько советов, как добиться успеха, даже если дороги жизни не привели тебя к работе в академических кругах.
Уверен, ты знаешь, что это нелегкий вопрос. Задай этот вопрос человеку с высшим образованием, и велика вероятность, что он ответит «да». Задай этот вопрос человеку без высшего образования, и велика вероятность, что он ответит «нет» только в том случае, если у него уже есть работа. Так кто же прав? Переоценено ли высшее образование?
Что же… У меня есть степень в области компьютерных наук, но в самом начале карьеры у меня ее не было. Так что я побывал по обе стороны баррикад. Это означает, что я знаю о том, как получить работу или повышение в каждой из рассматриваемых ситуаций.
Из собственного опыта я знаю, что для достижения успеха высшее образование необязательно, но его отсутствие – ограничивающий фактор. Если у тебя нет высшего образования, то для тебя недоступна часть вакансий, а также продвижение по карьерной лестнице, особенно если ты работаешь в крупной компании. Если у тебя нет диплома, то тебя отсеют еще на этапе рассмотрения резюме. Многие компании, особенно крупные корпорации, фильтруют резюме и кандидатов по их образованию. То есть у некоторых компаний есть четкая и строгая политика найма сотрудников, в которой требуется, чтобы у разработчиков ПО имелось высшее образование. Человек без высшего образования тоже может получить работу в подобной компании – всегда есть исключения, но сделать это будет намного сложнее.
Я не хочу преувеличивать ценность высшего образования; я хочу донести до тебя, что отсутствие диплома ограничит твои возможности. С учетом вышесказанного я верю, что для достижения успеха высшее образование не требуется.
Я знаю много разработчиков, добившихся успехов без высшего образования. Отличный пример – Билл Гейтс. У него нет высшего образования, но посмотри, каких высот он достиг. Бо́льшую часть моей карьеры разработчика ПО у меня не было диплома, но я отлично справлялся со всей работой. В сфере разработки ПО важнее всего иметь нужные навыки и способности. Если ты можешь писать хороший, понятный код, а также решать проблемы, если ты можешь продемонстрировать свои способности, то ты добьешься бо́льшего, чем если просто предоставишь бумажку со своим образованием.
Главное отличие IT заключается в том, что область разработки ПО постоянно меняется. Каждый день появляются новые фреймворки и технологии. Подготовить разработчика ПО к работе в учебном заведении практически невозможно. Пока будут изданы новые учебники и получат одобрение новые учебные планы, многое может измениться.
Конечно, это не означает, что нет областей разработки ПО, в которых все постоянно и ничего не меняется. Многие программы в университетах включают в себя курсы по алгоритмам, операционным системам, теории реляционных баз и другим темам; но правда заключается в том, что когда ты садишься за компьютер, ты редко используешь навыки, полученные в учебном заведении. Бо́льшая часть работы, выполняемая разработчиками ПО, связана с использованием новых технологий и изучением того, как их использовать. Мы редко возвращаемся к основам.
Но это не означает, что базовое образование бесполезно. Способность углубиться в проблему и понять ее не только на поверхностном уровне может быть очень ценной. Для большинства разработчиков главный показатель успеха – наличие опыта.
Мы уже рассмотрели несколько плюсов высшего образования, но давай рассмотрим их более детально.
Высшее образование гарантирует, что ты всесторонне развит в области разработки ПО. Степень по информатике или смежной области не даст тебе знаний и образования, необходимых, чтобы стать хорошим разработчиком, но у тебя будет прочная основа и хотя бы базовые знания.
Конечно, ты можешь заниматься самостоятельно, но в таком случае в твоем образовании могут быть пробелы, которые в будущем негативно скажутся на твоей карьере. Получая высшее образование, ты освоишь математику, языки программирования, операционные системы и алгоритмы; к тому же ты прослушаешь несколько курсов, которые необязательны для твоей повседневной работы, но они послужат хорошей основой или помогут глубже понять то, почему что-то нужно делать определенным образом.