Если вам приходилось изучать в последнее время рынок айтишного труда, вы наверняка заметили, что безумный рост зарплат в сфере сегодня совсем сошёл на нет. А при найме кадровики стали гораздо более внимательно относиться к скиллам претендентов.
Времена, когда можно было прийти на собеседование, умея лишь писать программы в стиле “Hello world” и уйти с него с жирным предложением, закончились. А за средний набор скиллов сегодня можно получить только среднюю зарплату. Почему это происходит и что нужно делать, чтобы всегда работать на топовых проектах и получать много денег? Сейчас расскажем!
Юристы, сантехники и менеджеры тоже хотят кодить!
Большие зарплаты в IT манят людей. И сегодня на этот рынок лезут все — студенты, менеджеры, домохозяйки, сантехники, математики и юристы. Они осваивают определенный набор языков и технологий и идут заколачивать бабло, уютно устроившись в офисном кресле. Двухмесячные курсы верстки на HTML – и новая боевая единица рынка информационных технологий готова производить на свет простенькие веб-страницы за довольно посредственную зарплату.
Лучший способ сохранить свои позиции на рынке — копить опыт. Под словом “опыт” мы имеем в виду не количество человекочасов, втупую проведенных за решением однотипных задач. Опыт — это разнообразие проектов, рабочих ситуаций и инструментов, с которыми вам приходилось сталкиваться. Специалист, проработавший 5 лет и запустивший 20 разнообразных проектов, имеет куда большую техническую смекалку и интуицию, чем специалист, запустивший за 5 лет 50 однотипных проектов.
Сфокусируйтесь на разнообразии своей работы и инструментов — это выгодно отличает вас от тех, кто работал с ограниченным наборов проектов и технологий.
Учите разные языки. Осваивайте разные парадигмы программирования (функциональную, объектно-ориентированную, событийно-ориентированную). Запускайте свои маленькие проекты, чтобы расширить набор своих компетенций — игры, мобильные приложения, утилиты, консольные серверные программы. Чем разнообразней ваш опыт — тем выше ваши заработки.
Дом начинается c фундамента
Приток людей в айти привел к тому, что сегодня далеко не все программисты знакомы с основами компьютерной науки. Да, такие инженеры могут писать код, но они совершенно не представляют, как этот код работает. Для них программа — это просто набор букв, который магическим образом что-то делает на компе.
Знакомство с фундаментальными принципами информационных технологий дает вам понимание того, как можно оптимизировать свой код, ускорять его в разы, делать софт более надежным и изящным. Компьютеры работают по четким и логическим правилам, и эти правила применимы к любому коду, запущенному на железе.
Разберитесь в том, как компьютеры работают с памятью, дисками и сетью, как устроены операционные системы и каким образом буквы из вашей программы превращаются в машинные инструкции. Рекомендуем книги о сетях и операционных системах профессора Танненбаума, теорию компиляции кода Ахо и Ульмана, пратики написания кода Стива МакКоннелла.
Крепкий инженерный фундамент отличает профессионалов от любителей, оказавшихся в индустрии случайно.
Программирование стандартизируется
Задачи в IT с течением времени становятся все более похожими друг на друга: запиши вот это в базу данных, обрежь картинку вот так, сделай вот такую витрину магазина с вот такими кнопками. Растет число людей, которые легко справляются с однотипными задачами. Найти специалиста, который напишет серверное приложение для, допустим, электронной коммерции, становится всё проще и дешевле. И поэтому зарплаты таких инженеров растут не так активно — всегда найдется кто-то, кто сделает работу относительно недорого.
Хотите больше денег — идите в нетривиальные области разработки: искусственный интеллект, анализ данных, сложные алгоритмы, высокие нагрузки. Чем сложнее предметная область — тем меньше инженеров в ней работает. Легко найти программиста для разработки торговой площадки. Сложно найти спеца, который сделает высоконагруженную обработку видеопотока нейронными сетями.
Все решает мозг
Программирование — это в первую очередь ясное и логичное мышление, способность проектировать алгоритмы, упорядочивать хаос и умение производить на свет изящные и точные решения для сложных проблем. И только во вторую очередь это умение обращаться с языками, шаблонами проектирования и фреймворками.
Важно тренировать свои высокоуровневые интеллектуальные навыки — креативность, логичность, способность ясно излагать мысли и идеи, умение видеть структуру. Программист ценен этими способностями, а не умением прочитать документацию к очередной библиотеке и скопировать из нее куски кода. Те, кто предпочитает расслабиться и работать прокладкой между доками к фреймворку и редактором для кода — быстро скатываются по карьерной и зарплатной лестнице. А в перспективе ближайших лет такие люди вообще покинут рынок — тупые операции постепенно заменяются машинным интеллектом.
Качайте свой интеллект. Спортивное программирование, изучение классических алгоритмов, дискретной математики, теории графов, линейной алгебры, игра в шахматы — все это упражняет мозг и развивает ваши базовые интеллектуальные способности.
Мощный базовый интеллект делает из вас разработчика совершенно другого качества, чем специалисты, которые лишь умеют гуглить алгоритмы и засовывать их реализацию в очередной фреймворк. Быстрый и ясный ум всегда хорошо оценивается в материальном эквиваленте.
“Специализация — удел насекомых”
Так говорил писатель Роберт Хайнлайн.
Большинство инженеров замыкаются на одной области. Например, только разработка мобильных приложений. Или только разработка бэкенда. Некоторые специалисты не удовлетворяются такой ограниченностью и пробуют совершенно разные области. Это превращает программиста в универсального солдата, способного решать сложные инженерные задачи на стыке разных технологий.
Специалист, который знаком с мобильной разработкой, системным администрированием, backend-системами и системным программированием, способен решить практически любую задачу (ну или правильно сформировать команду и пути решения для разруливания любой инженерной проблемы). Специалист с широким техническим кругозором — большая редкость и удача для любой IT-компании.
Пишите. Напишите мобильное приложение. Напишите backend приложения. Напишите свою простую игру, тривиальное ядро операционной системы, приложение для микроконтроллера, прошивку для умного устройства.
Способность смотреть на задачи с разных сторон дает вам огромное преимущество на рынке.
Бег на месте
Чёрная Королева сказала Алисе, что нужно бежать, чтобы просто оставаться на месте. А чтобы куда-то попасть, нужно бежать ещё быстрее.
В IT каждый знает это на своей шкуре. Технологии меняются молниеносно, и специалистам приходится заниматься таким бегом на месте, чтобы остаться на плаву на рынке труда. Но уж если вам приходится бежать — составьте план тренировок, поставьте цели. И, конечно же, получайте удовольствие от своих упражнений.
И тогда у вас всегда будут мега-интересные проекты в работе и много койнов на счету.
Оригинал статьи размещен здесь: https://mcs.mail.ru/blog/kak-ne-prevratitsya-v-bomzha-esli-ty-razrabotchik/