[лонгрид] 20 лет программистской карьеры в большом маленьком городе

    We do what we must because we can — GLaDOS

    Ижевск, наши дни


    Первого февраля исполняется ровно два десятилетия, как я начал официально подвизаться в должности инженера-программиста:

    Фото первого разворота трудовой книжки с датой 1 февраля 1999 года

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

    Конечно, мерило «успешности» у каждого своё, но моим служит тот факт, что последние 15 лет я работаю на сеньорских должностях на проектах, в основном завязанных на крупных корпоративных или зарубежных заказчиках, и почти каждая новая работа находит меня сама. И всё ещё не устал.

    Хочу предупредить, что мой рассказ — это типичный лонгрид в формате интервью от первого лица, местами нудный, и почти без картинок, потому что я, в основном, бэкэндер. Читателю без технического бэкграунда может быть сложно, так как в нём полно программистского жаргона (часть терминов я постарался объяснить, но не все). А ещё порядочно древних мемов, ностальгических подробностей, и локальной культурологии.

    Но вы ведь любите автобиографии с аутистическими шутками, не правда ли?

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


    Началось всё давным-давно. Однажды матушка, работавшая программистом в обычном советском НИИ, занимавшемся реверсным инжинирингом образцов западной вычислительной техники, взяла меня на работу — показать, чего как, и дать поиграть. Недавно к ним пришли контрабандные «персоналки» — PC/AT, на которых запускались всякие диггеры и тетрисы.

    До появления «персоналок» НИИ работал на советских ЕС (клон IBM S/360, занимает комнату) и СМ (клоны VAX, PDP-11 и др., обычно шкаф размером с пианино), так что дома у нас валялось некоторое количество бобин использованной перфоленты и распечаток с ассемблерными листингами. Ещё матушка периодически моталась в командировки с пакетами «блинов» — сменных накопителей на магнитных дисках весом этак килограммов по 15, боявшихся поездок в троллейбусах, — так что к экскурсии я был морально готов. Ожидал увидеть нечто, похожее на декорации тогдашних фантастических фильмов.

    И увидел. Но мигающие лампочками и гудящие вентиляторами шкафы, в которых что-то крутится, впечатляли не так сильно, как «Диггер», пусть даже на монохромном экране. Как и софт для разводки печатных плат, рисовавший их на плоттере (смотреть, как чернильный маркер летает по листу формата А1 — это казалось просто каким-то волшебством), и бесконечные полотна знакомых уже ассемблерных листингов программ для станков с ЧПУ, над которыми тогда работала матушка.

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

    А чтобы стать хорошим программистом, надо хорошо учиться. Первые три класса общеобразовательной школы я закончил с отличными оценками, и смог попасть в лицей с математическим уклоном. Вообще, на тот момент в городе было несколько школ с хорошим качеством обучения — 29, 30, 41 (лицеи), 56 (гимназия). Каждая — локальный брэнд и династический рассадник технической, гуманитарной, или управленческой, в зависимости от профиля, элиты. Особенно «тридцатка» — практически все местные заводские руководители (а Ижевск традиционно был городом-заводом) закончили именно её, причём, как правило, маткласс. Как, впрочем, и моя матушка (и она в итоге тоже стала руководителем, но об этом позже).

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

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

    Я болтался где-то в районе шестого места, периодически забираясь выше, поэтому в периоды подготовки к олимпиадам частенько оказывался с остальными продвинутыми ребятами на задних партах, где мы вместо самостоятельных работ решали задачи+, задачи° и даже задачи**. По правде говоря, олимпиадным мышлением я не обладаю — хорошо вкапываюсь в суть проблем, но мыслю слишком медленно и всегда делаю несколько пробных подходов, так что выше городского этапа ни разу не продвигался. Ну, хотя бы поучаствовал, а результатом можно считать тренировку мозгов на нестандартные (но воспроизводимые, в отличие от решений типичных олимпиадников, которые обычно применимы строго ad hoc) решения.

    Да и вообще, даже последний троечник по меркам элитного рассадника был бы отличником в обычной школе, и в универе мне это аукнулось… впрочем, по порядку.

    По прошествии многих лет, оценивая свои возможности, я иногда начинаю сожалеть, что не выбрал вместо местного технического университета какой-нибудь столичный, — мои одноклассники успешно закончили и МФТИ, и МГУ (и некоторые в итоге работают в Гугле), — но это сожаление быстро проходит, когда я вспоминаю, как я учился в общеобразовательные семестры до «экватора». Никак не учился — школьного багажа, включая дополнительные курсы, которые вели те же вузовские преподаватели, было достаточно, чтобы получать «автоматы» почти по всем предметам. Впрочем, даже вступительные я не сдавал — студентом стал ещё в апреле, пройдя подготовительные курсы, и набрав высший балл на пробных экзаменах. Это было, как вы понимаете, несложно.

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

    Только самообразование боем могло меня спасти, и на втором курсе я нашёл себе работу. Прямо тут же, на кафедре, сисадмином. Работа так себе, но зато она гарантировала неограниченный доступ к факультетским серверам и интернету, а также позволяла торчать в лабе хоть сутками напролёт — и тратить время не только на трёп в IRC с девочками из соседнего универа, но и кодить что-нибудь для всяческих случайных заказчиков. Минимальная зарплата в 1999 году была 83 рубля 49 копеек (зачем платить студенту больше?), а бутылка «Букета Чувашии» в «деканатском» магазине напротив учебного корпуса стоила 4.60, так что мы с другими такими же студентами-админами иногда скидывались на пару ящиков дешёвого пива для физрука, чтобы не тратить время на бессмысленные круги по стадиону.

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

    В ижевском «механе» тоже нашлась своя олимпиадная команда, тоже на тот момент занимавшая далеко не последние места в международных соревнованиях, но мне показалось куда интереснее обеспечивать инфраструктуру для турниров, чем ломать на них голову. Тем более что зачёт полагался и так, и этак. Кроме совсем уж низкоуровневых и скриптовых языков, я не чурался и утилит для бухгалтерии на связке 1С и Visual Basic, и для деканата на FoxPro и Delphi, а для развлечения пописывал аплеты на Java для своего «хомяка» на факультетском сервере.

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

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

    Лето 2001 года, Ижевск


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

    К счастью, подвернулась конторка с говорящим названием «Виртуальный Ижевск». Микроскопическая веб-студия, но как тогда полагалось любой уважающей себя веб-студии — с каталогом региональных ресурсов, вебчат-сервером, и уймой проектов разного уровня маргинальности. Как вам, к примеру, онлайновый конкурс красоты «Мисс БикиНю-2002»? А если я скажу, что у него был закрытый раздел для спонсоров, с более интересными фоточками «моделей»?

    Тот ещё гадюшник, короче. Зато, у директора конторки была идея фикс перевести все разработки студии с тормозного Perl на свежевышедший PHP версии 4, потому что где-то он прочитал, что за ним будущее (а ещё он банально быстрее). В общем-то, директор не ошибся. Продержался я там всего полгода, но хотя бы выучился сносно писать на PHP — причём, из-за специфики проектов приходилось заботиться о безопасности. Ломать их с целью накрутки голосов пытались серьёзно — спонсорские призы в конкурсах были достаточно неплохие, типа поездок на компанию друзей в Турцию, и девочки из того самого соседнего вуза собирали целые команды доброжелателей, готовых вывести их в топы.

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

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

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

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

    Отдел мультимедиа выпускал презентационные диски для местных заводов (например, Ижмаша и СЭГЗ), а отдел интернет-технологий и был той самой веб-студией, регулярно бравшей призы на отраслевых выставках. Честно говоря, стена в директорском кабинете, увешанная дипломами от пола до потолка, внушала. В основном, клиентам, приходившим на предмет договориться о разработке очередного представительского сайта.

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

    Срочно потребовался «ну хоть кто-нибудь» на замену, а я очень удачно оказался свободен. Матушка просто притащила меня за шкирку, бросила за консоль конторского сервера, и велела брать всё интернетовское в свои руки. Мультимедийный отдел точно так же оказался в руках сына маминой подруги, и мы как начали фигачить!

    На самом деле, трудно представить более стрессовую ситуацию: прийти на место признанных профессионалов, подхватить на лету повисшие в воздухе чужие и совершенно незнакомые разработки, и делать вид, что ты способен вот это всё потянуть. Да ещё и как минимум, не хуже. Я плохо помню последующие несколько месяцев — с утра надо было посещать пары (слава богу, не все, часть предметов мне таки перезачли) в своём универе, потом тащиться через весь город в соседний, и там торчать до глубокой ночи. И выходные тоже торчать на работе. Ещё и тусоваться хотелось, а то, как же быть студентом, да обходиться без пьянок…

    Потребовалось около полугода, чтобы прочитать все RFC по технологиям, все руководства к используемым языкам и платформам, разобрать все нагромождения унаследованного от старой команды кода (особенно, университетские сайты, написанные на жуткой смеси ранних версий Java и PHP с самописными расширениями), и параллельно вести разработку собственного программного базиса — на PHP only. Не только потому что новая метла должна мести по-новому, но хотя бы из гигиенических соображений: за десять лет работы старой команды в проектах, которые велись без какого-либо контроля версий, накопилось много мусора, и на свежий взгляд это было очень заметно.

    Также стоит учесть, что на рынке в тот момент ещё не существовало сколько-нибудь развитых CMS, да и вообще, «рынком» тогдашнее положение дел в веб-разработке назвать было довольно сложно. Каждая контора писала что-то самобытное, с собственным зоопарком. Поэтому я обложился всеми доступными примерами опенсорсных «-нюков», и за последующее лето, в аккурат перед пятым курсом, собрал из запчастей своих форумных и конкурсных «движков» простенькую CMS, позволявшую разрулить сиюминутные задачи. Вдобавок, меня тогда пропёрло по теме UX, и, проштудировав все имевшиеся на тот момент HIG, я почему-то проникся майкрософтовским Wizards 97, идеологию которого и постарался максимально воплотить в интерфейсе, реализовав пошаговые мастера на все случаи жизни.

    Поздняя версия CMS, мастер создания страницы сайта

    Как ни странно, но шалость удалась. Я не только сумел успешно завершить аварийно повиснувшие проекты, — уже на собственном движке, — но и ускорил разработку в несколько раз. Более того, из-за необходимости тщательно задокументировать имевшиеся у нас проекты, у меня само собой возникло подробнейшее техническое задание на типовой представительский сайт для какого-нибудь типового завода — а также методичка для авторского сопровождения сайтов муниципальных образований, так как один из проектов был именно таким, а ФЗ с шаблоном тогда ещё не было.

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


    Более того!
    Программист — это не творец. Программист — это инженер, который ничем не хуже сантехника, проектирующего и строящего систему водоотведения для небоскрёба, только мы отводим пользовательские кровь, пот, и слёзы, и не в канализацию, а в информационные сервисы.
    Но не будем отвлекаться на философию. В мультимедиа-центре, пардон, «Центре мультимедиа и Интернет-технологий Удмуртского госуниверситета» я проработал почти пять лет. Свой диплом для Ижевского гостехуниверситета я сделал целиком и полностью на примере внедрения экспериментальной версии своей CMS для муниципального сайта города Глазова (в будущем он тоже возьмёт награду премии Рунета в своей категории; проект жив до сих пор — в четвёртой версии). Это был первый в истории кафедры диплом на тему чего-то околоинтернетовского, поэтому на вкладыше тема значится как «Система управления континентом [sic!] сайта». Ну не знал ещё в 2003 году никто слова «контент», так что я не стал исправлять тот артефакт эпохи.

    Мы быстро заполнили недостающее штатное расписание такими же студентами (ну может, не настолько целеустремлёнными и упёртыми, как я) — и превратились в этакую кузницу кадров. Многие ребята, которые начинали карьеру в моём отделе практикантами или дипломниками, теперь руководят собственными конторами и проектами, и являются вполне уважаемыми в городе специалистами. Я же, поставив разработку на поток, постепенно совершенствовал и сам процесс, и свою CMS (в частности, придумал собственный компилятор языка разметки для шаблонов, позволявший менять дизайн сайта на лету, не только стили, но и HTML, и скриптовую обвязку).

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

    Мне пришлось не один раз поучаствовать в переговорах (особенно тяжело было разговаривать с муниципалами — и, господи, как сильно я удивился, когда в появившемся через время ФЗ нашёл прямые цитаты из своей методички; попала в руки законодателей она скорее всего через одного из наших муниципальных клиентов), разруливать конфликты интересов между членами команды, обучать пользователей, и даже пару раз браться за дизайн. Сам не заметил, как стал сеньором.

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


    Однажды я забыл сбросить серверный кеш CSS после восстановления сайта из бэкапа, и кто-то из коллег по цеху мгновенно закинул скриншот с напрочь разъехавшейся вёрсткой на линч к Лебедеву. For lulz. Итог: один известный мем.

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

    Для развлечения я однажды провёл совершенно бесчеловечный эксперимент. Была такая программа повышения квалификации сельских учителей информатики — когда со всех 25 районов республики их согнали по разным ижевским вузам, и прочитали им курс про основы сайтостроения. Естественно, я преподавал на примере своего движка, и не смог не воспользоваться такой прекрасной возможностью, чтобы провести A/B тестирование нескольких версий интерфейса на сотнях несчастных. Было весело, узнал несколько совершенно неожиданных вещей о паттернах поведения и восприятии пользователей (майкрософтовцы были ой как правы, когда переделали UI Офиса на контекстно-зависимый — он наиболее эффективен; также из интерфейсов совершенно точно НЕЛЬЗЯ убирать кнопку “Save” с дискетой).

    Но, в конце концов, мне всё же стало скучно.

    Ну сколько можно сайтики клепать? Ну ладно, мультисайты (это когда десяток-полтора взаимосвязанных сайтов на разных доменах, но на одной копии движка, и со сквозной авторизацией). Ну ладно, документ-порталы (каталоги документов, обвешанные метаданными что твоя рождественская ёлка, с поиском по всем параметрам в реальном времени). Ну ладно, интранеты, видеоблоги, сайты СМИ (всего лишь специализированные плагины для самобытной CMS, которые по моим спецификациям писали студенты-дипломники).

    Было очевидно, что настало время поступить, например, как предыдущая команда, и выйти из здания. К сожалению, я не обладаю достаточными качествами, чтобы быть директором-коммерсом. Техническим — могу, но вот зачем? На вебе свет клином не сошёлся, да и прогресс на месте не стоит. Что было эксклюзивом в 2002 году, в 2006 уже мэйнстрим, и вообще, Битрикс свёл сайтостроение в ремесло.

    А не двинуть ли в смежную область. Почему бы и да?

    Только в какую?

    Я ходил побеседовать в несколько разных контор. Не везде меня, страшного тролля с Ижайти, встречали с распростёртыми (троллей вообще мало кто любит), но выбор был достаточно богат. Можно было и в десктопный .NET пойти, и железяки программировать (правда, это на заводе, так что скорее нет, чем да). Но особенно мне понравилась идея разработки больших систем для кровавого энтерпрайза — только вот в этом мире рулила Java, а знание Java у меня было только на уровне тех самых аплетов с универского «хомяка», да лапшеобразного легаси, похороненного на прошлой работе. Ещё и версии 1.1.

    Поэтому я принял предложение из местного телекоммуникационного провайдера Ижсвязьинвест (он был «мультисервисный», то есть, предоставлял интернет, телефонию, и телевидение; после кризиса 2008 года умер в агонии и был куплен Билайном, но на тот момент процветал).

    Тут необходима небольшая ремарка про историю местных интернетов. Она довольно-таки отличается от типичной для России благодаря компании «Марк» (как бы она ни называлась за свою более чем двадцатилетнюю историю) — ещё с середины девяностых Ижевск очень сильно опережал и скоростями, и покрытием, и меньшей ценой не только все соседние регионы, но и Москву. Причём эпоха DSL-модемов сменилась эпохой меди, а потом и оптики до дома очень быстро, и быстрый интернет в Ижевске стал массовым, а сам этот провайдер явился отличнейшей кузницей технических и управленческих кадров для местной отрасли. Даже местная фидошная туса и то была в основном over марковский Ethernet.

    Выходцы из «Марка» основали не одну конкурирующую контору, включая и Ижсвязьинвест. Притащили они с собой и биллинг — монструозную систему, работавшую внутри кластерного Oracle, причём, классического, поверх фирменного сановского железа и под солярой. Почти вся бизнес-логика этого хтонического чудища была зашита в чудо-хранимки, даже письма об оплате клиентам рассылались из асинхронного джоба. На Java (версии 1.4) был написан только небольшой кусочек админки, при том, что почти целиком он генерировался через System.out.println(), и выглядел… хреново он выглядел. На пользовательский же веб-интерфейс смотреть без слёз было нельзя (и не только потому что он был весь шрифтом 7.5pt).

    Особенно, по сравнению с тем, во что к тому времени превратилась админка моей CMS. А была она HTA-приложением, неотличимым внешне от нативного, и даже не требующем наличия мыши, даром что писана на чистом JS/DHTML. Начальник отдела так впечатлился, что немедленно взял меня как специалиста по UX. Интеншен был прост — натянуть на хтоническое чудище биллинга красивый, быстрый, удобный, и нативный интерфейс, и продавать его другим провайдерам. По набору возможностей и в самом деле он, будучи разрабатываемым с середины девяностых, рвал все имеющиеся аналоги как тузик, но у конкурентов был вменяемый UI, а у TELSI его не было.

    To put lipstick on a pig… Однако, нельзя так просто прикрутить интерфейс к логике, если у неё нет эндпоинтов для чего-либо, хотя бы отдалённо похожего на AJAX.

    Слой эндпоинтов надо было написать, интегрировав в существующий код. Но в 2006 году Java 1.4 была уже совсем реликтом, так что перво-наперво я переписал имевшийся зародыш админки на актуальную версию с попутным причёсыванием и приведением кода в порядок (ага, опять пришлось копаться в унаследованной субстанции). По ходу изучил технологический стек J2EE, но ввиду специфики ограничился пока что сервлетами и всей сопутствующей обвязкой, а также JDBC (надо же хранимки дёргать), Velocity (как наиболее похожий на PHP шаблонизатор), и, собственно, core Java.

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

    — Окей, — сказал начальник отдела.

    Чтобы вытащить всё это дело на свет божий, мне потребовался год. Год! Объём кода был просто чудовищен. Я за раз могу запомнить около мегабайта исходников, а тут код только хранимок тянул на пять. Половина неиспользуемых, другая половина рекурсивно вызывают друг друга, и в целом сплетаются в такой клубок лапши, что распутать его без помощи начальника было решительно невозможно.

    Работать приходилось шесть дней в неделю, по одиннадцать часов в день — остальные программисты сидели над поддержкой существовавшего монстра и не могли мне помочь. Итогом стал микроинсульт (это в 26-то лет, my ass!) и полгода на таблетках. Урок усвоил — больше с тех пор не перенапрягаюсь. Работа не сбежит, а здоровье вот может.

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

    TELSI, редактор справочника АТСTELSI, конструктор представления справочникаTELSI, редактор записи справочника
    Картинки кликабельные

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

    И тут в Ижевск пришёл кризис 2008 года


    Хотя, он ко всем пришёл.

    Денег не стало не только у всех, но и у конторы, особенно чтобы держать программиста, работающего над будущей версией системы. Контора бросилась набирать новых клиентов, просто чтобы выжить, и меня решили бросить на рутинное обслуживание имеющегося древнего монстра, — потому что возросла нагрузка, — а новый проект положили на холод. Ещё и зарплату срезали, потому что денег нет от слова «вообще».

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

    К сожалению, сделать было сложнее, чем сказать. В бушующий кризис с кровавым энтерпрайзом дела обстоят примерно так же, как и с TELSI (то есть, «отложено» на «потом»), но зато в новой экономической реальности западный бизнес в качестве одного из средств снижения расходов обратил внимание на российских аутсорсеров, и у них попёрло. Пришлось отложить на несколько лет энтерпрайз и заняться тем, что приносило деньги.

    Очень быстро я нашёл работу в очередной студии (точнее, они нашли меня — всё же, известность в локальном комьюнити, даже слегка тролльская, штука иногда полезная). Ну как студии… Веб-разработки у них были, но в большей степени этот «информационно-издательский центр» позиционировал себя как аутсорсера. Ну и ещё как типографию. Такой вот очередной гибридный бизнес.

    Основным направлением аутсорса была разработка геоинформационных систем, — то есть систем, которые что-нибудь делают с картографическими данными.

    Например, текущий проект был — что-то страшное для датских байкеров, на Zend, с неким аналогом портлетов (не спрашивайте, что это, я знаю только про аплеты и котлеты) и вообще каким-то крайне странным ТЗ. И только сел я его внимательно почитать, как байкеры скрылись в неизвестном направлении вместе с техническим директором конторы, который таким образом, как выяснилось, заманил меня на замену себе.

    Ну как, «на замену». Нужен был ведущий разработчик на новый проект — тоже ГИС, только про спутниковое телевидение. SatBeams.com — жив до сих пор, можете посмотреть, только, пожалуйста, не обрушьте.

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

    Суть задачи: надо не только нарисовать на карте покрытие для каждого транспондера, но и сгенерировать для них в реальном времени дифф изменений всех характеристик всех каналов, принимаемых на тарелку в каком-то месте, и выплюнуть её в RSS. За такую информацию профессиональные любители спутникового ТВ и платят денежки, причём, немалые.

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

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

    Вдвоём со вторым программистом справились где-то за год. Работает, — если вы её хабраэффектом сейчас не уронили, — до сих пор. Люблю я этот проект. И не только за бэкэнд, но и за satbar.js — последний интерфейсный виджет, который мне довелось написать (с тех пор я больше к пользовательским интерфейсам не прикасался).

    satbar — переключалка спутников — сверху карты

    Неожиданным препятствием стало рисование футпринтов транспондеров на Гуглокартах — Гугл вообще класть хотел своё толстое mojo на сторонние интеграции, и планомерно выпиливал из каждого нового релиза API карт 2.х фичу за фичей, в результате чего оное обросло невероятным набором костылей, и потребовало постоянной поддержки со стороны второго программиста после сдачи проекта в эксплуатацию, — а на третью версию API он его мигрировал, периодически уходя в депрессию. Зато заказчик хвалился фоткой рабочего стола ПМа Гуглокарт с ярлыком нашего сайта с подписью “nice polygons” — он тайком сделал её, когда был в гостях в тамошней штаб-квартире.

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

    Я снова пошёл по накатанной, и собрал несколько сайтов, практически не приходя в сознание. От нечего делать обновил CMS интерфейсными наработками, притащенными с предыдущей работы — включая некое подобие Ribbon UI из свежего Офиса (по ходу, сделал это раньше, чем сам Майкрософт, но, конечно, попроще, хотя, волшебный одиночный ALT там тоже работал. Как-нибудь покажу, это достойно отдельного рассказа). Взялся даже за разработку десктопной базы на .NET+SQLite для одного государственного заказчика взамен легаси-решения на Firebird (или даже FoxPro? А, не помню, но на чём-то совсем древнем), но этот проект принёс с собой новый ПМ, претендовавший на роль техдира, и нам не удалось договориться по срокам. Так что закопаться в десктопный стек .NET мне не удалось.

    И тут мне вдруг написал бывший студент, когда-то делавший у меня в отделе диплом (те самые «документ-порталы»). Он за прошедшие пять лет вырос в руководителя собственной конторы, по удачному стечению обстоятельств занимавшейся кровавейшим энтерпрайзом — SAP, и ещё немножко разработкой на Java EE.

    Вот так удача. Ему как раз требовался эксперт для помощи над новым проектом.

    Суть (и вообще, смысл) этого проекта объяснить сложновато. Я до сих плохо представляю себе мотивы венчурного капиталиста из Татарстана, который пожелал сделать этакий SaaS/PaaS/коробочный аналог MS SharePoint + Exchange + Lync + Dynamics, но только с серверной частью на J2EE, и с «толстым» клиентом на Java Swing. Сначала он называл его NewOutlook, а потом и вовсе OfficeSuite. Плюс ко всему, он был ещё и маководом, из-за чего пришлось покупать в контору мак — свинговые компоненты для толстого клиента вели себя под MacOS временами непредсказуемо. Очень, очень странный проект. Но жутко интересный.

    Всего им занималось не меньше трёх команд — кроме нас, ребята сидели в Казани и где-то в Минске, что ли? или в Киеве?, причём основной считалась наша команда: именно нам надо было разрабатывать общую архитектуру и серверной части, и клиента, механизм синхронизации данных между ними, а также для примера реализовать модуль управления личными финансами. Остальные должны были заниматься Unified Communications и всем прочим, что нафантазировал (без конкретного ТЗ) инвестор.

    Самой сложной задачей казалась реализация синхронизатора — никто из имевшейся команды не знал, как вообще подступиться к ней. Клиент, как мы помним, «толстый», то есть, может и должен работать вообще без серверной части, и при этом также должен уметь подключаться к серверу по расписанию или пользовательскому запросу, чтобы обновлять «объекты» (какие угодно) и там и сям.

    Я тоже сначала не знал «как», но глаза боятся, а руки делают. За умными словами «клиентская и серверная архитектура» на самом деле кроется всего лишь несколько хорошо оформленных в виде структурированного документа набросков по дизайну. Конечно, «какие угодно объекты» — так себе требование, но, к счастью, проектировать хост-плагинные системы, которые умеют описывать свои типы объектов, я умею ещё со времён мультимедиа-центра, хитрые ORMы после ижсвязьинвестовского монстра меня не пугают, а недостающим J-технологиям из состава EE я могу научиться достаточно быстро.

    «Архитектор»… Не люблю, когда это слово применяют к должности программиста. Кривой перевод с английского System Designer, корректнее было бы «инженер-проектировщик». Но, на мой взгляд, процесс создания с нуля прототипа будущего продукта, который себе плохо представляет даже заказчик, куда лучше описывает термин «инженер-исследователь».

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

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

    Блин. Такой вот он, венчурный бизнес. Слегка ненавижу.

    Такая ремарка: идеальных мест работы не существует. Везде, где бы ты ни оказался, будет что-то хорошее, и что-то плохое, восхитительное, и отвратительное, разумное, и ненормальное. Дело не в диалектике, и не в том, что жизнь объективно окрашена в разные цвета. Дело большей частью в твоём собственном отношении к различным аспектам бытия — покуда в тебе теплится божья искра, ты обречён испытывать разные эмоции по поводу разных вещей. Которые, блин, случаются.


    Не всегда к лучшему.

    На дворе был уже 2011 год. По-прежнему в Ижевске


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

    Вот уж где истинно кровавый энтерпрайз.

    ЕПАМы (а также Люксофты и прочие подобные монстры, известные в народе как «галеры») — это фабрики. Гигантские заводы по выпуску софта на заказ, и процедура производства там абсолютно конвейерная. Всем рулят «процессы» — писанный и неписанный свод формальных и неформальных правил на все случаи жизни, от самых незначительных ежедневных рутинных моментов — до форс-мажора и полного пц. Неважно, в какой уровень системы ты встроен, тебе остаётся только подчиняться им, хочешь ты того, или нет. Нужно быть винтиком в механизме, и играть свою роль.

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

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

    Ведь люди — это всегда, в некотором смысле, ад. Из-за хороших формальных правил в ЕПАМах могут работать, и успешно работают:

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

    Их там к счастью, не большинство, нормальных больше, но общую картину такие «отличники» (от других) Очень! Сильно! Портят!

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

    Как я вообще туда попал?

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

    И первый же проект, куда я попал, оказался, реально, монстрическим. Заказчик — банк с круглым зелёным логотипом, команда на полсотни человек (это только в ЕПАМе, в других субподрядчиках ещё такая же толпа), сама система mission critical. Писаться должна на Java EE, но при этом есть сюжетный твист: вендор — IBM. Платформа — WebSphere AS и MQ, база данных — DB2. Даже сама JVM в этой связке экзотическая — J9, довольно сильно на тот момент отличавшаяся от сановского референса, и кошмарно глюкавая (но известно об этом мне стало потом, когда я наткнулся на пачку багов).

    Мне сказали: теперь ты ключевой разработчик (и член архитектурного комитета), поэтому вот тебе команда (не смотри, что новички, они ребята неплохие) и ТЗ на этот вот модуль (кирпич на 300 страниц).

    Я сказал: ага («архитекторов» набралось человек 15, ребята оказались… разные, а кирпич переписывался по ходу пьесы раза три до неузнаваемости).

    И понеслась… За два года пришлось участвовать в разработке нескольких подсистем. Шлюзы во внешний мир. Внутреннее файловое хранилище. Синхронизация статусов обработки платежей для операторов «большой тройки». Система развёртывания модулей — всего их было порядка 25 — на вычислительную ферму (в итоге не выжила, но applications.xml остался в составе продукта).

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

    После чего случился некий факап со сдачей релиза, и было принято решение откатить транк к более ранней версии. Система контроля версий — SVN. Ну ладно, надо так надо. Сделал это один раз, и… пришлось потом до конца быть «хранителем репозитория» (блин!) и супервайзить все последующие мержи, особенно перед релизами.

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

    А ещё — куча конфликтов в команде из-за того самого фактора личной несовместимости, включая меня и ПМа…

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

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

    На какое-то время отлегло. Но всё равно было некомфортно, так как сам климат в офисе с его подковёрными играми и интригами — он сколько ни дистанцируйся, а давит.

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

    Единственно доступная на тот момент команда разработки оказалась составлена из «отличников» со скамьи запасных, вечно там сидевших. Всех тех, кого не взяли на остальные проекты из-за токсичности, но проходящих ассесменты по формальным признакам, и потому не могущих быть уволенными. Я уже потом понял, что это мне такая награда за конфликт с ПМом первого проекта, но было поздно.

    Тем более что начался он вроде как неплохо, но… быстро стал скатываться в трясину технического долга, и едва не закончился полной катастрофой из-за саботажа со стороны «отличников», которые не хотели ничего разрабатывать, но желали лишь получать зарплату за 8 часов сидения в офисе по будним дням, и вместо выполнения задач заваливали аналитика тоннами уточняющих вопросов по каждой таске в трекере, а код писали только когда я физически висел над душой.

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

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

    Новый же техлид имел право изменить состав команды — что он сразу же и сделал (свободные нормальные разработчики волшебным образом нашлись в офисе), и в итоге таки ему удалось довести проект до победного. Но для обеспечения возможности этого нам пришлось пустить в ход тяжёлую артиллерию в лице директоров филиалов, и таки показательно уволить самого злостного «отличника». Это было невообразимо тяжко и гадостно.

    Урок я выучил: мне действительно нечего делать на фабрике. Урок номер два: никогда больше не соваться в менеджмент.

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

    Выгорание, говорите? Какое такое выгорание? Мне просто ничего не хотелось. Точнее, мне хотелось, чтобы этот мир сгорел к чертям свинячьим, и я сгинул под копытами всадников апокалипсиса в числе первых грешников. Пять месяцев я провёл в чём-то среднем между комой и режимом домашнего овоща. Учился на права, да изредка выбирался на какие-нибудь айтишные сборища (всё же участие в локальном комьюнити даже в звании полузабытой легенды иногда крайне полезно).

    Ижевск, лето 2014 года


    Одна из, гммм… пьянок, — что уж греха таить, именно что айтишных пьянок, — проходила в конторе, буквально только что возникшей из ниоткуда. Американский стартап со смешным названием tinypass (сколько шуток шутили гусары, прикрывая пальцем p на логотипе) решил открыть центр разработки в Ижевске. Основатель и совладелец оказался местным — и только что вернулся на родину. Сразу же кинул клич — чуваки, го в американский стартап, я сделал!

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

    Пришёл. Посмотрел на проект. Взгрустнул было.

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

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

    Проект же мы постепенно, общими усилиями, привели ко вменяемому состоянию. Узким местом оставалось воспитание техлидов, но они сидели в НЙ. Здесь-то их не было. Здесь-то и пиво можно пить прямо в офисе каждый (никаких исключений!) четверг, и отлично проводить время в компании лучших из лучших разработчиков города. Хэштег #ижевскийгугл.

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

    Будет сложно описать, чем именно я занимался в Piano (после объединения с конкурентами и смены брэнда ижевский офис остался основным офисом разработки), ведь в стартапе приходится заниматься буквально всем. В том числе и английский, наконец, выучить.

    Поначалу много писал всякого на Java, затем сделал несколько крайне неудачных экспериментальных фич подряд (отрицательные результаты очень не понравились упрямым нью-йоркцам, но местные коллеги верили в мой опыт — в итоге я оказался прав, и меня не уволили). Поставил процесс Continuous Integration — и сделал возможным появление в команде QA инженеров. В здоровом коллективе должны быть девушки-тестировщицы! А если серьёзно, то постановка процессов DevOps, вероятно, это самое полезное из того, что я сделал там за все чуть более чем два с половиной года.

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

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

    Автор (в оранжевом худи) и его коллеги с тортиком. На тортике написано «всё отлично» на 3 языках


    После этого опять был какой-то совсем уж безумный DevOps и плохо формализованные, но классные исследовательские задачи. Можно было вдоволь пописать кода и на питоне под гугловый BigQuery, и всякую там муру на Node.js (старому джависту очень полезно менять иногда коня, а иногда лыжи). Ну а вишенкой на торте стала задача, за которую я трижды отказывался браться ввиду её сомнительности в этическом плане.

    Мне отчего-то кажется, что нехорошо детектировать, и тем более пытаться заставить пользователя выключать блокировщик рекламы в браузере. На самом деле, конечным пользователем той middleware, которую предлагает Piano, является издатель, а тот, кто сидит за экраном — это лишь потребитель контента. Но я, вообще-то, стараюсь людей держать за людей, и уважаю их выбор. Не ваше дело, включен у меня адблок или нет. И уж тем более некорректно пытаться выяснить это, ведь способов заблокировать рекламу уйма, и технически сложно проверить их все, а от false positive пострадает куча людей, сидящих на плохом канале где-нибудь в метро.

    Ну, как знаете. Я, конечно, известный в узких кругах «инженер-исследователь», но в данном случае заниматься задачей не хочу (она интересная, не спорю, но пусть людям портит жизнь кто-нибудь другой).

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

    Ижевск, сорок лет уже близко


    Как же классно, когда можно ничего не делать несколько месяцев между работами. Но потом всё равно становится скучно, и возникает извечный вопрос — а чем бы ещё заняться? Чтобы на него ответить, я составил чеклист.

    [x] Веб-разработка была.
    [x] ГИС был.
    [x] Кровавый энтерпрайз был.
    [x] Крутой хипстерский стартап был.
    [x] На заводе, где железо, мне явно делать нечего.
    [x] Продуктовая разработка тоже не подходит, потому что это надолго, а я и так 11 (одиннадцать!!!11) лет свою CMS пилил, и мне сильно надоело. Что остаётся?
    [x] Разве что игры с прочей трёхмеркой, но там дофига матана, этого ещё в школе полно было.
    [ ] А, погодите-ка, Big Data выходит в тренды.

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

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

    Пришёл я побеседовать в место, где работаю сейчас, а ПМ прямо с порога заявил, что проект — адский. Ничоси. Опять же, ГИС, только расчёты все на MapReduce (а хочется, чтобы на Spark), карты на ArcGIS, и всё это крутится в облаках, которые никто не умеет девопсить. По-моему, прекрасный вариант!

    Прошло уже полтора года, и я всё ещё думаю, что вариант прекрасный. Пригодилось вообще всё, чем занимался раньше. Тут мне и спарк на Java (на Scala не перешёл, потому что не кандидат наук), и AWS с девопсом, и веб-ГИС, и отличный офис с нормально оборудованной кухней, где каждый четверг (ну ладно, пускай с исключениями) можно устраивать заседание кулинарного клуба.

    Я же, в конце концов, неплохой шеф-повар, с таким-то опытом. Готовить люблю и умею. Пиццу, пасту, печеньки, другие вкусности на букву П, — как и на любые другие буквы. И девушек в офисе много. А в соседнем отделе пилят HUDWAY. Хэштег #сделановудмуртии.

    Итого, продолжаем работать дальше.

    Потому что we do what we must because we can, и я пока всё ещё могу.

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

    И не надо думать, что для того, чтобы быть ценным кадром, надо было начинать 20 лет назад. Можно просто прийти к таким, как я (а я здесь такой отнюдь не один, много нас), и мы научим всему, что знаем сами, и вы нас ещё сделаете — потому что вы моложе, и мозги у вас быстрее работают.

    Ребята, ну вот серьёзно, что вы забыли в Москве (или в заграницах)? Зарплата там всего вдвое выше, зато здесь можно купить трёхкомнатную квартиру на верхнем этаже новой высотки в центре за те же деньги, что в столице двушку б/у на замкадной окраине (тем более, без mortgage на 25 лет). Тут нет необходимости тратить три часа в день на выматывающей душу комьют (и необходимости водить машину тоже, общественный транспорт хороший по сравнению с).

    Правда, тут нет и аймакса с икеей, и подсветки, как где-нибудь на бульварном кольце, тоже не найти. Но зато и спокойнее (и, в основном, всё по-русски, хотя и американские стартапы, где всё на буржуйском, тоже есть). А если душа движухи требует, то Казань неподалёку, там двихужа бывает. В конце концов, у нас есть РокИжайти — единственный труёвый айтишный рок-фестиваль ever.

    Здесь вполне можно жить, заниматься интересными задачами, и не устать даже через 20 лет.
    Поделиться публикацией

    Комментарии 155

      +13
      все классно, кроме микроинсульта.
        +2
        да, это было не круто, и бесследно не прошло.
        +3
        Всего два вопроса: Как часто и как далеко от дома вы путешествуете? Можете ли себе позволить по первому зову (финансово и временно) смотаться к другу в гости на чай на недельку допустим в Мексику?
        Если оба ответа да — значит действительно Москва не нужна, в ином варианте — вам есть о чем подумать.
          0
          я домосед. могу сорваться куда угодно в любой момент, но не испытываю необходимости в этом. ещё в детстве и юности порядочно наездился.

          к тому же, мне некомфортно путешествовать в одиночестве, а вся туса, с которой можно было бы (мы так в 13 году ездили в Италию на пару недель, было круто), теперь люди семейные, и не выберутся.
            0
            Я думаю, ответ на вторую часть вопроса («временно») зависит от города почти никак. Если вам дают отпуск на неделю «слетать на чай», то что из Ижевска, что из Москвы, что из Сан-Франциско вы можете слетать. Разница — не более 10 часов полета в одну сторону. А вот если отпуска не дают, то никакая Москва не поможет.
              +1
              А что, в Москве это стандартная фича? Рекрутеры московские что-то не упоминают об этом, максимум 200 тр «для начала» и отпуск по ТК.
                0
                из Ижевска до Москвы есть самолет — чуть больше полутора часов.
                  0
                  это значит: +1.5 часа к большинству поездок (это если не считать заблаговременную регистрацию и дорогу до аэропорта)
                    0
                    это чудовищно ;)
                      0
                      Для меня да — эти самолеты сделаны для лилипутов) (сам сейчас в похожей локации, на 150 км южнее)))
                        0
                        это сколько раз в месяц нужно летать, чтобы стало проблемой?
                          0
                          Ну я не часто летаю, но вспоминаю с ужасом любой отпуск))
                            0
                            прямо какая-то очень нестандартная (кмк) проблема. коллега с ростом 192 вполне справляется, вроде…
                              0
                              Может тут не рост виноват? :)
                                0
                                Вес хотелось бы скинуть, но не много)
                                А так сидишь — колени уперлись в края переднего сиденья (а если разложено, то вообще писец), голова над подголовником, плечи упираются в соседей (почти, но лишний раз руку не повернешь) и сидишь как истукан 5 часов.
                                  0
                                  Предварительная онлайн регистрация (и псятбаксоф) с выбором места в начале ряда, бывает, спасает отца русской демократии :)
                                    0
                                    в 90% случаев не дают выбрать места при обычной онлайн-регистрации. Да, у меня получалось только платно (и не всегда).
                                    0

                                    что мешает сесть у прохода и ходить по салону весь полет?

                                      0
                                      Продажа билетов с номерами мест)
                    +1
                    Добираться из Ижевска или в Ижевск — больно. На Новый Год перелет СПб — Ижевск через Москву обошелся мне в 16 т.р. Прямым — около 18.
                    Для сравнения — в конце ноября перелеты по маршруту Хельсинки-Прага-Амстердам-Рим-Хельсинки стоили мне 22 т.р. И + 6к Аллегро.
                    То есть считайте, стоимость маршрута тупо возрастает в 1.5 — 2 раза.
                    Ближайший международный аэропорт есть в Нижнекамске, это 2-4 часа в пути поездом/автобусом/вроде были даже шаттлы какие-то.
                      0
                      Всё же сравнивать надо цены в один период при одних условиях. Хотя не первый раз замечаю, что при прочих равных из Питера куда-то на восток дешевле через Москву.
                        0
                        На Новый Год перелет СПб — Ижевск через Москву обошелся мне в 16 т.р. Прямым — около 18.

                        Неправильно написал, речь конечно же про СПб-Ижевск-СПб.
                      +6
                      Когда процесс чтения перевалил за половину стало возникать слабо осознаваемое ощущение, которое никак не удавалось идентифицировать, но я точно знал, что подобное уже испытывал. И уже совсем к концу я вспомнил…
                      Такое же ощущение у меня было когда я читал «Три мушкетёра» Дюма. Да, и герой, в общем-то, напоминает. :)
                        0
                        Интересная история. Кстати, мне тоже напрямую из универа пригодился только SQL, который со времен древнего FoxPro, на котором делали лабы, не особо изменился.
                          +1
                          FoxPro вроде никогда не был SQL-базой, он xBase был
                            +3
                            Был там SQL еще со времен FoxPro 2.0 for DOS в 1991 году.
                            www.foxprohistory.org/foxprotimeline.htm
                              0
                              Хм, как-то упустил этот момент. Если кто пользовался и помнит: что, прямо на SQL можно было запрос написать к его табличкам и с ними работать?
                                +2
                                Да. Хоть и возможности были весьма слабенькие.
                                Мы пробовали — как правило, работало медленнее, чем с явной построчной работой.
                                Только в 2.6 вроде бы они довели это до ума.
                                  0
                                  Разумеется, даже в ДОСовском был SQL
                            +4
                            Хорошая у вас память, по годам помните. Когда вспоминаю Ижевск, то вижу большие тихие кабинеты НПО. В Москве такой тишины не хватает, тут плотнее.

                            А про автомобиль (это из заключительной скрытой части) такое мнение, обратное — в Ижевске машина мне была нужна. Для удовольствия, просто потому, что её приятно водить. В Москве машина уже не столь нужна, расходов больше. Метро и другой общественный транспорт удобнее.
                              +3
                              до тех пор пока не начинаешь за город выезжать.
                                +1

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

                                  0
                                  хз, где вы такой транспорт в Питере нашли, вполне норм. Да, в разных частях города по-разному, но на юго-западе оч даже ок.
                                    0
                                    5 лет назад к 9 приехать в район Восстания от Театральной и в 18 уехать назад было проблематично. Рассчитывать, что сядешь и уткнешься в телефон не приходилось, даже если первым придёт автобус у которого конечная там (27 туда). Вариант пешком до Садовой улицы, потом на маршрутке до метро, а потом на метро даже дольше оказывался чем пешком до метро.
                                      +5

                                      Как житель СПб уже 5 лет, могу сказать что да, с транспортом беда. Даже на том же метро ездить нормально можно только если рабочий день не с 9 до 18, а сдвинут на час-два раньше ли позже, иначе есть большой риск попасть в просто лютый слэм, который не сравнится даже с первыми рядами рок-концертов. Про уровень шума и пылевые бури в метро даже говорить не буду)

                                        0
                                        Шумно, да, согласен, какой-то серьёзной давки не наблюдаю, особенно летом.
                                        +3
                                        C 2004 по 2008 год ездил практически ежедневно с Парк-Победы на Петроградскую. Совершенно не норм.
                                        В 2017 году оказался на Пл. Ал. Невского в 18:30 — вообще никак не норм.
                                        На Ветеранов в районе 19 выстраиваются очереди на маршрутку — немного не норм.
                                          0
                                          На Ветеранов в районе 19 выстраиваются очереди на маршрутку — немного не норм.


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

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

                                          Одно «НО»: я почти всегда еду стоя, даже когда есть места сидячие.
                                        0

                                        Да, Вы правы. Есть районы, в частности, где соединяются транспортные потоки (вокзалы, электрички). В них повышенное количество пассажиров. Но так не везде, например, зелёная ветка свободнее фиолетовой, за исключением пересечений веток.


                                        С другой стороны, в Ижевске умеют считать деньги, оптимизировать интервал работы транспорта. И там в троллейбусах и трамваях свободно — они помедленнее ходят, а в автобусах и маршрутках плотно — они ходят реже. Интервал подобран под поток пассажиров. Поток меньше — расписание реже.
                                        Фактор этот важен — частота работы транспорта в Москве выше, чем в небольших городах. Интервал работы метро и автобусов центральных маршрутов небольшой — минуты (2 минуты для метро). И пропустить автобус, уехав на следующем свободном, в Москве стоит 5 минут, а не 15.


                                        А чего не много в Ижевске, так это ночных маршрутов. Водил там машину во многом из-за того, что в 22:00 транспортное сообщение с моим домом прекращалось. Зашёл после работы в гости, и потом остаёшься или вызываешь такси. В Москве оно прекращается где-то в 01:30. Вход в метро закрывается в 01:00, переходы чуть позже, автобусы ещё позже. Но это важно не каждому.

                                          0
                                          Основные маршруты продолжают движение до полуночи в Ижевске. А в дневное время в часы пик интервал движения на наиболее загруженных маршрутах 5-6 минут. С учетом того, что многие маршруты частично ходят по одинаковому маршруту, то на короткие расстояния интервал становится до 2ух минут.
                                            +1

                                            в ижевске радует только то, что такси из одного конца города в другой стоит 200р, т.е. отсутствие транспорта в позднее время неприятно, но не фатально.

                                          +1
                                          Плохо сочетается логически «нужна в Ижевске для удовольствия» и «не нужна в Москве — расходов больше». Логично или «слишком дорогое удовольствие стало», или «перестала удовольствие приносить: расстояния, пробки, ещё что-то». Хотя всякое бывает, но я не встречал людей «мне это перестало приносить удовольствие, потому что стало дороже стоить», обычно «слишком дорогое удовольствие стало, оно не стоит эти денег».
                                            0

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

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

                                          Но основываясь на вашей статье Ижевск я айти раем не назвал бы. Хотя в городе самом я не бывал, трудно судить какой там климат и инфраструктура и каково там жить, возможно я многого не знаю и плюсы жизни там перевешивают.
                                            +3
                                            Присоединюсь. Даже в 2008-м в Москве можно было найти интересные проекты, в которые ты бы вписался. По статье сложилось впечатление, что вы сейчас достигли топчика, и круче конторы уже не найти. В Москве — всегда есть места «где еще лучше». И общественный транспорт в Москве действительно очень развитый, машина не нужна чтобы добраться из точки А до точки Б.
                                              +1
                                              попробуйте с юга Москвы (например районы Аннино-Бутово) добраться до Крылатского (там большой бизнес-центр с MS/Intel/проч)
                                                +1
                                                Да что за бесконечное желание в Москву в Москву в Москву и место лучше лучше лучше? Крупный город — это зло. Если человек реализовался в среднем городе, и доволен, то у меня только уважение к нему и немного белой зависти
                                                  +2
                                                  В чём зло, с чьей позиции? Есть плюсы, есть минусы, вес каждого субъективен и индивидуален.
                                                    +4
                                                    Ну, мне в Москве нравится, всё устраивает. У всех опыт разный, кого-то большие расстояния изматывают.
                                                    Крупный город — это зло.
                                                    Просто крупный — зло. Но зарплаты в Москве выше в N раз, чем в регионах, а значит ты можешь позволить себе большее. На хлеб с водой в любом городе конечно хватает, но всегда хочется большего, и большой город это может дать(не сам город, а обилие работодателей).
                                                    Вариант «Удалённая работа из любого города на работодателя в США» — это подходит не для всех, увы.
                                                      0
                                                      > Но зарплаты в Москве выше в N раз, чем в регионах, а значит ты можешь позволить себе большее.

                                                      Мне просто любопытно: N — это по-вашему сколько? 2? 3? 5? 10?

                                                      Давайте зайдем на hh.ru и посмотрим предложения по ЗП «сеньеров». Да, не у всех есть. Давайте посмотрим на тех, у кого есть. Допустим это будет JetBrains — по крайней мере раньше (год-полтора-два назад) они честно писали «порядка 180тыр». По местным меркам это неплохая ЗП. Но отнюдь не топовая и совсем не астрономическая. И требования к кандидатам вполне разумные. Нормальный такой хороший стабильный середнячек. Идешь, устраиваешься и работаешь. Ничего фантастического. Работа и работа

                                                      Это я привел как конкретный целочисленный пример из региона. И вот что-то мне подсказывает, что при переходе аналогичной позиции в Москву цифра увеличится в самом лучшем случае всего в 2 (два) раза. Зато расходы увеличатся на порядок.

                                                      PS: Да, и ребята в JB по крайней мере в NSK офисе хорошие — ляпота а не работа :)
                                                        0
                                                        Зато расходы увеличатся на порядок.

                                                        Какие расходы увеличатся на порядок? Из чистого любопытства спрашиваю.
                                                          0
                                                          > Какие расходы увеличатся на порядок? Из чистого любопытства спрашиваю.

                                                          Как минимум на жилье. Если мы рассматриваем аренду — аренда в Москве сопоставимых объектов существенно дороже. Если мы рассматриваем покупку — она как минимум в разы дороже. А если мы говорим сугубо за финансовую мотивацию то она должна это все с лихвой покрывать.
                                                            +5
                                                            1. Есть некоторое количество крупных компаний которые готовы платить почти одинакого в Мск/провинции, но я сильно сомневаюсь что какие то компании из Ижевска готовы платить столько же.
                                                            2. Вобщем то, «повышенные траты на жильё» не равно «повышение расходов на порядок». Даже если приложить к этому цены на услуги, выбор и качество которых, скорее всего лучше.
                                                            3. Возвращаясь к компаниям. Давайте, чтобы по честному, сравним ситуацию для более молодых людей, которые ещё не имеют опыта и такой ценности на рынке чтобы их брали в условный JB?
                                                            Конкретно в своём стеке я Junior вакансий в Ижевске не нашёл, да и такого четкого разделения нет, поэтому пробежался просто по вакансиям программистов, и вот что заметил — Перспектив практически нету. Кроме крупных контор типа JB, большинство предлагают либо сайты клепать на CMS за копейки, либо 1С битрикс и т.п.
                                                            Зарплаты предлагаются в среднем 45-90 т.р., не зависимо от уровня.
                                                            К слову, вилка для Junior программиста в Москве примерно 40-130 тыс.(где 40тр = отсутствие опыта, 130 = 1-2 года опыта)
                                                              0
                                                              > но я сильно сомневаюсь что какие то компании из Ижевска готовы платить столько же.

                                                              Не знаю, не знаю. Ничего не могу сказать про Ижевск, но есть на свете масса компаний/филиалов которые совсем не на слуху (им не нужно) но которые нуждаются в персонале и готовы за это платить. Да, как правило это компании, работающие на зарубежный рынок. По их меркам уровень расходов на персонал в РФ по сравнению с местным очень и очень демократичный. Может быть и в Ижевске такие есть? Просто мы о них не знаем. PS: Я сужу по местному рынку, на котором скачет масса мелких (не больше кошки) но тем не менее весьма упитанных лошадок. И на их фоне крупные российские компании на слуху смотрятся уже совсем не как манна небесная. Но это если только про деньги. Есть и другие мотивации.

                                                              > 2. Вобщем то, «повышенные траты на жильё» не равно «повышение расходов на порядок». Даже если приложить к этому цены на услуги, выбор и качество которых, скорее всего лучше.

                                                              Конечно не на порядок, но в разы — два, три — это как пить дать. С приличным уровнем комфорта, в который входят в первую очередь хороший район и транспортная доступность. Я не хочу тратить на поездку на работу три часа своего времени. Гарантированный максимум без напрягов — не более получаса в один конец. Я бы даже сказал 20ть минут. Да, но при этом также не хочу работать в офисе в Малых Ебенях равно как и жить там. В Москве это все стоит денег и боюсь совсем не «30 тыр в месяц».

                                                              > 3. Возвращаясь к компаниям. Давайте, чтобы по честному, сравним ситуацию для более молодых людей, которые ещё не имеют опыта и такой ценности на рынке чтобы их брали в условный JB?

                                                              Для «молодых программистов» с моей (SIC!) точки зрения есть лишь один путь: учиться учиться и ещё раз учиться. А это означает, что товарищ выбирает компанию не с точки зрения уровня ЗП — ему пока что платить особо не за что — но с точки зрения того, чему он там может научиться. Есть хороший коллектив который готов потратить свое время и силы на обучение интерна? Отлично! Пригласили в Яндекс (условно) полы мыть за миску супа? Без раздумий туда! Учиться, граждане, учиться, нарабатывать живой опыт и актуальные знания. Деньги, повторюсь, в этой формуле не присутствуют. Они будут потом. PS: Да, но и в этом плане, конечно, Москва лучше. Там сильно больше выбор мест для учебы. Но не ЗП! Не смотрите на ЗП. Её нет. Не существует. Первые 10ть лет.
                                                                +1
                                                                Зарубежный рынок — это хорошо, но он весьма напрягается, когда в стране то пол-Амазона заблокируют, то гитхаб, то вообще суверенный Чебурнет обещают. В мире полно более предсказуемых стран с избытком технических специалистов, чтобы не нести такие риски.
                                                                  0
                                                                  «Зарубежный рынок» — это очень широкая и неоднородная субстанция. Попытка прогнозировать его реакцию на те или иные события в т.ч. в РФ и последующее поведение — штука неблагодарная. Да и бессмысленная с практической точки зрения. Как средняя температура даже не по больнице но по министерству здравоохранения. Если есть конкретные компании, люди — их и нужно анализировать.
                                                                    0
                                                                    «Зарубежный рынок» — это очень широкая и неоднородная субстанция.


                                                                    Учитывая, что процентов 80 клиентов этого рынка (и в штуках и в деньгах) — это США и саттелиты, то он становится вполне себе однородным.
                                                                      0
                                                                      Слабо себе представляю, чтобы кто-то пришел в восторг от подобных перспектив, где бы он ни находился.
                                                                      0
                                                                      опана… на хабре, в статье про опытных программистов жалуются на блокировки!
                                                                        0
                                                                        А что не так? Вы западному инвестору или работодателю будете рассказывать как вы поднимите ВПН где-то за границей, чтобы обойти локальные законы? А когда ВПНы без бэкдора для ФСБ начнут блокировать, что будете рассказывать?
                                                                          +1
                                                                          все не так. наша контора практически с момента основания открыла бранч в Пекине. и так же сделали миллионы других западных контор. все нормально работают, уходить не собираются.
                                                                            0
                                                                            Речь не про Пекин и не про уходить, а про заходить в Россию.
                                                                              0
                                                                              вы сами пробовали китайский файрвол? я пробовал, много раз. у нас проблем с доступом значительно меньше, можно сказать вообще нет.
                                                                                +1
                                                                                А вот у Гугла есть, например. И причём тут вообще Китай?
                                                                                  0
                                                                                  притом, что великий китайский файрвол (суровый) никак не мешает Intel, Cisco, Sun и куче других контор работать в Китае. с чего бы какой-то VPN должен помешать?
                                                                                  ps. во многих конторах (например в Intel) без VPN вообще не получится работать, корпоративное полиси.
                                                                      +3
                                                                      > Конечно не на порядок, но в разы — два, три — это как пить дать.
                                                                      Вы меня не поняли. Повышение трат на жильё в два раза не равно «Повышение общей суммы расходов в два раза».

                                                                      > В Москве это все стоит денег и боюсь совсем не «30 тыр в месяц».
                                                                      С повышенным уровнем зарплаты окупается. Хотя это уже от ваших потребностей. Если у меня в родном городе двушка в центре стоит 20т.р./мес не значит что я не поеду в Мск пока не смогу позволить себе двушку в центре.

                                                                      > Для «молодых программистов» с моей (SIC!) точки зрения есть лишь один путь: учиться учиться и ещё раз учиться
                                                                      У меня ощущение что вы вообще не дочитали моё сообщение. Я ясно сказал что в Ижевске учиться практически нечему. Начинающим программистам в таких местах обычно в веб-студию верстальщиком попасть уже за счастье.

                                                                      > Пригласили в Яндекс (условно) полы мыть за миску супа? Без раздумий туда!
                                                                      Где вы там офисы Яндекса нашли?

                                                                      > Москва лучше. Там сильно больше выбор мест для учебы.
                                                                      Наконец то дочитали.

                                                                      > Но не ЗП! Не смотрите на ЗП. Её нет. Не существует. Первые 10ть лет.
                                                                      На первом месте для меня конечно же проект и сильная команда, но з/п не маловажный фактор, и имхо глупо говорить что новички должны пахать за миску супа только ради того чтобы обучиться чему-то.
                                                                      Вы наверняка и без меня прекрасно понимаете что жильё, еда, одежда, хорошее проведение досуга стоят денег, и являются немаловажным фактором в том числе и в развитии человека, влияя на качество жизни. Хотя опять же, всё индивидуально.
                                                                      0
                                                                      Очень интересно, это где Junior за 130?
                                                                      0
                                                                      Если снимать 1-комн. квартиру (30-40 кв.м.) в Ижевске в центре около 15 т.р. во сколько обойдется аналогичная однокомнатная квартира в Москве? 150? Не верю! 40-60 — могу представить, но это не «на порядок».
                                                                      Расходы на продукты питания на порядок дороже? Нет. Транспорт дороже — согласен, но снова не на порядок, а 2-3 раза, но в Москве наверно нет троллейбусов и трамваев работающих по 30-50 лет…
                                                                      Техника в Москве дешевле, т.к. к нам её привозят с наценкой. Социальные услуги, медицинские, наверно, дороже, т.к. местные «москвичи» ездят сюда лечится, а остальное — не знаю.
                                                                        0
                                                                        Если работать в нормальной конторе, то все, кроме стоматологии (а местами и она), будет включено.
                                                                    +3
                                                                    180 для региона — можно сказать потолок, или близкое к тому. Выше уже — исключения. Хотя признаться честно, статистикой не обладаю, использую только собственный опыт(общения с разными людьми из разных регионов), поэтому можно сказать что мы говорим каждый о своих конях в вакуумах.
                                                                    Но даже если так, то:
                                                                    И вот что-то мне подсказывает, что при переходе аналогичной позиции в Москву цифра увеличится в самом лучшем случае всего в 2 (два) раза.
                                                                    Да, думаю зп будет раза в 2 выше, это тоже такой максимум, ведь не всем компаниям нужны рокстар-звёзды, им нужны крепкие среднячки, поэтому думаю 300 — это макс.
                                                                    Зато расходы увеличатся на порядок.
                                                                    А здесь вы ошибаетесь. Смотрите, в обычном регионе (Нижний Новгород, Новосибирск) аренда квартиры стоит условно 25-30 тысяч рублей в месяц. В Москве она стоит ну 40-45 тысяч. Расходы на еду в регионе я не знаю точно, но мне в Москве на семью из 3х человек хватает и 30-40 тыс на еду(хорошо полноценно питаться, закупаясь сразу на неделю), транспорт(не считал развлечения и шоппинг). Поэтому расходы чтобы просто жить и не тужить не на порядок выше (хотя на порядок, если в регионах тратите 3тыс рублей).
                                                                    В общем очень коротко резюмируя: жизнь в Москве не настолько прям дорогая на порядок, но качество жизни повыше. Поэтому (imho!) лучше получать 320 в Москве, чем 180 в регионе.
                                                                      0
                                                                      > А здесь вы ошибаетесь. Смотрите, в обычном регионе (Нижний Новгород, Новосибирск) аренда квартиры стоит условно 25-30 тысяч рублей в месяц. В Москве она стоит ну 40-45 тысяч.

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

                                                                      PS: Я знаком с Москвой в весьма ограниченном объеме. Центр да юго-запад. Погуглил цены на аренду квартир в Олимпийской деревне (это пример того, что мне близко). Начинаются от 70тыр в аутентичной панельке без ремонта. Новые дома с ремонтом минимум от 100. Аналогичная панелька в аренду в схожем районе NSK действительно стоит порядка 30тыр. Получается, если человек выигрывает в ЗП условно 100тыр но при этом больше половины из них вынужден тут же потратить на жилье — в чем тактическая выгода? У него один хрен свободных денег не прибудет.

                                                                      Остальные расходы — еда, проезд, и пр. — да, конечно, разница в цене не существенная. Скорее в Москве даже дешевле за счет более широкого выбора.

                                                                      > В общем очень коротко резюмируя: жизнь в Москве не настолько прям дорогая на порядок, но качество жизни повыше. Поэтому (imho!) лучше получать 320 в Москве, чем 180 в регионе.

                                                                      С учетом того, что в Москве проживает сколько 8? 10? миллионов жителей — наверное, как-то они справляются с этой проблемой :) Живут же. Но, повторюсь, ехать в Москву только из-за вроде как более высокой ЗП — это IMHO несколько опрометчивое решение. Этого добра хватает и за МКАДом.
                                                                        +1
                                                                        В москве 45 — это средняя 2комнатная хата через дорогу от алексеевской, к примеру. Или такая же в минуте ходьбы у марьиной рощи.
                                                                          0
                                                                          И как давно это было? Осенью 2018 за 50 тысяч уже не было однушек ближе получаса от метро (в пределах МКАД). За 50-70 предлагали однушки на конечных станциях (север/северозапад).
                                                                            0
                                                                            Ну так вы в сезон смотрели аренду, студентов же много приезжает. Не смотрел сам, но мне кажется сейчас вы вполне их найдёте.
                                                                              0
                                                                              весной 2018 за 35тыс нашел однушку в районе м.Тимирязевская/Фонвизинская. 10мин пешком до обеих станций. + электрички
                                                                                +1
                                                                                Фишка в том, что в Новосибирском Технопарке за 30тыр вы спокойно снимите новую большую (50кв) двушку с буквально шаговой доступностью всей инфраструктуры и работы :) Аналогичное жилье в Москве, почти уверен, можно смело умножать на 3.
                                                                                  +1
                                                                                  Хорошая двушка в районе ТТК в Москве будет стоить около 65к. С консьержем, двором без машин, посудомойкой, колясочной, мойкой для собак в подъезде и т.д.
                                                                                  Да, за 30 — не снимите двушку, но за 60-70к жилья навалом офигительного и очередей за ним не стоит. Очереди стоят за однушками с бабушкиным ремонтом за 25-30к, либо за двушками за 40-45к, снимаемыми на двоих.
                                                                                    0
                                                                                    А если я с семьей то мне, очевидно, нужна уже хотя бы трешка -> вот мы и подходим плавно к московским 100тыр/мес за аренду квартиры… :)
                                                                                    0
                                                                                    Не в курсе географии Новосибирска, а Технопарк — он в городе или в чистом поле, как в Татарстане?
                                                                                      0
                                                                                      Он скорее в чистом лесу :)
                                                                              +2
                                                                              Погуглил цены на аренду квартир в Олимпийской деревне (это пример того, что мне близко). Начинаются от 70тыр в аутентичной панельке без ремонта
                                                                              Надо искать, процесс поиска жилья везде (даже заграницей) довольно трудоёмкий процесс. Вы и в регионе можете за 30 тыс найти настоящую дыру). За 45 недавно знакомые нашли в 100 м. от метро квартиру 1комн новостройке, со своей охраняемой территорией. С парковкой в спальных районах проблем гораздо меньше, чем в пределах центра (условно, 3го транспортного кольца). К метро привыкаешь, и уже не замечаешь даже как к тебе прижимаются, зато ты можешь спокойно 30-50 минут x2 уделить самообучению — почитать нормально хабр, или для развлечений — видосики какие-нибудь интересные, спортивные/киберспортивные матчи итд посмотреть.
                                                                              Но, повторюсь, ехать в Москву только из-за вроде как более высокой ЗП — это IMHO несколько опрометчивое решение
                                                                              Согласен, надо ехать для чего-то большего. Вот у меня здесь двери открылись например. В регионе я бы наверное со скуки помер, не развивался бы с такой скоростью, с какой тебя заставляет развиваться этот город. Устаёшь конечно, сложно сказать хорошо это или плохо, в регионе когда жил и работал было как-то медленнее и спокойнее кажется, и возможно счастливее от того, что понимаешь что всё-равно больше нечего достигать тут, всё что у всех есть — и у тебя есть, значит всё нормально.
                                                                                0
                                                                                > К метро привыкаешь, и уже не замечаешь даже как к тебе прижимаются, зато ты можешь спокойно 30-50 минут x2 уделить самообучению — почитать нормально хабр, или для развлечений — видосики какие-нибудь интересные, спортивные/киберспортивные матчи итд посмотреть.

                                                                                Не понимаю как настолько можно привыкнуть. Книгу бумажную, журнал или газету — понимаю, даже книгу с собой вожу в сумке на случай если город стоять будет и решу ехать на метро, но с телефона или планшета могу только в такси что-то читать с пользой и(или) удовольствием. Максимум в метро текстовые сообщения писать по типу «уже подъезжаю к ..., выходи»
                                                                                  0
                                                                                  > К метро привыкаешь, и уже не замечаешь даже как к тебе прижимаются, зато ты можешь спокойно 30-50 минут x2 уделить самообучению — почитать нормально хабр, или для развлечений — видосики какие-нибудь интересные, спортивные/киберспортивные матчи итд посмотреть.

                                                                                  Самообучения — штука хорошая и приятная. Но сугубо добровольная. Сегодня хочу завтра не хочу. Тогда как ежедневная поездка на общественном (да на любом) транспорте на работу выбора предполагает куда меньше.
                                                                                    0
                                                                                    Особенно когда чувствуешь, что скоро разболеешься, а ехать в метро надо. Там ветрено, и как раз после такой поездки и заболеваешь.
                                                                                      0
                                                                                      По моим ощущениям заболеваю в метро от резких перепадов температур в жару летом и в холода зимой. Причём летом как бы не чаще.
                                                                                +2
                                                                                Мое имхо категорически наоборот: лучше 180 в регионе, чем 320 в Москве. Здесь почему-то обсуждают только доходы, жилье и общ транспорт. Забывая ещё многое: в Москве приходится жить в человейнике, парковка во дворе проблема, до работы час-два ехать, чаще всего на метро, где толпа и дикий шум; в соседях полно южных людей; летом на природу по грибы-ягоды-рыбалку надо уезжать за полтысячи км, да и то нет уверенности, что не отравишься собранным; гигантские мусорные полигоны в Подмосковье; а в последнее время еще и угрозы терактов.
                                                                                Кстати, про мусор. Москву сейчас ненавидит полстраны за «решение мусорного вопроса». Вместо переработки отходов, сейчас нагло цинично бескомпромиссно, с нарушением всех экологических и социальных норм, пропихивается ежегодный развоз 10 млн кбм московского мусора по регионам и тупое закапывание его в болото. Подробнее см. расследование Коммерсанта
                                                                                А доходы в регионах часто завязаны на лес, нефть и прочее сырьевое, поэтому если ты с головой, то зарабатывать можно, в том числе и удаленно.
                                                                                  0
                                                                                  А в Москве они на что завязаны? Самая высокооплачиваемая индустрия в Москве — нефтянка, средние зарплаты 500+ т. р.
                                                                                    0
                                                                                    Всё очень сильно зависит от региона и от приоритетов. Кому-то на природу хочется, кто-то хочет больше вариантов досуга и возможность сорваться в любой момент по горящей путёвке в другую страну. Мне самому Москва не по душе, но перспектив там больше, как ни крути.

                                                                                    Удаленка — хороший вариант для жизни в регионах, это правда.

                                                                                    Не холивара ради, но Питер мне кажется отличным компромиссом в этом выборе.
                                                                                      +1
                                                                                      > Не холивара ради, но Питер мне кажется отличным компромиссом в этом выборе.

                                                                                      Ну если не брать в расчет погоду :)
                                                                                        +1
                                                                                        Климат в целом. Прожив в Питере 20 лет только переехав на 1000 км южнее понял как на меня давили особенности приполярного климата летом и зимой, когда физическая ночь меньше времени сна, а физический день меньше рабочего дня.
                                                                                      0
                                                                                      С мусором все еще хуже. Сейчас в разных концах Подмосковья строят четыре мусоросжигательных завода, и через несколько лет нельзя будет на дачу/пикник съездить подышать свежим воздухом. Мне могут возразить, что такие заводы за границей часто размещают в центрах крупных городов. Но только эти заводы сжигают только тот мусор, который остался после сортировки, а у нас сжигать планируют вообще все!
                                                                                    +1
                                                                                    Недавно один знакомый переехал из областного центра в Мск с повышением з/п в 3,5 раза :) Реальный случай из жизни.
                                                                                      0
                                                                                      Сейчас пробежался глазами по вакансиям на hh по своему профилю (техподдержка) — повышение з/п в Москве = 1,5-2 раза (40-60 т.р. в среднем) — шкурка выделки не стоит.
                                                                                  +2
                                                                                  Посмотрите расклад городских бюджетов и смиритесь уже с мыслью, что если живешь в России — должен жить в Москве. Такова государственная политика. Сколько новых станций метро открыли во всей стране и сколько в Москве за год?
                                                                                    +1
                                                                                    1) кому должен?
                                                                                    2) сравнивать расклады бюджетов в регионах/городах с разным уровнем оплаты бюджетников и около того (персонала ОТ, например, или тех же метростроевцев) дело неблагодарное: нужно, как минимум, выделять затраты на ФОТ и остальное, и приводить к первому. Грубо и абстрактно: если врач в Москве получает 100 000, а в провинции 20 000, при одном количестве пациентов (с учетом полулегально «понаехавших») это вовсе не значит, что в провинции в 5 раз хуже будут тебя лично лечить.

                                                                                    Ну и станции метро тебя лично могут не интересовать, даже с учётом того, что они разгружают дороги.
                                                                                      0
                                                                                      Про метро это был только один из самых показательных примеров дисбаланса развития российских городов, даже если метро лично тебя и не интересует (хотя не понимаю, как такое может быть в Москве, тк прочий ОТ ужасен)
                                                                                        0
                                                                                        Кроме ОТ есть личное авто, есть такси, и вообще можно жить в пешей доступности от основных центров интереса типа работы, школы, садов.
                                                                                          0
                                                                                          Ну, если по съемных хатам, тогда да.
                                                                                            0
                                                                                            А что, купить поближе к работе, не вариант?
                                                                                              +1

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

                                                                                                0

                                                                                                Вот-вот, там уже школа, кружки, друзья детей и прочее

                                                                                                +1

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

                                                                                        0
                                                                                        вранье. я живу на оба города, в Ижевске мне ничуть не хуже: есть плюсы, есть минусы в обоих локациях.
                                                                                        0
                                                                                        Тут согласен. Это счастье, когда ты смог реализоваться в своем городе, при условии что город тебе нравится.
                                                                                    +7
                                                                                    Спасибо за интересный рассказ. Насыщенно, написано отлично.
                                                                                    Хотел оставить исключительно позитивный комментарий, но, честно говоря, впечатление у меня осталось двойственное.
                                                                                    С одной стороны — классно, что вы нашли себя, вам нравится то, чем вы занимаетесь. Наличие открытого комьюнити и желание делиться знаниям — это классно. Да и в целом, у меня сложилось впечатление о вас, как о «дядьке с бородой» из старого-доброго bsd комьюнити, который «не то, что эти злые красноглазики»:)
                                                                                    С другой стороны — некоторые моменты и то, что под спойлером, заставило немного попереживать и смутиться. Рынок все-таки узкий в сравнении с действительно большими рынками столиц, ЕС или тех же штатов. Потолок роста ниже (хотя надо ли оно вообще туда наверх ползти — вопрос философский).
                                                                                    В целом я искренне рад, что у вас все получилось так, как вы хотели, ну или по крайней мере вы довольны результатом.
                                                                                    Но вот на счет переезда… не могу согласиться. Да, «нас и здесь неплохо кормят», но едут часто не за деньгами (доход это вообще штука относительная) и даже не за опытом, а за другими ощущениями, другим качеством жизни и от общего дурдома. Какое бы классное комьюнити вокруг тебя не было, какие бы деньги (в тех категориях, что можно заработать в нашей индустрии как работник) тебе не падали на счет — это никак не изменит остальное и остальных.
                                                                                    Но, повторюсь, это очень круто, что вы нашли себя там.
                                                                                      +2
                                                                                      спасибо и вам.

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

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

                                                                                      опять же, что хорошо мне, вам может быть маловато.
                                                                                        0
                                                                                        это потому что Москву многие видят только с одного боку. в реальности значительная часть Москвы может быть представлена в виде множества Воткинсков (ну разве что инфраструктура лучше, услуги дороже). В спальных районах тихо и спокойно. А во многих еще и красиво/приятно.
                                                                                      +9
                                                                                      Что-то после прочтения статьи появляется какое-то дикое желание пилить свой проект или выходить в свой оффлайн-бизнес. Как-то читается на уровне «Вот, мне 20 лет трахали мозги, я работал с мудаками и делал какую-то херню».
                                                                                        +4
                                                                                        у 80% все умрет на этапе желания
                                                                                        из оставшихся у 80% все умрет при первых более-менне трудностях (воровство, кидалово, недофинансирование)
                                                                                        из оставшихся 80% просто будут финансово не успешными и умрут (привет рынок)
                                                                                        из оставшихся 80% заработают, но не сумеют сохранить (значительно более сложный в прокачке скилл)

                                                                                        так что если вы уверены что из условных 1000 трайеров вы по своим личным характеристикам и благокслонности небес входите в четкий топ-1, то у вас все получится (но это не точно)
                                                                                          +1
                                                                                          Ждём ответную статью от кого-нибудь, кто смог делать то, что хотел, а не то, что пришлось.
                                                                                          +2
                                                                                          есть масса очень интересных задач, которыми в Ижевске (и в большинстве других мест) вряд-ли когда-то будут заниматься: языки программирования, ОСы, файловые системы (в том числе распределенные). Сейчас всем этим можно заниматься где угодно, но только «по удаленке».
                                                                                          PS. а, мы еще и знакомы ;)))
                                                                                            0
                                                                                            привет! сколько лет прошло? %)

                                                                                            да, по удалёнке вполне можно. собсно, если заказчик из оттудова, вообще неважно, в каком городе сидеть.
                                                                                              +1
                                                                                              много прошло, иногда пугает насколько много.
                                                                                              приятно видеть что выходцы из 204 продолжают работать в IT ;)
                                                                                                0
                                                                                                ха, 204 :)

                                                                                                следующее после моего поколение админят из 204 я встретил в ЕПАМе почти в полном составе. только почему-то все они оказались перебежчиками в стан дотнета.
                                                                                            +1
                                                                                            Хорошая статья, душевная. Автору новых успехов, а молодежи учиться на примерах вышеописанных)
                                                                                              +3
                                                                                              Когда зашел на ижмото.ру:
                                                                                              аааа(звук боли, а не крик)
                                                                                              image
                                                                                                0
                                                                                                а когда-то он был совсем другим. у меня даже где-то архив валяется со старым ламповым ижмото :)
                                                                                                +1
                                                                                                >Тут мне и спарк на Java (на Scala не перешёл, потому что не кандидат наук)
                                                                                                Кандидат-то тут при чем? У нас на Scala переходит примерно от четверти до половины спарк-разработчиков, исключительно по вкусу. Кому нравится — те и переходят. И никто из них не кандидаты ни разу. Попишут на spark-shell, и вперед.
                                                                                                  +4
                                                                                                  >Ребята, ну вот серьёзно, что вы забыли в Москве (или в заграницах)?
                                                                                                  Ну, мы много чего там забыли. Там может быть очень здорово — но если выбрать место (и работу) по себе. Я про заграницы в данном случае, потому что в Москве я и так живу.
                                                                                                    0
                                                                                                    Было интересно читать про родной город и знакомые компании. Спасибо!
                                                                                                      +2
                                                                                                      как можно делать вполне успешную горизонтальную программистскую карьеру, не выезжая из своего родного города, и занимаясь почти всё это время довольно интересными, если не безумными, задачами.
                                                                                                      История хорошая, но увы, вероятность и возможность подобного все-таки зависит от города. Где-то все-таки есть интересные проекты у местных заказчиков, филиалы мировых аутсорсеров, стартапы с иностранным капиталом, а где-то на весь город-миллионник 99% мест это веб-студии с сайтами-визитками, франчайзи с 1с, фирмы работающие на госсаказ со студентами-джуниорами за соответствующую з/п, госконторы с древним легаси на делфи 7 и заводы-производства с тем же самым (в двух последних случаях добавляется еще неслабый административный маразм), а что-то более-менее актуальное и интересное начало появляться только несколько лет назад (когда почти все знающие и умеющие уже разъехались по столицам, получив сразу прибавку в зарплате в 2-3 раза), да и то широта выбора гораздо скромнее.
                                                                                                        +2
                                                                                                        «Брат я с тобой», хотелось написать в процессе чтения статьи, но потом вспомнил что я лет на 10-15 помладше :))
                                                                                                        Менять работу, это нормально, не дай себе заскучать!
                                                                                                        Вы всё правильно делаете.
                                                                                                          0
                                                                                                          Примерный уровень зарплат middle-java разработчика в Ижевске ~60-80 т.р.?
                                                                                                          +1
                                                                                                          Спасибо за интересную статью.
                                                                                                            0
                                                                                                            смог попасть в лицей с математическим уклоном

                                                                                                            У меня хреново с математикой, имею ли я право быть программистом на С++?
                                                                                                              +1
                                                                                                              Кто-ж у Вас это право отнимет?
                                                                                                                +1
                                                                                                                Математичка конечно важна, но в повседневной работе её бывает много и сложной, только в специфических задачах.
                                                                                                                Да и сложные задачи с математикой легко решаются, все основные алгоритмы давно написаны и расписаны, а зная язык, перенести их не составит труда.
                                                                                                                Так что c++ ни чем не завязан на математику, обычное же программирование на любом языке сводится к оперированию над абстракциями.
                                                                                                                Математика конечно важна и очень пригодится, но она совсем не обязательно, тем более «высокого» уровня.
                                                                                                                0
                                                                                                                Часто наблюдаю, что называется, проблему «колеи», когда профессионалы теряют способность делать что-то по-новому / на другом стеке. Им говоришь — вот есть, например, какой-нибудь Qt/JS/Python (не важно, что именно), на нем можно сделать удобнее, а у них готовые отговорки, которые по сути сводятся к тому, что мы этого не знаем, и поэтому не будем пробовать, т.к. это напряжно.

                                                                                                                Поэтому мне интересно, бывали ли у Вас такие случаи, и есть ли какие-то, фундаментальные что-ли навыки, которыми лучше овладеть пораньше, чтобы потом не возникало барьеров при освоении новых языков, инструментов, технологий работы и т.д. (от Java и Spark, до CI и DevOps)?

                                                                                                                И другой вопрос — порекомендуйте какие-нибудь годные книжки для «инженеров-проектировщиков», где бы были описаны типовые архитектурные решения под разные задачи?
                                                                                                                  0
                                                                                                                  Живой ум требует новых задач. Это характер человека, а не навык. С возрастом желание экспериментов и перемен пропадает, это нормально.
                                                                                                                    +3
                                                                                                                    Переключение на незнакомый стэк — это увеличение сроков в разы. Разовые задачи обычно этого не стоят, а переключение «навсегда» означает «фиксацию прибыли/убытков» от инвестиций в текущий стэк. Ну и кроме «сделать удобнее» есть критерий «а кто это поддерживать будет?» Добавление новых технологий в стэк компании означает, что ей нужно будет либо искать специалистов, владеющих двумя стэками (что обычно дороже), либо искать специалистов, готовых освоить второй (что будет ещё дороже, потому что сначала надо будет оплатить обучение, а потом платить ему зарплату на уровне первого)
                                                                                                                      +1
                                                                                                                      Что бы быть не зависимым от ЯП или инструмента, изучайте не столько сам язык(инструмент), сколько различные способы решения поставленной задачи.
                                                                                                                      Базовое конечно же это классические алгоритмы и структуры данных.
                                                                                                                      А далее паттерны проектирования и различные уловки.
                                                                                                                      Хотя кто то и считает, что паттерны — зло, но не кто не заставляет использовать их именно в том виде, просто неся весь этот багаж, вы автоматически подбираете под задачу самые оптимальные и изящные решения.
                                                                                                                      Но и ещё не мало важный момент про приведенную колею: человеческий мозг так устроен, что выбирает пути наименьшего сопротивления, потому они и сидят на том, с чем хорошо знакомы.

                                                                                                                      В свое время начинал с книги «Приемы объектно-ориентированного проектирования. Паттерны проектирования», которая переиздается до сих пор.
                                                                                                                      Но лучше скорее всего найти что то посвежее и более актуальное(в ней используется ЯП Smalltalk, для примеров).
                                                                                                                        0
                                                                                                                        С паттернами надо быть аккуратным. По сути они костыли для языка или парадигмы. Например бОльшая часть паттернов из этой книги не имеет смысла в функциональном программировании.
                                                                                                                        0
                                                                                                                        у вас три вопроса, значит, дам три ответа.

                                                                                                                        1. любое новое должно быть оправданно.

                                                                                                                        либо по новому стэку должны быть наработаны best practices, либо по нему должна быть живая поддержка от вендора. в противном случае именно вы будете тем первопроходцем, который соберёт все грабли, и здорово потеряете в сроках и качестве.

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

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

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

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

                                                                                                                        3. всё фундаментальное по программированию как науке было написано ещё в восьмидесятые. не могу порекомендовать ничего, кроме классики. Дейкстра, Страуструп и т.п.

                                                                                                                        «архитектурные» же решения возникают, когда вам приходится делать three-way tradeoff оптимизации (скорость/память/стоимость — можно выбрать только одно), и вы начинаете применять классическую алгоритмику к задачам из реального мира. по книжкам этому научиться невозможно.
                                                                                                                        +1
                                                                                                                        Приятно и легко читать, спасибо!
                                                                                                                          +2

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


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

                                                                                                                            +2
                                                                                                                            однозначно плюсую :) такую фразу слышал: все захотят бегать, но не все успеют ;))
                                                                                                                            в 40 лет говорить о бессмысленности бега… неожиданно очень.
                                                                                                                              0
                                                                                                                              Возможно, автор имеет ввиду, что считал физкультуру бессмысленной именно в студенческие годы. В молодости и без спорта все прекрасно себя чувствуют.
                                                                                                                                0
                                                                                                                                да, я тогда так считал, и зря.

                                                                                                                                сейчас уже о спорте думать несколько поздно. мне известно несколько примеров, когда чуваки моего возраста вдруг становились айронмэнами, но мне здоровье такого и в юности особо не позволяло. ну, стараюсь хотя бы пешком побольше ходить, чтоб не скиснуть.
                                                                                                                                  0
                                                                                                                                  Когда прошлой осень осознал, что на работе ничего не поднимаю тяжелее кружки чая, а вскопать сотку земли уже тяжеловато, то решил и бегать, и отжиматься, и силушку подкачать, а в ближайших планах — плавание в бассейне. Уже и прогресс налицо — пробежав несколько сотен метров, не начинаю задыхаться — дерзайте, возраст — не помеха для начала занятия спортом.
                                                                                                                                    0
                                                                                                                                    главное — не резко это все начинать, а то организм таких нагрузок может не понять.
                                                                                                                                      0
                                                                                                                                      Я с ноября начал потихоньку. Поначалу и 20 отжиманий было в тягость. Бегать начал через пару недель, но не каждый день. Постепенно увеличиваю нагрузку.
                                                                                                                                      0
                                                                                                                                      Ну, для меня физические нагрузки исключены по объективной причине — у меня попросту не хватает нескольких отростков у пары позвонков. Родился с таким дефектом, и всю жизнь периодически мучился со спиной, но узнал о причине только пару лет назад, когда наконец проверился на современном томографе. Когда позвонок смещается, это, поверьте, более чем неприятно, так что весь спорт мимо. Слишком опасно, и возраст тут имеет значение — из-за естественного износа получить межпозвоночную грыжу куда проще.

                                                                                                                                      Но я стараюсь не упускать возможности пройти лишние несколько тысяч шагов, или проявить какую-нибудь другую физическую активность.
                                                                                                                              +2
                                                                                                                              Спасибо за статью. Читал кусками, но в целом все практически как у меня.

                                                                                                                              До 1990 мечтал быть моряком дальнего плавания, но как-то в трест Главдонецкстрой, где работала моя тетка, купили несколько 286. Все — тогда пропал моряк и родился программист. Образование — профильное, ДонНТУ по специальности «Компьютерные системы и сети», начинал студентом в 1998 с принеси-подай-собери, фотошоп, хтмл/пхп и пр…

                                                                                                                              За 20+ карьеры были и кровавые энтерпрайзы (банкинг, телефония), и стартап, и саппорт, и пара собственных проектов «просто так, для души», и продуктовые компании… В общем, чего только не было. Админом никогда по сути не был — неинтересно. Всегда что-то старался заскриптовать — даже если это был ексель с прайслистами.

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

                                                                                                                              Очень люблю свою работу и менять не собираюсь.
                                                                                                                                +1
                                                                                                                                Землякам и коллегам всегда однозначный плюс ).
                                                                                                                                На «кандидатов наук» не стоит смотреть снизу вверх. Между степенью и крутизной нет особой корреляции.
                                                                                                                                  +1
                                                                                                                                  Очень часто кандидаты наук больше теоретики, чем практики и могут заболтать кого угодно. Берешь такого на работу, а он ничего, кроме как «митинги сетапить», по сути и не умеет. Преподавательский опыт дает о себе знать.

                                                                                                                                  Попадаются самородки, конечно, которым действительно интересно то, что они делают, но тогда они и не вспоминают о своих степенях.
                                                                                                                                  0
                                                                                                                                  Алексей, мне друзья прислали ссылочку на ваш логрид… Очень приятно что от работы со мной как с заказчиком, у вас сохранилось столько позитива. Берегите свои таланты и здоровье!!!
                                                                                                                                    0
                                                                                                                                    привет! :)
                                                                                                                                    0
                                                                                                                                    После бигдаты можно добавить ещё искусственный интеллект :)
                                                                                                                                      0
                                                                                                                                      ну, у нас он есть в плане где-нибудь на послезавтра. если, конечно, предыдущие пункты воплотим.
                                                                                                                                      0
                                                                                                                                      Пришёл я побеседовать в место, где работаю сейчас

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

                                                                                                                                        Спасибо что выделил подобные цитаты. Они прекрасны и можно все не читать

                                                                                                                                          +2
                                                                                                                                          Автор (в оранжевом худи) и его коллеги с тортиком. На тортике написано «всё отлично» на 3 языках, Изображение

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

                                                                                                                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                                                                            Самое читаемое