Если вам приходилось изучать в последнее время рынок айтишного труда, вы наверняка заметили, что безумный рост зарплат в сфере сегодня совсем сошёл на нет. А при найме кадровики стали гораздо более внимательно относиться к скиллам претендентов.

Времена, когда можно было прийти на собеседование, умея лишь писать программы в стиле “Hello world” и уйти с него с жирным предложением, закончились. А за средний набор скиллов сегодня можно получить только среднюю зарплату. Почему это происходит и что нужно делать, чтобы всегда работать на топовых проектах и получать много денег? Сейчас расскажем!

Юристы, сантехники и менеджеры тоже хотят кодить!

Большие зарплаты в IT манят людей. И сегодня на этот рынок лезут все — студенты, менеджеры, домохозяйки, сантехники, математики и юристы. Они осваивают определенный набор языков и технологий и идут заколачивать бабло, уютно устроившись в офисном кресле. Двухмесячные курсы верстки на HTML – и новая боевая единица рынка информационных технологий готова производить на свет простенькие веб-страницы за довольно посредственную зарплату.

Лучший способ сохранить свои позиции на рынке — копить опыт. Под словом “опыт” мы имеем в виду не количество человекочасов, втупую проведенных за решением однотипных задач. Опыт — это разнообразие проектов, рабочих ситуаций и инструментов, с которыми вам приходилось сталкиваться. Специалист, проработавший 5 лет и запустивший 20 разнообразных проектов, имеет куда большую техническую смекалку и интуицию, чем специалист, запустивший за 5 лет 50 однотипных проектов.

Сфокусируйтесь на разнообразии своей работы и инструментов — это выгодно отличает вас от тех, кто работал с ограниченным наборов проектов и технологий.

Учите разные языки. Осваивайте разные парадигмы программирования (функциональную, объектно-ориентированную, событийно-ориентированную). Запускайте свои маленькие проекты, чтобы расширить набор своих компетенций — игры, мобильные приложения, утилиты, консольные серверные программы. Чем разнообразней ваш опыт — тем выше ваши заработки.

Источник: https://www.survivalistboards.com

Дом начинается c фундамента

Приток людей в айти привел к тому, что сегодня далеко не все программисты знакомы с основами компьютерной науки. Да, такие инженеры могут писать код, но они совершенно не представляют, как этот код работает. Для них программа — это просто набор букв, который магическим образом что-то делает на компе.

Знакомство с фундаментальными принципами информационных технологий дает вам понимание того, как можно оптимизировать свой код, ускорять его в разы, делать софт более надежным и изящным. Компьютеры работают по четким и логическим правилам, и эти правила применимы к любому коду, запущенному на железе.

Разберитесь в том, как компьютеры работают с памятью, дисками и сетью, как устроены операционные системы и каким образом буквы из вашей программы превращаются в машинные инструкции. Рекомендуем книги о сетях и операционных системах профессора Танненбаума, теорию компиляции кода Ахо и Ульмана, пратики написания кода Стива МакКоннелла.

Крепкий инженерный фундамент отличает профессионалов от любителей, оказавшихся в индустрии случайно.

Источник: https://archive.4plebs.org/

Программирование стандартизируется

Задачи в IT с течением времени становятся все более похожими друг на друга: запиши вот это в базу данных, обрежь картинку вот так, сделай вот такую витрину магазина с вот такими кнопками. Растет число людей, которые легко справляются с однотипными задачами. Найти специалиста, который напишет серверное приложение для, допустим, электронной коммерции, становится всё проще и дешевле. И поэтому зарплаты таких инженеров растут не так активно — всегда найдется кто-то, кто сделает работу относительно недорого.

Хотите больше денег — идите в нетривиальные области разработки: искусственный интеллект, анализ данных, сложные алгоритмы, высокие нагрузки. Чем сложнее предметная область — тем меньше инженеров в ней работает. Легко найти программиста для разработки торговой площадки. Сложно найти спеца, который сделает высоконагруженную обработку видеопотока нейронными сетями.

Не тратьте время на освоение нового модного фреймворка, решающего стандартную задачу новым способом. Потратьте его на изучение сложных алгоритмов, проектирование отказоустойчивых архитектур и машинного обучения. Чем сложнее и нестандартнее ваши умения — тем выше заработок.

Решайте алгоритмические задачи на Hackerrank, Project Euler и других ресурсах, посвященных алгоритмическим упражнениям. Попробуйте свои силы в спортивном программировании на TopCoder. Потренируйтесь работать с алгоритмами машинного обучения на Kaggle. Решайте задачи по взлому и безопасности в соревнованиях по взлому Capture the Flag. Способов прокачать свои навыки в тяжеловесных айти задачах много — выбирайте любой.

Все решает мозг

Программирование — это в первую очередь ясное и логичное мышление, способность проектировать алгоритмы, упорядочивать хаос и умение производить на свет изящные и точные решения для сложных проблем. И только во вторую очередь это умение обращаться с языками, шаблонами проектирования и фреймворками.

Важно тренировать свои высокоуровневые интеллектуальные навыки — креативность, логичность, способность ясно излагать мысли и идеи, умение видеть структуру. Программист ценен этими способностями, а не умением прочитать документацию к очередной библиотеке и скопировать из нее куски кода. Те, кто предпочитает расслабиться и работать прокладкой между доками к фреймворку и редактором для кода — быстро скатываются по карьерной и зарплатной лестнице. А в перспективе ближайших лет такие люди вообще покинут рынок — тупые операции постепенно заменяются машинным интеллектом.

Качайте свой интеллект. Спортивное программирование, изучение классических алгоритмов, дискретной математики, теории графов, линейной алгебры, игра в шахматы — все это упражняет мозг и развивает ваши базовые интеллектуальные способности.

Мощный базовый интеллект делает из вас разработчика совершенно другого качества, чем специалисты, которые лишь умеют гуглить алгоритмы и засовывать их реализацию в очередной фреймворк. Быстрый и ясный ум всегда хорошо оценивается в материальном эквиваленте.

“Специализация — удел насекомых”

backhand index pointing up Так говорил писатель Роберт Хайнлайн.

Большинство инженеров замыкаются на одной области. Например, только разработка мобильных приложений. Или только разработка бэкенда. Некоторые специалисты не удовлетворяются такой ограниченностью и пробуют совершенно разные области. Это превращает программиста в универсального солдата, способного решать сложные инженерные задачи на стыке разных технологий.

Специалист, который знаком с мобильной разработкой, системным администрированием, backend-системами и системным программированием, способен решить практически любую задачу (ну или правильно сформировать команду и пути решения для разруливания любой инженерной проблемы). Специалист с широким техническим кругозором — большая редкость и удача для любой IT-компании.

Пишите. Напишите мобильное приложение. Напишите backend приложения. Напишите свою простую игру, тривиальное ядро операционной системы, приложение для микроконтроллера, прошивку для умного устройства.

Учите языки. А, я же уже говорил про это. Но почему бы не повторить? Освойте функциональный язык. Освойте объектно-ориентированный язык. Освойте ассемблер. Не на уровне профессионала, просто поиграйте с этим, поваляйте дурака на выходных.

Способность смотреть на задачи с разных сторон дает вам огромное преимущество на рынке.

Источник: http://forum.feldsher.ru/

Бег на месте

Чёрная Королева сказала Алисе, что нужно бежать, чтобы просто оставаться на месте. А чтобы куда-то попасть, нужно бежать ещё быстрее.

В IT каждый знает это на своей шкуре. Технологии меняются молниеносно, и специалистам приходится заниматься таким бегом на месте, чтобы остаться на плаву на рынке труда. Но уж если вам приходится бежать — составьте план тренировок, поставьте цели. И, конечно же, получайте удовольствие от своих упражнений.

И тогда у вас всегда будут мега-интересные проекты в работе и много койнов на счету.

Источник: http://kino-ussr.ru/