Как стать программистом: самообразование, ментор или вуз?
Их называют "девы" (от "developer"), прогеры, кодеры, айтишники. Сегодня – в 256-й день года – они отмечают свой профессиональный праздник. В невисокосный год программисты "гуляют" 13 сентября, в високосный – 12-го. А вот реально ли "превратиться" в программиста – узнавали журналисты сайта "24".
Уместно сказать, что дата выбрана не случайно – символическое число 256 (два в восьмой степени) тесно связано с компьютерами и выбрано потому, что это количество чисел, которые можно выразить с помощью одного байта (единицы измерения объема данных).
С чего начать?
В первую очередь разобраться – нужно ли вам программирование вообще. Ведь тот факт, что сейчас в IT платят действительно немалые деньги, не означает, что всем нужно программирование и все будут получать массу удовольствия от подобной профессии, отметил в комментарии сайту "24" основатель аутсорсинговой IT компании SoftFormance, блоггер, автор книги "Веб-разработка с Python и Django для Начинающих" Виталий Подоба.
Для того, чтобы определиться, стоит ответить на несколько таких вопросов:
• получаете ли вы удовольствие от 8 и более часов в день за компьютером?
• нравится ли вам проводить время наедине со своими мыслями или предпочитаете шумную компанию и общение с другими?
• в школе вам больше нравились точные или гуманитарные науки?
• вам нравится однообразная работа или лучше ежедневно решать совсем другие, новые проблемы?
• философский вопрос: представьте свой идеальный день в случае, если у вас есть достаточно денег и времени, будет ли там программирования?
Если нет жестких возражений на казалось бы простые вопросы, тогда эксперт советует несколько возможных сценариев, с которых можно начать свой путь в программирование:
1. ВУЗ: стандартный путь, который забирает 5 лет и дает хорошие базовые знания (конечно, если студент проявляет желание получить их). Однако это не очень привлекательный вариант, когда вам уже не 18 или когда результат вы хотите получить быстрее, чем за 5 лет.
2. Учебные курсы: бывают разных типов и довольно часто дают неплохую теоретическую и частично практическую базу для дальнейшего поиска работы в качестве программиста.
3. Ментор: друг или знакомый программист соглашается помогать вам освоить непростую профессию программиста.
4. Самообразование: наверное, самый тяжелый вариант в начале, ведь здесь вы остаетесь сами, без специализированной помощи извне. В любом случае, знайте, что без самообразования ни один из вышеприведенных сценариев не сработает.
Моя история входа в IT сферу в качестве программиста состоит из двух сценариев: ментор+самообразование. Я не имею специализированного образования, связанного с программированием или IT. В 2006-м закончил "мехмат" ЛНУ,
– рассказал Подоба.
Где учиться?
Если вы только заканчиваете школу и в процессе выбора вашего дальнейшего пути, тогда имеет смысл выбрать ВУЗ, отмечает эксперт, ведь базовое IT образование даст глубокое понимание многих нужных технологий, а количество контактов, которые вы там получите, поможет быстрее найти желанную работу. Или даже собрать собственную команду единомышленников.
Многие мои знакомые, которые учились на прикладной математике, уже на 3-м курсе успешно работали программистами,
– рассказывает основатель аутсорсинговой IT компании SoftFormance.
Если же вам уже давно не 18, или вы просто не имеете роскоши в 5 лишних лет – ВУЗ будет не лучшим вариантом. Отрасль программирования довольно широкая и многие специализации не требуют (по крайней мере в начале) глубоких знаний, которые дают в "альмаматер". Соответственно, можно сэкономить немного времени и уже в пределах 1-2 лет с нуля получить первую работу программиста на позиции джуниора (младшего программиста с небольшим опытом работы). Конечно такой экстерн-вариант потребует от вас значительных вложений времени и усилий. Однако это возможно.
Я сам потратил 1,5 года на освоение программирования, и большая часть студентов, которые проходили у меня персональное менторство, вкладывались в 2 года до получения первой работы джуниором,
– отметил Подоба.
Экстернат-вариант
Никакие курсы не дадут вам 100% готовности для работы джуниором. Для этого нужно будет приложить достаточно много собственных усилий и самостоятельно набить резюме реальными (или приближенными к реальным) проектами.
Для тех, кто не хочет или не имеет возможности учиться программированию целых пять лет, существует более короткий путь освоения престижной профессии.
• Теоретические школы программирования (типа ШАГ).
• Более практические курсы при крупных IT школах.
• Опять же – поиск и работа с персональным ментором.
• Более практические курсы от других программистов. Сейчас их довольно много. Например, вот здесь.
• Ну и никто не отменял самообразование. Ведь сейчас есть тонны бесплатной и платной информации, онлайн курсов, видео уроков и других учебных ресурсов в интернете.
Язык, технология, направление
Есть два лагеря программистов, которые рекомендуют два абсолютно противоположных подхода:
Первый лагерь рекомендует выбирать простейшие языки и технологии, чтобы старт с нуля был максимально простым и давал быстрые маленькие победы, отмечает Подоба. Таким образом, увеличиваются шансы, что новичок не сдастся на полпути. В этом случае, уже имея определенную практику программирования, он будет иметь еще довольно большие пробелы в понимании важных азов программирования, которые впоследствии придется догонять. Таким образом, первый лагерь рекомендует выбирать интерпретируемые языки программирования (например Python, PHP, Ruby) и более простые технологии и направления (например Интернет).
Второй лагерь, наоборот, рекомендует начинать с серьезных более сложных технологий и языков. Таким образом, сразу с головой погружаясь во все тонкости и сложности программистских парадигм и шаблонов. Для того, чтобы джуниор не просто мог "кодить", но и имел хорошее понимание базовых концепций, этот лагерь рекомендует начинать с таких, как например, C, C++, Java.
По словам эксперта, более успешным является подход первого лагеря. Поэтому лучше начинать с более простых языков и технологий. Одной из самых любимых связок, по мнению Подобы, является современный динамичный язык программирования Python и направление веб-разработки.
Английский
В основном IT-компании в Украине работают на аутсорс. То есть выполняют заказы клиентов из-за рубежа. Таким образом, в большинстве случаев, желательно иметь минимум средний уровень английского и выше. Ведь программист обычно коммуницирует напрямую с клиентом на английском языке.
Средний уровень (intermediate) владение английским является требованием даже для джуниора. Довольно часто хорошего программиста не берут на работу только из-за отсутствия английского, подчеркивает автор книги "Веб-разработка с Python и Django для Начинающих". Читать, писать и переводить – это то, что должен уметь каждый программист. Разговорный же английский требуется уже для высших рангов – синьор (senior), лидер команды (team lead).
Не только язык программирования
Программирование – очень динамичная профессия. Ежедневно приходится изучать что-то новое и решать принципиально иные проблемы. Технологии растут, как грибы после обильного дождя.
Однако в начале своего пути стоит сфокусироваться на одном языке и направлении. Это поможет быстрее и глубже овладеть ими и приблизиться к своей первой работе, отмечает эксперт.
Даже при этом вам придется разбираться со смежными отраслями программирования, а также улучшать свои так называемые софт-скиллы: администрирование операционной системы, производительность и персональный менеджмент, методологии разработки и работу в команде, коммуникации с клиентом, быстрый набор текста, делегирование задач другим, планирование задач и много других вещей.
Какую работу выбрать?
По мнению Подобы следует выбирать более простой язык и технологии. Со временем вы всегда сможете переключиться на более сложные и, возможно, иногда более интересные направления.
Одним из наиболее простым и легкодоступных направлений считается веб-разработка.
Что касается компании – на сайте dou.ua можете посмотреть подробный список компаний, которые заинтересованы в начинающих.
Этот список довольно важен, ведь далеко не каждая компания хочет работать с начинающим и тратить свой ресурс на их образование. Позиций джуниор на рынке в разы меньше, чем мидлов и синьоров.
Зарплата
Начинающий программист может со старта рассчитывать на 300-500 долларов в месяц. Дальше – веселее. Средняя зарплата программиста по Украине, согласно социальным опросам сайта dou.ua, достигает 1500-2000 долларов в месяц.
Поэтому, посвятив 1-2 года на освоение, на первый взгляд, непростой профессии, вы сразу будете получать более чем достаточно.
Читайте также: IT в Украине: эксперты про "конверты" и тонкий риск