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