Обновить

Разработчику нужно знать семь языков. Python, Go и Java в этот список не входят

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели13K
Всего голосов 20: ↑15 и ↓5+13
Комментарии27

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

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

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

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

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

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

Немного критики.

Прежде всего - мне понравилась статья. Да, очередной успешный успех, “семь правил которые сделают вас…”, и т.п, из-за чего, видимо, у нее (пока?) не так много плюсов. Но написано довольно живо, примеры яркие, лаконичные, правдоподобные. Прошу не обижайтесь на последнее определение, я циник и инженер - то что не могу верифицировать, а тем более может иметь внятное альтернативное объяснение, мне кажется правильнее назвать так.

Так вот, что собственно не понравилось.

Разработчику нужно знать семь языков. Python, Go и Java в этот список не входят.

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

“Для успешной карьеры разработчику нужно знать семь языков…” Что-нибудь в таком духе и формально точнее отражает суть статьи, и менее раздражает в итоге.

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

Вы раскрыли какие-то полезные, в определенном карьерном и личностном срезе, наверно более важные моменты. Но по заголовку и вступлению следует, что Вы это адресуете не (потенциальному) будущему staff engineer или абстрактному амбициозному юноше “хочу быть успешным и богатым, желательно быстро и не сильно парясь”, а некоему усредненному разработчику (инженеру). При этом вся техническая база мгновенно выносится за скобки и обесценивается. Да, мне лично хочется верить, это лишь потому что Вы настолько круты как инженер и недостаточно опытны как писатель, и для Вас это как умение ходить или дышать - зачем об этом вспоминать, пока ты моложе 80 и не под колесами сбившего грузовика. А не потому, что Вы (уже) не инженер, но бизнесмен/руководитель/продаван, которому эти инженерские штучки не интересны, а важно лишь навесить на тащащего ослика помимо инженерных задач еще вот это все софтскилловое дерьмо - тащи еще за соседа Петю, начальника Васю и собственника Федю, а мы тебе за это морковку, когда-нибудь, может даже настоящую.

Да, наверно самый крутой главный богатый инженер - больше про вот это все из Вашей статьи. Да, нынешняя (хотя точнее вчерашняя) айтишечка это уже не (с)только разработчики, а и 100500 тел подтанцовки, и вообще успешный успех, а не интроверт-ботан, кайфующий от решения инженерных задач. НО Вы же формально адресуете это инженерам. А это все-таки зачастую определенный склад ума, и иногда жизненная позиция. Все-таки эталонно это люди которые умеют/хотят/эффективны в решении определенного круга задач - грубо говоря, превращать некий локальный технический хаос в красиво работающий механизм. И не всегда им нужны (профессионально, материально, эмоционально) все эти межличностные игры с нулевой суммой, “угадай что я хочу”, “кто девушку ужинает, тот ее и танцует”, и т.д, и т.п.

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

Спасибо за обратную связь по форме.

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

Мои рассуждения о нетехнических аспектах карьерного пути действительно направлены на тех, кто хочет попробовать пощупать другие архетипы - не только инженерный.

Попробую по-другому проиллюстрировать мысль/идею за статьей.

Представим на месте опытного инженера опытного кузнеца. Он мастер своего дела, его изделия знает и использует вся округа. Но в силу ограничения в пространстве (те места куда кузнец может добраться ) и времени (то количество работы, которые кузнец может сам сделать за 8/10/12/16 часов) объем ценности, созданный таким мастером, тоже ограничен. Физику пока никто не отменял. И вот если кузнец пожелает увеличить зону распространения своей пользы на окружающих, ему придется решать вопрос масштабирования себя. Например, чтобы построить металлургический завод. И вот на пути между одного молота и наковальни до доменных печей и десятков тонн обрабатываемого металла в день, мастеру кузнецу надо будет осваивать и другие направления или, как я назвал это в статье - другие языки.

Я оценил и попытку причесать тезис под масс-аудиторию, и легкий подъ#б. Хотя и не берусь предсказать их пропорцию и преднамеренность.

Не знаю изучают ли в Германии русскую классическую литературу, но если те, ради кого Вы практикуете свой storytelling, и правда настолько серьезные господа, то могут не оценить Чичиков-стайл общение с отзеркаливанием собеседника :)

Если обратиться к немецкой классике, то у Гёте развитие всегда строится на единстве противоположностей. Как в „Фаусте“, где созидание невозможно без силы, которая „вечно хочет зла и вечно совершает благо“. Внимание к другой точке зрения — это не подстройка, а попытка собрать объемное видение.

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

Понравился заход! Класс!

Переформулирую со своей колокольни в виде критериев оценки:

  • технический - надежность решения

  • экономический - прибыльность

  • рыночный - востребованность

  • административный - минимизация рисков

  • социальный - когда хорошо относятся

оставлю на втором плане: творчество, инновации, экологичность

и наверняка еще много чего забыл :)

Нахера тогда на собеседованиях спрашивают языки, уровни изоляции транзакций, сетевые протоколы, SOLID (куда ж без него) итд? Они там все дураки, да?

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

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

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

Есть технические собеседования, а есть т.н. "behavioral interview". Погуглите про процесс найма в крупные компании, там одним кодингом на собеседовании не отделаешься...

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

Я почему спросил.

10 Дело в том, что чем мельче и глупее нанимающая сторона, тем больше у них нарциссизма и упора на эти ваши бехериовистические интервью — и тем больше статеек в линкедыне на тему "вчера я подскользнулся на куске собачьего говна, и вот чему меня научил этот случай в плане маркетинга и искусства продаж" — а дальше два экрана мотивационного нейрослопа от великого СЕО-фаундера конторы рога и копыта. Ни в одной крупной компании не позволят себе постить такое — да возьмите навскидку блог Майкрософта, Амазона или Нетфликса: найдёте — с меня пиво.

Я был поражён, насколько просто и приятно было пройти собеседование с инженерами моей компании: мы говорили о базах, нагрузках, очередях, ETL, IaC итд. Это был разговор инженера с инженером. Ну, пяток вопросов по софт-скиллам задали, но, скорее для оценки того, что я не наврал в резюме и действительно работал в указанных сферах.

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

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

Я ещё раз говорю и неустанно повторяю: инженер должен быть инженером. А ещё— взрослым и простым человеком не без доли скепсиса и с фигой в кармане.

20 GOTO 10

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

Есть только одна игра - игра престолов.

Хаос - это лестница.

Вот оно чего, Семеныч Петир. /s

Это как раз и есть необходимые, но недостаточные навыки

И не было бы проблемы, не будь людей, возлагающих эти все вещи на алтарь своего культа, как если бы им хотелось раздуться от гордости, струйно мироточить во все стороны Истиной Правдой итд. Очнитесь! 21 век уже на исходе, а вы всё надуваете свои лопнувшие пузыри корпоративного тщеславия. Это всё уже было. В каждой эпохе — да хоть бы в том же СССР. Помните?

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

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

6-ти месячные сеньоры не поймут

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

У меня была ситуация, вот прям подходящая под некоторые из этих пунктов… В компании появилась новая технология, а у меня появился проект, как эту технологию превратить в уникальный продукт. Он не давал огромной прибыли (какие-то сотни тысяч в месяц), но радикально изменил бы некоторые процедуры внутри компании, которые значительно повысили бы качество работы с клиентами и снизили нагрузку на сотрудников.

Я проявил инициативу, предложил уникальный продукт, который заодно выделил бы нас среди конкурентов, перед этим уже доказал свою компетентность (как мне казалось), показал выгоду (как мне казалось) - но все равно оказался не прав… А почему? Как раз потому, что не владел какими-то из этих важных языков.

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

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

Дополнительно мой ПМ подготовил модель, которая оценивает затраты, считает возможную прибыль, окупаемость и прочие интересные вещи, но… Как оказалось, сделал он это с помощью LLM и не вполне качественно…

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

  1. Почему так долго? Нужно максимум за полгода, а лучше - за квартал (что-то связанное с бюджетом, финансовыми отчётностями и т.п.), а проект был весьма сложным и включал более 10 микросервисов + старое легаси, которое надо было частично переписывать, и все это одним человеком, за год, без возможности кого-нибудь привлечь.

  2. За что тут платить? (“если бы твой проект приносил миллионы - разговор был бы другим, а так…”).

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

  4. Что будет, если ты уйдешь? (проект должен был быть написан на go, а людей с таким навыком в округе не наблюдалось. Мой ответ в духе “не обязательно искать разработчика под боком в эпоху удаленки” не был принят).

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

С моей точки зрения, парадокс просьбы “сначала сделай - а потом проси” заключается в том, что буквально за пару месяцев до этого разговора мы с моим начальником реализовали уникальный проект, который сэкономил компании несколько миллионов рублей, и этот момент был публично озвучен на очередном корпоративном собрании в присутствии тех же стейкхолдеров, и это никак не сказалось на моей зарплате, видимо, не считается…

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

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

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

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

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

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

Я понимаю, что Вы пытаетесь мне сказать, но довольно много нюансов осталось за рамками, которые позволяют комментарии.

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

Просто в этот раз получалось слишком масштабно и дорого. Как мне сказали на одной из встреч: “Да у нас коммерческий директор столько не получает!” (с)

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

Нюансы - они такие... Но реально, текущему работодателю продать идею за нормальные деньги - очень сложно.
Пример: мой прошлый работодатель, за идею автоматизации на производстве, которая сэкономила предприятию миллионы в год, заплатил что-то около 200 т.р.
ИМХО: Это всё что нужно знать о продаже идей по текущему месту работы :)

Французский учи.
Мадам и мусье. Дже не мар па си жур.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации