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

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

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

Хочу рассказать о зарплатах программистов. Как собственно обстоят дела с зарплатой, куда лучше идти работать, а куда - нет. Если вы не программист и попытаетесь самостоятельно разобраться в этой теме, то можете получить набор очень противоречивых данных. Все дело в том, что главным фактором, влияющим на зарплату программиста, является не его квалификация, а место работы. Иногда, при одинаковой квалификации, разница между хорошим и плохим местом может достигать 2-10 раз(!) В каждый конкретный момент времени ваша квалификация постоянна. Вы не можете за месяц стать опытнее в два раза и получать в два раза больше. А вот сменить за месяц работу и получать в два раза больше - очень даже можете. Однажды в течении двух месяцев моя зарплата выросла в три раза(!) - незабываемое впечатление. Давайте же выясним, где лучше всего работать. Вот три фактора, которые очень сильно влияют на уровень зарплат в компаниях:
  1. Является ли разработка ПО основным бизнесом компании.
  2. Ориентирована ли компания на международный рынок или на внутренний.
  3. Собственником фирмы является западная компания или отечественная.
Обратите внимание, что город, в котором вы живете не играет решающей роли. Т.е. если вы получаете в 10 раз меньше, живя в Дрездене, чем ваш знакомый в Нью-Йорке, значит, в дело вступили перечисленные выше факторы.

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

Сложно привести какие-то конкретные цифры для всего мира. Я дам описание ситуации для Восточной Европы, которая в целом справедлива для всех стран, где более-менее развит IT-outsource/outstaff. Ниже приведен расклад зарплат программистов для Киева – это крупный центр ИТ-аутсорса Восточной Европы. В СПб зарплаты на 10% выше, в Москве где-то на 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 На вершине - фирмы, занимающиеся разработкой ПО, заказчики у них с запада, и собственник тоже. Их мало. Открытые вакансии бывают нечасто, и попасть туда непросто. Но они есть.
Что самое странное в сложившийся ситуации? Половина всех программистов работает в фирмах уровня 1 и 2. Хотите узнать, в чем подвох? Есть сотни открытых вакансий программистов в фирмах уровня 3 и 4. Эти компании готовы предложить более высокие зарплаты и, обычно, гораздо лучшие условия труда. Я знаю двух Java Junior’ов, один из которых пошел работать на $100 в месяц (в фирму уровня 1), а второй на $1,000 в месяц (уровень 4). Зачем получать меньше? Спрос на программистов превышает предложение – не идите работать туда, где мало платят! Вывод 1: Средние зарплаты Java-программистов в Киеве - около $1,200 в месяц Вывод 2: Ваша средняя зарплата, через 5 лет, если вы не пойдёте работать в фирмы уровней 1 и 2, а пойдете работать в фирмы уровня 3 и 4, будет выше $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 за два-три года. Нет смысла ускорять этот процесс. Сильного роста в зарплате вы все равно не получите. Ваша задача - изучите паттерны проектирования, прочитайте «Совершенный код» МакКоннела. Улучшайте качество своего кода и свои навыки работы в команде. Можно взять за правило каждую неделю читать одну книгу по ИТ. Тогда через год, вы будете на 50 книг умнее остальных. Не стоит откладывать это на потом: свободного времени у вас больше не станет. Вполне вероятно, что у вас появится семья, или пополнится, если уже есть. Ваша цель - выбрать несколько технологий, в которых вы будете специализироваться как 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) Вы определились с вашим будущим и работаете над воплощением вашей мечты. Правильно выбранное направление в совокупности с желанием идти вперёд и результат не заставит себя ждать. Поздравляю. Я рад, что ещё одним счастливым человеком стало больше. Есть одна мудрая истина. Люди часто переоцениваю чего можно добиться за один год, и недооценивают, чего можно добиться за пять лет. Оглянитесь на пять лет назад. Так оно и есть. Ваша задача - не принимать глупых решений и не идти на поводу у лени. Ваша цель - выбрать направление и двигаться дальше. А вы думали это конец? Вспомните свой выпускной класс. Это не конец, это только начало.

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

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

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

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

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

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

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

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

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

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

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

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

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

Мне почти 40, и я из поколения программистов-кустарей и программистов-самоучек, получивших высшее техническое образование в советском ВУЗе в начале-середине 90-х, когда обучение было иным и даже такое понятие как computer science в наших ВУЗах еще отсутствовало. Оно было только за рубежом, и о таком термине и о соответствующей дисциплине я ничего не знал вплоть до 2007 года, когда начал активно ходить на собеседования и позиционировать себя на рынке труда.
Может быть, этот рассказ будет полезен молодым специалистам, нащупывающим себя в IT-отрасли, дабы избежать каких-то ошибок и построить свою карьеру по-иному.

IT в моей жизни.

Вот основные вехи моей «славной» IT-биографии. Самое интересное в ней, пожалуй, было в период 1990-1995 и 2000-2010 гг.
  • 1973-1985. Периодически находил в журналах и книгах картинки и фотографии компьютеров и внимательно их рассматривал.
  • 1981. Увидел микрокалькулятор и был поражён его «фичами». Хотел сделать такой же самостоятельно, но, естественно, ничего из этой затеи не вышло.
  • 1985. Мечтал о программируемом микрокалькуляторе БЗ-34. Выписывал журнал «Наука и Жизнь», где публиковались программы для него (раздел «Человек с микрокалькулятором», позже сменившийся на «Человек и компьютер»). Позже, в 1990(?) году, мне купили калькулятор МК-52, с ППЗУ и расширенным набором команд. Я вводил в него программы. Ни о каких других компьютерах я не имел понятия. Знал только, что есть ЕС ЭВМ, но что это такое – толком не ведал. Кажется, была такая у нас в школе, и я ее видел в 4-м классе.
  • 1987. В журнале «Моделист-конструктор» появилась схема персонального компьютера «Специалист». Начал готовить плату для него, но не было микросхем. Увидел у приятеля «Микрошу», загружаемую с кассетного магнитофона. Это улучшенный вариант «Специалиста». Очень понравилось. Игры, «Тетрис», «Змея», Бейсик. Взял напрокат «Микрошу» сам. Ввел в него все программы, которые были. Пытался написать сам что-то на «Бейсике». Ездил к знакомым, у них был компьютер «Спектрум», загружался с магнитофона. Я играл в игры.
  • 1988-1989. Средняя школа. 9-й класс. Информатика. «Агаты». Писал программы на «Бейсике» по школьному курсу (геометрия - лежат ли точки на одной прямой, все школы - «Шашки», «Дурак» (карточная игра). Физматшкола при «МИЭМ». КУВТ «Ямаха». 1 год - «Бейсик». 2 год - «Паскаль» и инструментальные среды (DOS, Norton Commander). Писали лабораторные работы и курсовые («MSX Basic» - программа для определения по 4-м точкам, является ли фигура, образованная ими, выпуклым четырехугольником, программа «Крестики-нолики», Turbo-Pascal - программы работы с файлами).
  • 1988. Дворец пионеров, кружок по пакетной радиосвязи. Впервые увидел IBM PC AT.
  • 1990. Поступил в Московский Государственный институт Электроники и Математики.
  • 1990-1992 MSX Yamaha. Basic. Pascal. Лабораторные работы.
  • 1991. Наконец с большим трудом купил «Микрошу». Пытался ввести туда программу для игры в шахматы (из журнала «Моделист-конструктор»). Очень долго разбирался с ней, несколько дней рисовал блок-схему и разбирал алгоритм работы. После ввода программа не заработала. Вероятно, где-то ошибся в наборе. Комп завис и его пришлось перезагружать Reset-ом. Все результаты многочасовой «набивки» пропали. Надо было записать введенное на магнитофон, но я не догадался. Впредь был умнее. Записывал с помощью командочки Save.
  • 1992. Видел 286-ю и Windows 1.0 или 2.0 в зале для лабораторных работ в институте. Очень понравилось.
  • 1993. «Персоналки» с 3-го курса. IBM PC XT. IBM PC AT. Среда Turbo C 2.0. Лекции и курсовая работа. Программа «Композитор» под DOS. «Сочиняет» фугу на нужное число голосов, в нужной тональности и в нужном ладу. Писал несколько месяцев на работе у отца на IBM PC AT. Большие ЭВМ. Unix. Простейшие программы на С (нахождение символа в строке, замена и т.д.)
    Конечно же, изучали Prolog, Turbo Basic, программировали на Pascal и с 3-его курса на C. Еще ранее, в 1988-1989 г, программировали на MSX Basic, и это было действительно замечательно! Был также интенсивный курс ассемблера и архитектуры микропроцессоров (тогда еще 80286). Были какие-то дисциплины по параллельным вычислениям и суперкомпьютерам, которые мне никогда потом не понадобились на практике.
  • 1994. IBM PC AT. Turbo Basic. Turbo Pascal. Turbo C. Лабораторные работы (программа «Решение уравнения Коши»). Курс «Компьютерная графика». Лабораборные. Программа для вывода слоной трехмерной фигуры. Программирование адаптеров EGA/VGA. Курс «Банки данных». Dbase 3, 4. Clipper. Лабораторные работы. Писал базы данных в институте и у отца на Clipper. Видел Windows 3.1 и MS Access 2.0 у друга на работе, был шокирован и очень понравилось (ничего там не понял и удивлялся, как он в этом шарит). Друг программировал базы данных на Access для туристической фирмы.
  • 1995. Unix. ООП. Borland С++. Prolog. Turbo Prolog и ARITY-Prolog. Искусственный интеллект. Лабораторные работы. Переделка программы «Композитор» на C++, добавление классов, операторов.
    По окончании ВУЗ-а все мои сокурсники разошлись: кто уехал за границу, а кто устроился программистом писать на «С++ под базы данных». Кто-то наиболее «продвинутый» даже стал писать софт под видеокарты на ассемблере (тогда это было еще какое-то убожество наподобие S3 Trio и Trident с 256 кбайтами RAM на борту). Только я пошел на преддипломную практику и диплом в некую госорганизацию, где получил свой первоначальный опыт работы, изучил Unix и MS Access, ознакомился с принципами работы компьютерных сетей. Это была середина 90-х.
  • 1995 - 1997. Решил стать программистом или, на худой конец, сисадмином. Работа в проектном НИИ кем-то вроде сисадмина-программиста. Операционная система VAX/VMS. DECNet. Толстый EtherNet. «Большие компьютеры», VAXCluster-ы, терминалы VT-220, VT-330, DECServer-ы, DECPrintServer. Выполнял резервное копирование, установку нового ПО, администрирование (права пользователей, права на диски, файлы). Sun SparcStation, 32 Мб оперативки (это какое-то нереальное, сумасшедшее количество), винчестер 2 Гб, Silicon Graphics, Alpha DecServer (DecWindows). Впервые как следует поработал с Windows, изучил его (на 386DX, затем Pentium). OS Solaris, Irix, DecWindows.
  • 1996. Защитил диплом по теме «Проектирование межплатформной компьютерной сети». Семиуровневая модель OSI. Сопряжение разных типов сетей по общим протоколам (TCP/IP). Выбор «железа» (маршрутизаторов, концентраторов, репитеров), оценка их стоимости, расчет всевозможных характеристик (длины сегмента, расстояния между репитерами и т.д.).
  • 1996-1997. На работе прослушал курсы «SQL for end users», «The XGL graphic library», «Motif programming», «OpenGL programming», «Xlib programming», «XView programming».
    Все курсы, какие были, и для графиков (там много CAD-овцев, под которых покупались Silicon Graphics) и для пользователей баз данных (там был Oracle).
    Администрировал Novell Netware 3.11 и 4.0 (в другом здании). Большая сеть на ~100 персоналок, 2 сервера Novell Netware, тонкий Ethernet.
    Подключился к разработке «Каталожной базы данных оборудования промышленного применения», которую впоследствии разрабатывал самостоятельно (когда уже все стоящие специалисты свалили с той работы:). Так началось мое собственное знакомство с Access.
    Выход Windows 95, знакомство с ней.
  • 1996. Подключение фирмы к интернету (dialup в компании Элвис-Телеком).
  • 1996 (?) Покупка компьютера домой (486DX2-66). Усовершенствовал программу «Композитор» возможностью распечатки на принтере нот. Пробовал программировать под Windows 3.1 (Borland C++ 3.0, Win 3.1 SDK). Сложно и запутанно, но смог написать простейшую программу, выводящую окно (с основными понятиями программирования в мультизадачных средах я был знаком - очередь событий, ресурсы, окна, контролы, обработчики событий - частично по институту, частично по курсам по Motif и OpenGL, но в Windows все это по-другому). Пробовал переделать программу «Композитор» под Windows с использованием multimedia-библиотек. Очень сложно, не смог.
  • 1996. Появился модем, ФИДО, интернет. Начал искать новую работу. Пытался устроиться на работу в компанию, где был UNIX, Informix, NT и т.д. У меня спросили, что такое «template», «group by» и какие UNIX-shell-ы я знаю. Я ничего из этого списка не знал, и меня не взяли.
  • 1997, январь-февраль. Пытался написать складскую программу на Access 2.0, изучать Excel. Помню, как раз вышел Office 97, и я пытался с ним освоиться.
  • февраль 1997 – декабрь 2000. На мою вторую по счету работу меня взял совершенно незнакомый мне человек и без всякого собеседования просто по объявлению в mo.job (наверное, он все же как-то неявно проверил мою адекватность, но этот тест был успешно мной пройден). Зарплата была неправдоподобно высокая для молодого специалиста на начало 1997 года. На вопрос, зачем он меня взял и почему без собеседования, он сказал: «Мне просто был нужен Access-ист. Вы ведь Access-ист?». Я сказал: «Да, конечно, я - Access-ист». Больше никогда таких глупых вопросов я не задавал. Программировал на Access 2.0. Сразу дали сложные задачи. Было сначала тяжело, потом освоился. Освоил Access 2.0 и Excel 5.0 досконально. Затем Access"97 и Excel"97. ERWin. Вышла «1С-торговля». Очень не понравилась. Чуть-чуть посмотрел Access"2000 и Powerbuilder 6.0. Powerbuilder очень понравился, перевел на него часть библиотек. Перевел программу с MSA 2.0 на MSA 97. Занимался также anykey, администрированием Windows NT Server, внедрением почтовой системы на MS Exchange 5.5, внедрением Office"97, WINS, DHCP, MS Proxy 2.0, RRas и (главное достижение в этой фирме, как я считаю) переводом системы на MS SQL 7.0/MSA"97 с репликацией данных в удаленный офис. Собственноручно проинсталлировал 3 новых сервера Windows NT (SQL, Exchange, WINS, IIS, MS Proxy, RRas), внедрил Faxmaker для Exchange Server. Писал скрипты под MS Exchange Server на VBScript. Замечательно поработав в этой компании несколько лет и написав много софта, я стал задумываться о новой работе.
  • Времена менялись. Шел 2000-й год. Дабы избежать застоя в верхнем отделе головного мозга и засилья 1С, я пошёл в один стартап, где мы прозанимались интереснейшими вещами вплоть до 2010-го года. Туда меня взяли тоже совершенно без всякого собеседования после выполнения несложного тестового задания. За 10 лет было написано много десятков мегабайт исходников на всевозможных языках программирования (С++, Python, Assembler), сделана куча замечательных проектов. Я великолепно изучил Linux, C++, Python.
  • На дворе 2007-й год. Впервые я стал беспокоиться, потому что работа перестала меня удовлетворять. Мне стало казаться, что моя работа – это подготовка к чему-то «настоящему», это всего лишь репетиция, отработка навыков перед чем-то важным. Но время шло, а «настоящей работы» так и не начиналось. Настоящей, на которой я смогу реализоваться полностью. Стало казаться, что её просто не существует. Я думал, что моя зарплата и интересность работы будет расти сама прямо пропорционально времени, но этого не происходило. Зарплатный капкан начал меня напрягать. Выйдя на свободный рынок в 2007 году я, пожалуй, впервые ощутил свою косность, неконкурентоспособность и безнадежную отсталость от технологий. Завязнув в стартапе, я порядком закостенел. Я начал заниматься поисками новой работы. Моя out-of-the-markedness беспокоила меня всё больше и больше. Посетил множество фирм, в числе которых были и очень крупные игроки софтверного бизнеса (Rambler, Yandex, Kaspersky и др). Но везде результат один – полный и несомненный отказ. В это время я впервые задался вопросом: «Почему?», на который до сих пор не получил внятного ответа. Я наконец-то узнал, что существует computer science, которую все спрашивают и про которую я впервые слышал. Неужели это потому, что я не знаю computer science? Но я же написал огромное количество высококачественного рабочего софта, знаю множество технологий и промышленную разработку! Я начал кидаться туда-сюда, хвататься за новые бесчисленные технологии, срочно изучать эту самую computer science, ничего не успевал изучать и был расстроен тем, что у меня ничего не получается. В конце концов, так и не найдя новой работы, я смирился со своей грустной участью. Я всё время был «не в струе»: когда все использовали stl и boost, я их практически не использовал, потому что не нужно было по работе; когда питонисты поголовно перешли на django году в 2008-м, я его упорно игнорировал, поскольку пользовался лучшим с моей точки зрения фреймворком, файлы редактировал упорно в FAR-е, хотя кругом было полным-полно замечательных удобных редакторов, и моя производительность не страдала от этого. В конце концов, я начал использовать все эти технологии, но только для того, чтобы быть адекватным рынку.
  • Но вот – о чудо! – меня пригласили в один стартап опять же совершенно без всякого собеседования. И опять, прилежная работа в течение нескольких лет, проектирование, планирование и эджайл, горы исходников, тестирование и багфиксы, надежды на лучшее, ощущение, что это репетиция чего-то важного и нового, разочарования и безуспешные поиски новой работы, которые проходили ровно так же, как в 2007-м году, но в условиях более жесткой конкуренции, которую я ощущал буквально за своими плечами.
  • И вот времена опять поменялись. На дворе уже 2013-й год. Я все ещё молодой, но возраст уже начинает брать своё. Мне казалось, что за это время у меня накопился гигантский опыт, что я могу заниматься чем угодно, что я нахожусь в конкурентном поле и у меня достаточно высокий уровень компетенции, что я могу работать, что я – «программист». «Теперь-то», думал я, «уж точно настало время для самой ценной и важной моей работы, для работы всей моей жизни».

На самом деле не всё так просто. Я не знаю, какую именно работу я ищу. Не имею понятия, какая работа будет ценной и важной для меня. Надо попробовать всё. Высока конкуренция. Много молодёжи. Вчерашние выпускники отлично знают computer science и знают все эти загадочные слова, магические пассы и умеют внятно говорить. Поменялись правила игры, хотя Unix, C++, ООП остался. Появились длинные, содержательные, многоэтапные собеседования, grueling interviews. Ужесточаются требования к соискателям. Теперь уже никто не берет «студента без опыта» даже за смешную зарплату. «Странно» - думал я. «В начале 90-х же была демографическая яма, в которую должны были угодить мои потенциальные конкуренты». Но это не так. Выявляются мои пробелы и изъяны в знаниях, последствия многолетней «кустарной практики» и отсутствие системы в знаниях. Оказалось, что я не знаю детально, как работает ни один алгоритм сортировки (все 20 лет сортировал обычным «sort»-ом во всевозможных вариантах и на всевозможных языках программирования, который, по моему мнению, сортирует очень хорошо, но как именно – это меня никогда не волновало, ведь он сортирует наилучшим образом!), не знаю принципов ООП (использовал его еще со времен ВУЗ-а, но, видимо, неправильно, раз я не знаю верных принципов), формата пакетов TCP/IP (а зачем его мне знать? знал, когда писал диплом в ВУЗе, а потом забыл!), алгоритмов на графах и многого другого… Но я же как-то работал эти 20 лет и писал отличный рабочий софт, который используется до сих пор и будет ещё долго использоваться! Как это может быть? Сам удивляюсь.
И второй виток выхода в «свободный рынок» прошел всё в такой же «теплой и дружественной обстановке», как и первый.
«Касперский» снова предложил мне с ним «забрэйнбенчиться», как в старые добрые времена («Thank you, chap, but I don"t play that games anymore, have already brainbenched all over»), «Яндекс» прореджектил все мои аппликейшны на все вакансии, на этот раз молча, даже без приглашения на интервью (в 2007-м году проинтервьюировал и «забраковал»), и похоже, включил меня в пожизненный бан, ибо я уже порядочно надоел их HR, поскольку откликаюсь почти на все их вакансии; mail.ru поступил аналогично, а Parallels, Mirantis и другие «акулы» софтверного рынка меня «забраковали» уже на собеседовании. Неприятно чувствовать себя «забракованным», но приятнее понимать, что мы обоюдно не подошли друг другу и не подходим вот уже много лет  Мы слишком разные. Я например, люблю поэзию, литературу, музыку и английский язык. А вот любит ли это Яндекс? Не уверен.
Со стороны работодателей: их можно понять. Их задача – за минимально возможное время выяснить знания кандидата по максимально широкому набору тем. Я сам набирал программистов и по себе знаю, как это нетривиально. На готовые вопросы подразумеваются готовые шаблонные ответы. Как у Жванецкого: «…вот список ваших вопросов, вот список моих ответов». Излюбленные приёмы, используемые на собеседовании, которые я собрал за многолетние походы по интервью и которые повергают меня в недоумение, вводят в ступор (ответы на некоторые из них я не знаю и посейчас), и, как мне кажется, некоторые из них имеют мало отношения к программированию и их просто задают, потому что это «проверенный способ» и «все их спрашивают». Мои ответы, не устраивающие работодателей, в скобках:

  1. Представьте, что Вы читаете лекцию перед студентами. Как бы Вы объяснили студентам термин «X»? (X == «тупик», «контекстно-свободная грамматика», «конечный автомат», «оптимистические и пессимистические блокировки», «парадигмы программирования», «шина данных»). (Из этого списка внятно могу объяснить только «тупик», он же deadlock, потому что часто имею с ним дело. С остальными терминами дела не имею, и, соответственно, объяснить их не могу).
  2. Опишите максимально подробно, что происходит при вводе адреса в адресную строку браузера (вариант: при клике на ссылку). (Какая именно степень детализации имеется в виду? Мой рассказ может растянуться на целый день, а время у нас ограничено. Сначала, если мы находимся под Windows, посылается Windows-сообщение WM_CHAR при вводе текста в контрол… нет, точнее, сначала WM_NCHITTEST,… но если начать с самого начала, тогда keystroke поступает в клавиатурный буфер...).
  3. Опишите, какой обмен TCP/IP-пакетами производится при установлении HTTP-соединения. (К сожалению, многократно смотрел TCP/IP трафик с помощью ethereal, но не помню формат пакетов даже приблизительно).
  4. Опишите, какой обмен TCP/IP-пакетами производится при установлении HTTPS-соединения. (К сожалению, TCP/IP-трафик при HTTPS-соединении не смотрел). Верно ли, что HTTPS работает поверх HTTP или верно обратное? (Не знаю, но думаю, что HTTPS поверх HTTP. Или HTTPS поверх TCP? Кто ж его знает..).
  5. Опишите, как производится доставка пакетов транспортным протоколом TCP. Откуда мы знаем, на какой именно физический компьютер доставлять пакет? За счет чего обеспечивается гарантированная доставка? (Адрес доставки определяется MAC-адресом физического компьютера, доставка пакетов производится через gateway, прописанный в настройках системы, если это внешний хост. Внешний или не внешний – это вычисляется из ip-адреса и маски).
  6. Какова алгоритмическая сложность наилучшего и наихудшего возможного алгоритма сортировки массива из N элементов? (Наихудшая сложность – O(N^2), потому что нужно сравнить каждый с каждым, наилучшая – O(N * ln(N)). Почему такая наилучшая? Не помню. Читал в книжке. В какой - не помню).
  7. Рисуются прямоугольнички со стрелочками, говорится, что прямоугольники – это модули, а стрелочки – это зависимости между ними и задаётся вопрос: «Как загрузить все эти модули? И вообще, как это называется?» (Берем и загружаем рекурсивно сначала зависимости модуля, затем сам модуль. Как это называется – не знаю и не имею ни малейшего понятия. Это называется «прямоугольнички со стрелочками»).
  8. Опишите отличия демона от обычного процесса (такой вопрос мне задавали в 2007 году, и я до сих пор не знаю исчерпывающего ответа на него – тема поистине неисчерпаема, и я в ней досконально не разбираюсь, хотя написал за свою рабочую практику огромное количество демонов, при этом до конца не понимая, общая ли у них память или нет, общий ли стэк или нет и общие ли файл-дескрипторы или нет. Кажется, нет, не общие. Или общие. Забыл уже, в общем. Давно это было, в 2004-м году.).
  9. Назовите пять принципов объектно-ориентированного программирования. (Не знаю, к сожалению, хотя использую ООП с 1993 года).
  10. Как с помощью двух стеков сделать очередь? (Не знаю, но можно посмотреть в интернете).
  11. Какие способы синхронизации процессов Вы знаете (вариант: какие примитивы синхронизации Вы знаете) (mutex-ы, семафоры, эвенты)?
  12. Какие шаблоны проектирования Вы знаете (вариант: какие шаблоны программирования Вы знаете) (синглтон, фабрика объектов)?
  13. Как сделать оптимизацию SQL-запроса (вариант: какие приёмы оптимизации SQL-запросов Вы знаете) (посмотреть план запроса, убрать подзапросы по возможности, проставить недостающие индексы)?

Работодатели совершенно правильно делают, безусловно. Я понимаю, почему они так делают. Они выбирают и отсеивают кандидатов, задавая им простейшие вопросы для начала. Затем переходят к более сложным, затем ещё и ещё. Проблема в том, что наши с ними подходы никогда не совпадают. При том, что я уверен, что в большинстве компаний, куда я ходил на собеседование, я смог бы работать без особых проблем, но работодателям виднее, и это правильно.
PS. На самом деле с работой у меня нет проблем. Это только повод, чтобы описать свою причудливую карьеру. Наконец нашелся работодатель, который «проехал на красный свет», проигнорировав все эти многочисленные warning-и о том, что я не знаю, не задал ни одного вопроса на тему computer science и просто предложил работу.

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

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

С чего начать

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

Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:

  • Самообразование . Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно , и приложений , которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
  • Университет . Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
  • Ментор . Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о , где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
  • Специализированные практические курсы . Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.

Какой язык, технологию и направление выбрать

Когда вы станете программистом, через годик-другой будете вольны выбирать любой язык, который вам нравится. Но при выборе первого языка программирования новичок должен учитывать следующие критерии:

  • Наличие на рынке вакансий . Конечная цель этого пути - найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
  • Низкий уровень вхождения . Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
  • Кайф от процесса . Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.

Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли - разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.

В любом случае изучите веб-технологии. Это язык разметки HTML, стили CSS и , который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.

Как получить начальный опыт

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

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

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

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

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

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

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

Почему стоит выбрать Python

Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python . Я очень советую выбрать именно его в качестве первого языка программирования.

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

Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.

PHP - ещё один очень популярный язык. И, мне кажется, он даже проще, чем Python. Очень легко найти себе ментора или решение какой-нибудь проблемы на форуме. Всё потому, что в мире существует огромное количество PHP-программистов разного уровня. В PHP нет нормального импорта, есть множество вариантов решения одной и той же задачи. А это усложняет обучение. И PHP заточен исключительно под веб.

Языки C и C# очень сложны для новичка. Ruby - хороший выбор в качестве второго языка, но не первого. JavaScript - очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.

Важен ли английский язык

Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.

Что нужно знать, кроме языка программирования

Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что - зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.

Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста - уметь гуглить. Без этого вы не проживёте.

Последние шаги

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

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

Какими именно способами они могут реализовать наработанный опыт?

Горизонтальная карьера в должности программиста-исполнителя

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

Его вряд ли обидят при распределении фонда оплаты труда. Он станет достойным кандидатом на место в какой-нибудь более солидной компании, вплоть до организаций международного уровня.

Совет на заметку:

Быть в IT универсалом нереально. Чтобы быстро продвигаться по горизонтали, выберите конкретное направление (базы данных, C++, java и др.) и попытайтесь стать в нём лучшим.

Продвижение в качестве эксперта

Достигнув определённого уровня, вы поймёте, что готовы делиться опытом. На этом этапе перед вами открывается новая перспектива — самореализация в роли консультанта.

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

Мечтаете стать уважаемым экспертом? Не зацикливайтесь на одном только программировании. Учитесь легко общаться с людьми , грамотно и образно выражать мысли .

Управленческая работа

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

Вам поручат планировать и контролировать работу других специалистов.

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

Собственный стартап

Ещё один вариант карьеры — пожалуй, самый сложный — воплощение в жизнь собственного проекта (допустим, запуск какого-нибудь оригинального платного сервиса).

Стартапы удаются только у тех программистов, которые имеют предпринимательскую жилку или находят бывалого бизнес-партнёра.

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

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


Оглядываясь вкруг себя, я размышляю о том, что не так уж часто, мне кажется, люди остаются программистами много-много лет. Чаще всего постепенно переходят в менеджеры, на протяжении нескольких лет, поначалу еще продолжая писать код, но потом все больше и больше начальственные обязанности занимают все время. Часто уходят в Product Management. Некоторые, реже, в маркетинг. Многие уходят в мир стартапов и становятся сами себе бизнесменами - даже если они продолжают писать код, это уже работа на себя. Обратное передвижение, из других профессий в программисты, почти никогда не случается в середине карьеры, только в начале (из математиков, физиков, инженеров, просто кого угодно еще, если есть склонность к этому делу).

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

Мне 37, и если не считать несколько подростковых подработок, я зарабатываю на жизнь программированием чуть более 20 лет. Большую часть этого времени - в компаниях, где я сам себе не хозяин. До сих пор я сознательно противился подводному течению, которое влечет программистов в менеджмент, по двум причинам. Мне кажется, что мне это меньше нравится, и мне кажется, что у меня это не очень хорошо получится. До сих пор я не жалел об этом решении. Но что я буду делать еще через 20 лет, предполагая, что буду жив, относительно здоров, и все еще буду работать? Многое еще может измениться; но если я не буду специально стараться и трепыхаться, закон инерции жизни говорит, что и в 57 лет буду нажимать на клавиши и вводить ключевые слова в текстовом редакторе в какой-то компании. Будут ли хорошие, интересные возможности и проекты для 57-летнего меня в индустрии, какой она станет через 20 лет? Сейчас в нашей индустрии, повторюсь, программисты за 50 есть, но их довольно мало...

Недавняя дискуссия в HN ("What happens to older developers?") подстегнула мои мысли по этому поводу, и, хоть не дала конкретного ответа, предложила много возможных. Верхний комментарий там хорошо подытоживает разные варианты развития, которые я описал в выше: идти в менеджеры, оставаться программистом и углублять свое мастерство, идти в бизнесмены-стартаписты, уходить в совсем другую профессию. Есть в комментариях там немало таких, как я, предпочитающих пока что при всех равных зарабатывать ключевыми словами в редакторе. Те из них, кому за 50, пишут чаще, что коль скоро сохраняют технические знания и идут в ногу со временем, не затрудняются найти работу - хоть это в основном американские мнения, в других странах может быть по-другому. Но неясно, сколько таких осталось из тех, кто хотели того же, но обнаружили, что им трудно поменять место работы в пожилом возрасте, или что им трудно принять тот факт, что все сверстники обошли их по иерархическим лестницам, или что просто надоело.

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

Читайте также: