Путь программиста

Моя знакомая частенько задавалась вопросом, почему программисты постоянно ходят такие счастливые. Ответ, к которому она пришла, был простым и обескураживающим: потому что они работают на любимой работе и у них дохрена денег. Добро пожаловать в мир программистов.

Зарплата программиста

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

Все дело в том, что главным фактором, влияющим на зарплату программиста, является не его квалификация, а место работы. Иногда, при одинаковой квалификации, разница между хорошим и плохим местом может достигать 2-10 раз(!)

В каждый конкретный момент времени ваша квалификация постоянна. Вы не можете за месяц стать опытнее в два раза и получать в два раза больше. А вот сменить за месяц работу и получать в два раза больше – очень даже можете. Однажды, в течении двух месяцев моя зарплата выросла в три раза(!) - незабываемое впечатление. Давайте же выясним, где лучше всего работать.

Вот три фактора, которые очень сильно влияют на уровень зарплат в компаниях:

  1. Является ли разработка ПО основным бизнесом компании.
  2. Ориентирована ли компания на международный рынок или на внутренний.
  3. Собственником фирмы является западная компания или отечественная.

Обратите внимание, что город, в котором вы живете не играет решающей роли. Т.е. если вы получаете в 10 раз меньше, живя в Урюпинске, чем ваш знакомый в Москве, значит, в дело вступили перечисленные выше факторы.

Конкретные цифры

Я привожу расклад зарплат для Киева. В СПб зарплаты на 10% выше, в Москве где-то на 20%. Не встречал ни одного города-миллионника, где бы зарплаты были на 30% меньше чем в Киеве. Так как вы все из разных городов, предлагаю увеличивать приведённые мною цифры, в соответствии с указанной шкалой:

Москва +20%
Санкт-Петербург +10%
Киев (3 миллиона)
Город с населением миллион и больше -20%
Город с населением меньше миллиона -30%

Вот сколько может зарабатывать Java Senior Developer с пятью годами опыта работы, в зависимости от уровня компании в которой работает:

Уровень Зарплаты Описание
1 $200 - $500 На самом низу находятся фирмы, где ИТ – это непрофильное направление бизнеса компании, заказчик - внутренний рынок, а собственник - государство. Например, ИТ отдел в налоговой или другой государственной организации.
2 $500 - $1500 Ниже среднего находятся ИТ отделы различных не государственных структур: банков и т.д.
3 $1,000 - $2,500 Средний уровень – это фирмы, которые занимаются разработкой ПО
4 $3,000 - $4,000 Выше среднего – это фирмы, которые занимаются разработкой ПО, и заказчики у них с запада
5 $4,000 - $5,000 На самом верху – фирмы, занимающиеся разработкой ПО, заказчики у них с запада, и собственник тоже. Их мало. Открытые вакансии имеют не часто, и попасть туда не просто. Но они есть.

Местные продуктовые компании России - это где-то четвертый уровень.
Местные продуктовые компании Украины - это нонсенс.
Население Украины меньше населения России в 3 раза, количество программистов меньше в 2 раза, количество ИТ-компаний меньше в 30 раз.

Что самое странное в сложившийся ситуации?

Половина всех программистов работает в фирмах уровня 1 и 2.

Хотите узнать, в чем подвох?

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

Я знаю двух Java Junior'ов, один из которых пошел работать на $100 (в фирму уровня 1), а второй на $1,000 (уровень 4). А люди продолжают работать в банках и гос.структурах. Зачем?

Спрос превышает предложение – не идите работать туда, где мало платят. Есть места гораздо лучше!

Вывод 1: Средние зарплаты Java-программистов в Киеве - около $1,200

Вывод 2: Ваша средняя зарплата, через 5 лет, если вы не пойдёте работать в фирмы уровней 1 и 2, будет около $3,000

Чего можно добиться, если не тупить

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

План

0-3 месяца (Ученик)

Вы знаете о программировании очень мало. Может учили в школе и/или университете, но очень поверхностно.

Ваша задача – учиться программированию и изучать Java.

Ваша цель – устроится на работу Java Junior’ом в компанию не ниже 3-го уровня.

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

3-15 месяцев (Java Junior Developer)

Вы уже работаете программистом, и ваш опыт растёт с каждым днём. Не прохлаждайтесь. Вам ещё многое предстоит сделать, чтобы можно было почивать на лаврах.

Ваша задача – изучать технологии, которые понадобятся вам, как Middle разработчику. Какие именно технологии? Мир меняется. Я сейчас насоветую, а жизнь все поменяет. Найдите в интернете несколько вакансий и посмотрите, что для них требуется. Обязательно прочитайте книгу Брюса Эккеля «Философия Java».

Ваша цель в первый год работы Java Junior’ом – это дорасти до уровня Java Middle. Никто не говорит что это очень легко, но вполне возможно для целеустремлённого человека. Это сразу даст скачок ЗП до полутора тысяч.

2-й год работы программистом (Java Middle Developer, level 1)

Вы хорошо потрудились в прошлый год, и теперь вы - Java Middle Developer. С зарплатой в полторы тысячи можно нормально жить. На работе вам дают серьёзные задания, и ваш опыт растёт как на дрожжах. Вы дорастёте до Java Senior Developer за два года. Нет смысла ускорять этот процесс. Сильного роста в зарплате вы все равно не получите.

Ваша задача – начать изучение английского языка. Сейчас это не очень критично, но в будущем будет существенно тормозить вашу карьеру, урезать зарплаты и мешать переходу в компанию пятого уровня. Рассчитайте свои усилия так, чтобы через три года вы имели уровень владения языком близкий к разговорному. Не стоит откладывать это на потом: свободного времени у вас больше не станет, к тому же, вероятно, у вас появится семья, или пополнится, если уже есть.

Ваша цель – выбрать несколько технологий, в которых вы будете специализироваться как Senior разработчик. Всего вам все равно не изучить. А быть гуру в небольшой области – это хорошее решение.

3-й год работы программистом (Java Middle Developer, level 2)

Вы уже опытный Middle разработчик и начинаете подумывать – стать Senior Developer. Это приятно и престижно. Ваша зарплата превышает 2 тысячи долларов. С этого момента спрос на таких профессионалов как вы превышает предложение. Вы всегда сможете устроиться на работу за пару дней и вряд ли будете получать меньше чем сейчас. Если, конечно, не выкинете какую-нибудь глупость.

Ваша задача – продолжить изучение английского языка и выбранных технологий. Работайте лучше. Не ради работодателя, ради вас самих. Проситесь в проекты с перспективными технологиями (такими как Big Data, на момент написания этой статьи). Вы все равно будете проводить в офисе 8 часов в день, так почему бы не получить за это немного больше денег и, что гораздо важнее, ценнейший опыт, который вам ещё понадобится.

Ваша цель – сменить работу. Хороший коллектив есть везде. Вы столкнётесь с новыми проектами и технологиями. Не стоит раньше времени прирастать к стулу. Если вы все ещё работаете в компании третьего уровня, подумайте над переходом на четвёртый уровень. Пятый уровень, хоть и очень привлекательный, пока недостижим.

4-й год работы программистом (Java Senior Developer, level 1)

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

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

Ваша задача – ещё раз просмотреть выбранные вами технологии. Возможно, вам нужно сменить специализацию. Мир изменился, технологии изменились, да и знаний у вас за два последних года прибавилось. То, на чем вы сейчас остановитесь – станет вашим выбором на несколько ближайших лет. Самое время выбирать любимые технологии.

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

5-й год работы программистом (Java Senior Developer, level 2)

Вы определились с вашим будущим и работаете над воплощением вашей мечты. Правильно выбранное направление в совокупности с желанием идти вперёд и результат не заставил себя ждать. Поздравляю. Я рад, что ещё одним счастливым человеком стало больше.

Есть одна мудрая истина. Люди часто переоценивают чего можно добиться за один год, и недооценивают, чего можно добиться за пять лет. Оглянитесь на пять лет назад. Так оно и есть.

Ваша задача – не принимать глупых решений и не идти на поводу у лени.

Ваша цель – выбрать направление и двигаться дальше. А вы думали это конец? Вспомните свой 11-й класс. Это не конец, это только начало.

Будущая специализация

Вы можете развиваться как технический специалист (верхняя ветка), как управленец (нижняя ветка) или как наемный профессионал/независимый консультант (средняя ветка). Все зависти от ваших предпочтений.

Карьера программиста

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

Что же нужно, чтобы стать таким высококлассным и востребованном в мировом масштабе программистом? Вы должны иметь большой опыт в самых новых и востребованных технологиях. Как этого достичь? Ответ ниже.

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

1 Вы начинаете быстро набирать опыт работы в реальных проектах. Один год опыта работы программистом может дать вам больше знаний и навыков в вашей специальности, чем 5 лет университета. Опыт – это настолько значимый показатель, что в IT-вакансиях зачастую пишут «требуется Java-программист с тремя годами опыта работы».

2 Вы по 8 часов в день изучаете новые технологии, а вам за это ещё и щедро платят. Значимость этого фактора трудно переоценить. В некоторых случаях полученные навыки настолько ценны, что ради их получения можно работать бесплатно, а то и доплачивать. Если вы грамотно выбираете проекты, на которых соглашаетесь работать, то вас ждёт головокружительная карьера программиста.

Вот только, что же выбрать?

Зачастую, если вы не знаете, какие технологии будут вам полезны, вы начинаете выбирать технологии по принципу «нравится, не нравится» или «модно, не модно». Тут уж как повезёт. Так что, лучше знать заранее, куда вы хотите попасть.

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

Двухсотлетний программист

Если больше всего вам нравится программировать, то ваш путь: Senior Developer, затем Tech Lead Developer и архитектор. Также вы можете просто работать программистом лет 50. Зачастую зарплаты старших программистов и техлидов превышают зарплаты их менеджеров. Не прогадайте.

Менеджер. Тебе повезло, ты не такой как все.

Вы перешли на сторону врага. Шучу. Если у вас открылись недюжие организаторские способности, то ваш путь: Team Lead, а затем Project Manager. Это даст вам шанс стать директором и поможет при открытии своего дела. Вы ведь этого хотите, не так ведь?

Украсть трактор.

Если вы успели завести семью и детей, то возможно вы хотите тихой и безбедной жизни в стране со стабильной экономикой. Задумываетесь над иммиграцией в Канаду, США, Швейцарию или даже Австралию. У вас есть хороший английский и востребованная профессия. Вам не придётся начинать с мойщика посуды. А, например, с Java Senior Developer. Да ещё и, вероятно, на большую зарплату. Не так уж и плохо.

Посмотреть весь мир, кроме Парижа и не умирать.

У вас ещё нет семьи, и вы хотите попутешествовать. oDesk – ваше все. Найдите себе заказчика, обговорите с ним рейты – от $20/час, берите ноутбук и вперёд. Вашей зарплаты должно хватить, чтобы нормально жить в любой стране мира. Почему бы не приступить к исполнению своей мечты прямо сейчас?

Я не хочу ничего программировать, я – девочка.

Если вы – девочка, то можете уйти в декрет. Звучит как сексисткая шутка, каковой и является. Впрочем, тут есть большая доля здравого смысла. Скорее всего, при уходе в декрет вы сможете получить кучу декретных денег (обычно не больше 4-х ваших месячных зарплат). Есть компании, которые не платят ничего, есть и другие, которые платят очень хорошо. Одна моя ученица, уходя в декрет получила более $8,000. И это весной 2009 года. В разгар массовых увольнений. А годика через полтора вы можете вернуться обратно, как минимум Middle разработчиком.

Если ваша зарплата составляет $2,500, и вы провели в декрете полтора года, то недополучили около $50,000. Детей все равно заводите, но на нянечках не экономьте.

Программирование – это комфортно.