Похождения глазика или о граблях в топ компаниях / многобукв :: it

it многобукв 

Похождения глазика или о граблях в топ компаниях

Всем привет!

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

Здесь я поделюсь своим опытом с Амазон, Майкрософт и Гугл, а так же паре трюков с ними, которым я научился, пока собеседовался с ними по нескольку раз. 

Для контекста, мне 7 годиков как кодеру на C#, потому джуном меня назвать не получится. Но для любого от 1 года опыта на brainfuck тоже подойдёт. 

#1. Как выглядит сам процесс

В целом, он похож на 99% у всех троих. Все этапы состоят из одного из двух ингредиентов: задача по алгоритмам и поведение (о них чуть ниже), меняется только способ их проведение (и здорово меняется, на самом деле). Этапы у всех такие:

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

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

- 45 минутное интервью с действующим разработчиком

- 3 интервью с алгоритмами и 1-2 по поведению (4-5 всего) в течении одного - двух дней.

- результат: когда как, могут ответить в течении двух недель, а могут и за два дня

#2. Как попасть в этот процесс?

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

Пидор, если у тебя часто возникают мысли, "а не дурачок ли я?" и "зачем мне это?", то ты не один. Это нормально. Можно даже пройти собес в слабую компанию чисто для поднятия духа.

Если взглянуть на это с другой стороны, в одну вакансию за 3 дня накидали 400 заявок. И такое с каждой, рекрутер не в состоянии обработать их все.

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

Мне повезло: в 2021 и начале 2022, мне написали сами все эти 3 компании. Правда, был отсеян на последнем этапе у всех трёх. В этом году не написали, и мне удалось в процесс только с гуглом, за счёт поддержки рекрутера (чел буквально за пару дней меня закинул не просто в процесс, а сразу в последний этап).

#3. Интервью: Поведение

Техника STAR (или SAR) - сильнейший инструмент на моём опыте. Сперва было непросто понять как это работает, особенно на фоне 14 принципов лидерства Амазон (о них немного здесь https://habr.com/ru/articles/645045/, но ради бога, это лишь метрики, с ними можно свериться, но не ориентироваться, пользы мало, а дезориентации много). Но, с практикой это превращается в BFG9000.

Для тех, кто не знает, STAR - это когда ты отвечаешь по шаблону:
Ситуация/Задача — Situation/Task: Где, когда это произошло, почему это важно?- Действие — Action: что ты лично сделал, как ты это сделал, кто ещё учавствовал?- Результат — Result: как ты измерил выхлоп этого проекта? Какие результаты у тебя вышли?  * Экономия затрат, получение дохода  * Считай в цифрах, чтобы дать понять объемы, размеры, масштабы  * Изменение в процентах, годовые улучшения  * Время выхода на рынок, время реализации, экономия времени  * Воздействие на заказчика, команду  * Улучшение качества

Так же, приглашаю уделить 10-15 минут (не больше) этой статье, чтобы просто иметь представление о том, что это и с чем её едят: https://habr.com/ru/companies/netologyru/articles/691510/

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

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

Вернёмся к STAR. Рассмотрим пару примеров. Тебя просят рассказать о своих достижениях:

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

б) Может, работаешь с большим легаси приложением - швейцарским ножом для внутреннего потребления в компании. 

в) Ну или пишешь плагин чтобы было проще программировать роботическую руку, отвечающую за упаковку.

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

Как подготовиться:

Возьми любую задачу что ты решал и ответь себе на вопрос: что за проблему оно решило? Главное - цифры.

Задача:

а) Ты добавил фичу, проверяющую пользовательский ввод, если ты бэк.

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

г) Эм... ты написал драйвер на ассемблере, что работает на 10% быстрее предыдущего за счёт квантовых вычислений и расщипления чёрных дыр на атомы.

Решённая проблема (что было до этого - проблема, и что после - результат):

а) Пользователи раз в день* вводили неверные данные. Это нарушало работу нашей системы и нам присылали задачи их исправить. Такая задача занимала час в день. С введением этой фичи, я сэкономил 1 час работы, это 1 час разработчика каждый день

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

б) У нас был неинтуитивный пользовательский интерфейс (*зевок*). Это заставляло продажников тратить в среднем по 1 минуте в день на поиски нужных кнопок, когда они работали с приложением. Всего у нас 10 продажников. Итого, я этим сэкономил примерно 1 час в неделю, а так же избавил продажников от стресса (пункт: влияние на заказчика, команду) путём улучшения качества софта (тоже пунктик).

в) Нам раз в неделю* поступали жалобы об интересном баге (о котором написано выше). У нас не было точных метрик (если же были - используй!), но где-то 10 пользователей из 50 всего натыкались на этот баг, из-за которого они перезагружали приложение, чтобы сбросить странный цвет, и потом писали негативные отзывы о нас**. Что я сделал: я обнаружил, что в определённом сервисе есть неучтённый случай работы пользователя ногами и добавил туда проверку. Так, я исправил этот баг, и снизил кол-во негативных отзывов о нас с 1 в неделю до 1 в квартал.

    * опять же, конкретная цифра
    ** не забыть про то, какая была проблема

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

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

У меня получилось ускорить процесс на 10%, что ... (повторяешь то, что написано в начале этого пункта, да и идея, надеюсь, понятна).

Перевод в STAR:

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

Итоги:

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

Разумеется, если роль зовётся "XXL лид разраб на облаке", а ты пилишь мелкие веб приложения, то такой пробел техникой не закроешь. Но можно подать себя более выгодно, если есть хоть какой опыт (именно лидом и именно облако) и ты умудрился попасть на собеседование.

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

#4. Задачи и Алгоритмы

Немного метрик. У меня всего где-то 300 решённых задач + кой какой опыт с компаниями ранее. Этого не хватило.

У этого блогера (

) их под 600, и его взяли. Правда, он не только их решал, но ещё и объяснял, и делал видео.

Получается, надо додрочить эти алгоритмы как раз до 600 штук чтобы был высокий шанс пройти эту часть (люди с 3000+ решенными задачами за годы, ебать вы высокие). Так ли это - узнаю через пол года/год :)

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

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

Результат: не хватает эффективности. Решаю я их слишком медленно для формата "45 минут на всё" и запинаюсь иногда. То есть, обратное от того, что говорят, надо именно придрочиться к алгоритмам.

## Язык программирования?

Вообще похуй (с). Писал на своём без проблем. С brainfuck будут проблемы потому, что это brainfuck.

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


Подробнее
My Brain after 569 Leetcode Problems
it,многобукв
Еще на тему
Развернуть
>Немного метрик. У меня всего где-то 300 решённых задач + кой какой опыт с компаниями ранее. Этого не хватило.
Тебе фидбэк пришел о том, что именно решения алгосов стали слабым звеном, или это сложившееся у тебя мнение?
Это фидбек, прямым текстом там говорилось: the performance isn’t too strong, there are a few gaps in the technical performance that we’re simply too strong for the moment
*were simply too strong
Спасиб, мужик!
Я правильно понимаю что ты под каждую вакансию переделывал резюме и писал отдельный кавер леттер?
Если из топовых, то я пытался писать рекрутерам напрямую, указывая, что доходил до последнего этапа с их коллегой (которые ушли) ранее. Безрезультатно.

Я так делал с другими компаниями в наиболее развитых странах (США, Англия, северные страны, Швейцария). С ChatGPT это стало делать куда проще. Но всё в молоко
Из личного и довольно ограниченного опыта могу сказать, что cover letter это устаревший концепт и никто их не читает, по крайней мере в северной Америке. Из всех интервью на которые я попадал я вроде бы только на одну позицию cover letter писал, на все остальные только резюме подогнанное под вакансию.
Но если его не будет, не будет ли рекрутер сразу в мусорку выбрасывать резюме, типа первичную проверку кандидат провалил?
Вот да, я тоже чет такое слышал что кавер леттер все таки нужно.
Может некоторые и будут, но меня вполне приглашали на интервью и без cover letter. И гораздо чаще, чем с cover letter. Если вакансия прям очень уж интересная, то может и есть смысл с ним заморачиваться - хуже точно не будет. Но если вакансия не лучше других на рынке, то тратить время на написание нешаблонного cover letter я не вижу особого смысла.
Вряд ли кто-то их читает. Банально нет времени. А резюме стандартизировано, его просто взглядом сканируют и кейворды оттуда дергают - отсюда и статья с лайфхаком от какогй-то там девушки, которая полную пургу в резюме написала, но накидала кейвордов и пошла в процесс.

HR - сканируют кейворды.
Dev - тут описание проектов, это повод для разговоров и оценки знаний. Но тоже сканируется, так что писать стоит по шаблону: краткое описание, перечень выполняемых обязанностей, стек технологий. Попалоо мне как-то CV челика, который решил, что "им же скучно шаблонные резюме читать" и написал его в форме литературных рассказов - я его ненавидел еще до интервью. Угадайте как он прошел тех. собес?

С интернациональной компании вот есть инфа, что сейчас в США и Канадах всяхик в резюме ни грамма правды нет(вирус про "лайфхаковое" резюме распространился) и прям на интервью приходится узнавать про реальный опыт(был ли он вообще) и что-то спрашивать. Если приплюсовать к этому GPT с его способностью щелкать алгоритмические задачки, я бы сказал, что сейчас умение оценить человека просто с ним пообщавшись - ахренеть ценное. НО! С этой всей толерастией и "эффективностью", компании продолжают идти путем стандартизации и цифровых метрик, где их все больше будет ебать GPT, прочие нейронки и смекалистые соц. инженеры.

Встает вопрос стратегический: хотите ли вы работать в компании, где большинство сидят на своих местах не потому, что они любят свое дело, а потому, что они хорошо умеют наебывать статистические метрики корпы? Я лично считаю, что опыт работы будет сомнительным, а психологическое давление, разрушающее самооценку и нервы, высокое. Нужны вам по жизни разъебанные нервы и умение выживать корпоративных дрязгах?
если пишешь напрямую на почту рекрутеру, то какую-то приписку желательно добавить, кроме самого файла резюме, но сейчас заявки в основном отправляют или через сайты типа indeed и glassdoor, или через формы на сайте компании-нанимателя, никакой видимой разницы эти письма не добавляют, да и сомнительно, чтобы рекрутеры читали всю эту однообразную писанину про то, как ты всю жизнь мечтал попасть в их шарагу
Насчет первоначального фильтра стоило бы расписать поподробней. Сейчас практически весь крупный и средний бизнес использует ATS (applicant tracking system). Эта хуйня автоматически отсортирует для HR все сотни или тысячи резюме которые пришли по наличию в них нужных ключевых слов и если у тебя этих ключевых слов в резюме нет, ты можешь быть сколь угодно охуенным, но живой человек на твое резюме даже не взглянет ибо оно будет где-то в третьей сотне от начала. Ну а нужные ключевые слова нужно уже искать в самом листинге и органично вплетать их в свое резюме, а то некоторые лентяи на полном серьезе сейчас уже начали втыкать в резюме секцию keywords (еще и другим эту глупость советуют) и там все эти триггеры перечисляют. Фильтр ATS такое резюме конечно пройдет, но когда оно дойдет до HR, вряд ли она будет в восторге от такой креативности.
А вот это оооочень интересно. Я даже забыл про ATS, а ведь это большая часть в самом сложном этапе - начальном. Навскидку помню только что лучше не ставить таблицы со столбцами в резюме.
Да, таблицы и стобцы надо убирать если есть т.к. в ATS резюме отображается как plain text и все эти красивости разметку к хуям похерят и в худшем случае резюме будет совершенно нечитаемым. При том количестве кандидатов, которые подаются на каждую вакансию это практически гарантия что HR тебя скипнет.
ответным письмом приложите свое портфолио и укажите удобное вам время для собеседования в скайпе
И это только только на первой странице было открыто руководство по brainfuck
Выскажусь по поводу литкода и иже с ним. Претензия не к уважаемому пидору, а к компаниям. Умение решать ЗАДАЧКИ не говорит о кандиддате ровным счетом ничего, кроме как то, что он умеет решать задачки. Более того, это умение сравнительно легко приобретается за месяц-два задрачивания литкода.

А вот ценность, как раз, представляют практические знания: проектирование архитектуры, теория сетей, ос и распределенных систем, и прочее, прочее. Увы, менеджерки в погоне за гуглом организовали каргокульт, и вместо действительно нужных специалистов нанимают гениальных сортирователей списков, которые превращают кодовую базу проекта в неподдерживаемое дерьмо, потому что ПРОЕКТИРОВАТЬ они не умеют в принципе. Гугл использует эту методику, потому что богат и может себе позволить найти задротов, нанять их на годовой контракт, а потом отсеять тех, кто не имеет инженерных навыков. Все остальные тупо повторяют за ним, не понимая сути.
Умение в алгоритмы необходимое, но недостаточное требование.
Поэтому вроде бы и спрашивали за решения/влияния/метрики
Умение в алгоритмы != литкод-задротство. Всё, что на самом деле требуется - обзорное знание каких-то алгоритмов и понимание O-нотации, чтобы не плодить код с квадратичной сложностью. Никто в здравом уме не заучитвает Кнута, чтобы решать задачи на время. То, что сейчас происходит - суррогат собеседований.
>Умение в алгоритмы != литкод-задротство. Всё, что на самом деле требуется - обзорное знание каких-то алгоритмов и понимание O-нотации
Ну так проверяют как раз это + ещё и сколько человек задрачивал свой навык либо как быстро соображает, что для компании одно и тоже.
К тому же, обзорное знание и понимание нотации, как по мне, тоже недостаточный навык. Чем больше ты задач прорешал, тем выше шанс, что ты столкнешься с какой-то ситуацией и поймешь, что в ней можно применить вс "я пытался в велосипед, потом погуглил алгоритм и сделал ктрл с ктрл в, либо ниасилил".
Причем как всегда в программировании, ты думаешь что тебе не нужна математика, пока ты не сталкнешься с задачей, решая которую ты подумаешь: "а неплохо было бы иметь года 3 математики за спиной", а алгосы и математика идут рука об руку.
Исходя из всего этого, вариант тестировать людей литкодом - далеко не худший вариант
> Ну так проверяют как раз это + ещё и сколько человек задрачивал свой навык либо как быстро соображает, что для компании одно и тоже.

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

> Чем больше ты задач прорешал, тем выше шанс

Ну вот тебе ситуация. Дан эмулятор клавиатуры, который по какой-то причине не работает в Apple UEFI и не позволяет зайти в его загрузочное меню, а вот в Bootcamp уже работает. Что делать будем? Сколько задач литкода надо прорешать, чтобы разобраться в этой проблеме?

> алгосы и математика идут рука об руку

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

> далеко не худший вариант

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

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

Ты подменяешь "базовые знания алгоритмов" на "дрочение литкода". Не надо так.

Потому что потом приходит тело на собеседование с резюме в котором гордо указано количество решенных задач на литкоде, и в итоге при решении тестовой задачи пишет лютейшую неподдерживаемую хуиту и/или неспособно написать xUnit тесты для своего решения.
>Ты подменяешь "базовые знания алгоритмов" на "дрочение литкода". Не надо так.
Не подменяю. Литкод позволяет демонстрировать сказанное.
>Потому что потом приходит тело на собеседование с резюме в котором гордо указано количество решенных задач на литкоде,
Просишь показать решения, просишь решить самостоятельно на время, раз он такой охуенный, получаешь понимание - знает человек алгосы или нет, что и требовалось изначально.
Я скажу даже больше предыдущего оратора - даже знать о существовании конкретных алгоритмов не обязательно. Нужно просто знать о том, что твоя задача является типовой и что для её решения есть готовые алгоритмы (ну и понимать как оценивается сложность алгоритма, чтобы выбрать из перечня подходящий тебе).
Я вот с ходу от силы тройку названий алгоритмов сортировки вспомнил. При этом мне не приходилось, на моей памяти, ни разу писать руками алгоритмов сортировки, поиска, поиска пути (на самом деле, их даже копипастом практически не приходится использовать).
Если мне понадобится - я загуглю перечень алгоритмов под мою типовую задачу, посмотрю на их сложность и скопирую.

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

Подтверждаю. За 5+ лет кровавого энтерпрайза с Java не было такой хуйни ни разу. Там скорее - у нас наебнулся проадкшен в 3 ночи, на вот кусок логов, ssh-консоль, 20 минут - ебись!
+
В геймдеве такого не встречал за 9 лет, чтобы надо было алгоритм знать. Тригонометрия, векторная алгебра или работа с матрицами - да, надо было знать, алгоритмы - нет.
Всё гуглится в момент потребности (а такое ой как редко бывает) - главное знать, что твоя задача является типовой и для неё есть готовые решения. Ну и понимать что такое О-нотация
Чееел, а открой личку, а? У меня как у джава личинки вопросов торба...
>В реальном продакшне не бывает ситуации, когда тебе надо вот прям щас быстро написать алгоритм сортировки, иначе сервис взорвется и компания разорится.
Straw man argument. Можно перевернуть - уже упало и надо быстро чинить как раз алгос. Смысл таких примеров? Сказать, что надо пойти гуглить готовое решение?
>Ну вот тебе ситуация. Дан эмулятор клавиатуры, который по какой-то причине не работает в Apple UEFI и не позволяет зайти в его загрузочное меню, а вот в Bootcamp уже работает. Что делать будем? Сколько задач литкода надо прорешать, чтобы разобраться в этой проблеме?
Шанс, а не "ликтод покрывает все задачи". Как это в вашей голове вяжется с компонованием готовых решением, я, честно говоря, так же не понимаю. Найти место, где литкод не поможет - проще простого.

> Написание продакшн-кода — это почти несвязанный с этим процесс.
Есть очень разные продакшен коды. Кто-то делает бд, кто-то скручивает железки, кто-то джсоны перекладывает, кто-то перекладывает джсоны в терабайтах, абстрактно говоря. Сужать рамки до "реальный продакшен код" - это no true scotsman аргумент.
Да блинский блин. 90% вообще дрочат фронтэнд. И от них там требуется хоть какое-то понимание Ангуляра, Вью или Реакта, а не умение реализовать квиксорт в одну строку.

Если мне прилетит на код ревью "высокооптимизированное" решение задачи, которое потом невозможно ни сопровождать, ни оптимизировать - то оно полетит в реджект. Потому что если у меня есть задача, которая выполняется раз в неделю в ночь на воскресенье - мне пофиг будет она крутиться 15 минут или полчаса. Мне не пофиг покрытие тестами, и модифицируемость этого решения. Мне не пофиг чтоб эта задача была реализована за день, а не дрочилась неделю.
>Мне не пофиг покрытие тестами
Если решение не покрыто тестами, то это по умолчанию не решение, так что тут согласен, в реджект и пофиг какое оно там умное или глупое.
>Если мне прилетит на код ревью "высокооптимизированное" решение задачи, которое потом невозможно ни сопровождать, ни оптимизировать - то оно полетит в реджект.
Честно говоря, на этом можно сворачиваться
Вместо "оптимизировать" там должно было быть "модифицировать". Но я думаю ты это и так понял.
Господи, количество баззвордов просто зашкваливает.

> надо быстро чинить как раз алгос

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

> Найти место, где литкод не поможет - проще простого.

Проще найти место, где он не поможет, чем то, где поможет. А если он не покрывает даже 1% работы разработчика - он нахуй не нужен. Вон, О-нотация и обзор алгоритмов по кнуту - и достаточно.

> Есть очень разные продакшен коды.

Всё продакшны имеют одну общую деталь: на них нельзя ставить неконтроллируемые хотфикс-эксперименты при аварии. Точка. Это сводит на ноль полезность наговнякать алгоритм за пять минут.
Плюсую
Хотел бы я что-нибудь добавить, но как-то и нечего даже.
Ваш спор выглядит как спор студента-олимпиадника и человека, который непосредственно разработкой занимается
> Шанс, а не "ликтод покрывает все задачи". Как это в вашей голове вяжется с компонованием готовых решением, я, честно говоря, так же не понимаю. Найти место, где литкод не поможет - проще простого.

Тут вопрос найти место где литкод поможет. Я за много лет пока не нашёл
ну с одной стороны ты прав. "бег в мешках"
с другой стороны задрачивание даже абстрактных задачь таки развивает. Вот я в душе не еду за литкод и пол года тому таки не с первого раза написал А* и алгоритм дейкстры даже с методичкой. С третей стороны - если бы не знакомый студент со своими лабами, я бы вообще никакой а-стар не писал. А с четвёртой - я и не в гуглоле же.
Противное в алгоритмах то, что если ты их не дрочишь постоянно, то забываешь. Года 1,5 назад очень активно задрачивал их, А* как самый оптимальный уже был в движке, а вот несколько неоптимальных, специально нужных мне, не было. В тот момент писалась реализация без проблем. Но спроси сейчас - я без вики даже весь использованный опробованный список не вспомню по названиям. Ну жадные. Ок. Ну Дейкстра - да. Подробнее - увы. А ещё лет 6 назад я мучал SGP-4 из spacetrack report (упрощённая модель предсказания положения объекта на орбите планеты). Даже написал реализацию. Сейчас - я только помню об этом факте.

Насчёт развития я вот тут совсем не уверен. Делал только потому что было по кайфу на тот момент сделать. Но не уверен, что это хоть как-то какие-то мои скиллы прокачало.
я думаю что прокачало. Если не непосредственное знание алгоритма, то понимание каких-то смежных ситуаций, знание о самом факте наличия такого алгоритма, области применимости. Конечно без использования это тоже забудется, но в целом, имхо, в голове что-то полезное останется.
На самом деле не забываешь. Точнее да, ты сходу в 3 ночи не вспомнишь этот алгоритм. Но потрать 2 часа - и все будет. Я вот сейчас, кушая мороженку, не напишу реализацию А*. Но если это завтра надо будет на проекте - я освежу знания и таки смогу его реализовать.
> я бы вообще никакой а-стар не писал

Именно. Реальность такова
Так и есть, алгоритмы в интервью - основная критика этих компаний. Тем более, что сейчас чатгпт с ними хорошо справляется.

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

Пересмотрев гайды и видео решения же, я научился… лучше рисовать диаграммы.

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

Система у них в этом плане простая, смотрят у кого лучше результаты. Что, в связке с самими алгоритмами, и делает её такой неэффективной.
У гуглов и микрософтов такой поток кандидатов, что им нужны искусственные ограничения. Например можно по гороскопу отбирать только стрельцов. Или тех кто знает почему люки круглые. литкод это просто такой искусственный фильтр чтобы сократить 300 кандидатов на место до каких-то более разумных пары десятков, из которых можно уже выбирать разумно
Похоже на какую-то корейскую гриндилку, где нужно дрочить ачивки.
С литкодом это так и есть. Причем чаще всего, на сколько я понимаю, эти алгоритмы потом не особо то и нужны будут при работе.
У 99% - нет, не нужны. Больше нужно понимание платформы под которую ты пишешь. Понимание методологии (тесты - это хорошо и даже необходимо, mkay?)
скорее похоже что им нужны специалисты обучившиеся проходить собесы и только.
реальной практикой во всём этом ёбанном бреде даже не пахнет:
1. кто-нибудь дал реальный код и попросил дописать фитчу или найти баг?
2. кто-нибудь дал устаревшее гавно мамонта и попросил с ним разобраться?
3. когда нибудь вообще имитировали на собесе работу в команде а не тет-а-тет?
или им нужны вундеркинды-одиночки-велосипедописатели с нуля?
Интересно, спасибо
Читал/слышал еще про лайфхаки с рефериалкой для североамериканских фирм. Процесс упрощается в разы, если тебя рекомендует кто-то изнутри компании
Да это в любой стране работает. "Социальные связи" называется в нормальных случаях. В плохих случаях зовут кумовством.
Так не только в американских компаниях
Не то, что бы прям в разы упрощается, но на первоначальное интервью практически гарантированно попадешь и не надо будет ебаться чтобы пройти фильтры ATS. Ну а дальше будет уже на равных конкурировать с другими кандидатами которые HR отберет для менеджера.
Логично же. Это какая-никакая гарантия что ты не совсем ебобо. Потому что всегда есть шанс взять человека с отличными техническими знаниями, который окажется ебянутым токсиком. Ни одному лиду такое нахрен не надо. А так по крайней мере можно спросить "Как он/она вообще в работе, не сильно тупит? На коллег не кидается?"
Вот с одной стороны в работе вроде как требуется знания клауда, докера, CI/CD процессов, 100500 тулов логирования и мониторинга, обсуждение устройства системы часами, использование различных библиотек и прочего, построение интеграционных тестов, интеграция сторонних API, систем обмена сообщения и т.д. и т.п. И алгоритмами нигде вообще даже и не пахнет. Нет там столько кодинга, нет работы со сложными вычислениями. Но на собеседовании решение алгоритмических задач, да.

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

Похоже всё как человек выше писал: такие задачки способ найти задротов, а задроты и рады работать больше получать меньше.
Однажды эти конченные собесы меня доебали - и я решил работать на себя.
Аналогично.
Пилите кулстори отдельным постом.
Сначала напилил сюда, потом передумал. Мой опыт не особо полезен другим пидорам, и единственный вывод, который из него можно сделать - чем больше ты знаешь - тем лучше. Главным образом - не быть программистом-на-языке.
Всё равно интересно почитать ведь. Для меня тоже статья ОПа о том, как он проходил собесы в FAANG не очень полезны, для меня это что-то заоблачное. Тем не менее.
Может соберусь когда-нибудь. Если кратко - 9 лет проработал в яндексе, уволился во время ковида, и очень не хотел готовиться к собесам и решать ЗАДАЧКИ. У меня был специфический петпроект с коммьюнити, которое, когда узнало, что я безработный, начало мне донатить на свежеоткрытый патреон. Потом под мой софт (там целая ось, на самом деле), мы решили выпускать железо. Выстрелило, железо продается по всему миру.

Чтобы всё сделать, надо было и реверсить особенности протоколов USB для девайсов, и писать патчи на ядро, и прошивки для МК, и микросервисы на питоне для эмбеддеда, и видеостриминг с нуля на сях, и прочее, прочее. У меня большой опыт в архитектуре и распределенных системах, плюс я линуксоид-олдфаг с нулевых, поэтому осилил.

Короче да, чем больше знаешь - тем лучше. И желательно без привязки к одному языку.
Шарписты нужны? )))))))))))))
Хочешь ко мне на работу?)
Зависит от ЗП ))
У меня стори не очень ординарная и мне сейчас сильно повезло находится на том месте, где я сейчас нахожусь. Тем не менее, хочу соскочить.
Если кратко: 9 лет работал врачом (я пилил об этом пост где-то год назад), переучился на программиста, почти 2 года на галере писал скрипты на шарпе, недавно меня схантили (буквально 2 недели на новой работе), но тоже ебучие скрипты на шарпе, хоть и платить стали х2.5. Конкретно сейчас учу реакт, потом сяду за го, но соскакивать буду сразу после реакта. Вряд ли тебе такой нужен ))
Сорян, но вряд ли. Вот реакт + голанг бы пригодился, хоть и не прямо сейчас. На голанге у нас большая распределенная штука пишется со сложной сетевой логикой, реакт нужен будет для морды. Голанг учи, я прям от души советую. Синтаксис, конечно, говно, но компилируемость + асинхронность творят чудеса. С ним ты всегда найдешь хорошую работу.
Я особо и не рассчитывал )
Но голанг обязательно выучу, это да.
и какие плюсы в го по сравнению с шарпом?
шарп уже выиграл синтаксисом и он идеален во всем

> компилируемость + асинхронность
это плюс го?
серьезно?
Мальчик, не мешайся, тут взрослые дяди разговаривают.
был бы ты взрослым
не врывался бы с ноги
Бля, ну вы друг друга стоите )
Один обсирает шарп, другой обсирает го и оба друг друга не слушают )
В шарпах тоже есть асинхронность и многопоточность (вот это да!), но она накручена на него сверху, и это произошло уже после того, как язык полностью сформировался. Подстраиваясь под современные тенденции, Microsoft добавила к своему языку многопоточность, а потом одну абстракцию над ней, потом другую.
Го изначально был спроектирован так, чтобы быть многопоточным. При этом он легко компилируется в исполняемый файл и ему не надо при этом стопицот библиотек весом овер 100мб, чтобы взлететь, он просто компилируется в экзешник и всё.
Ну и остальные штуки по поводу синтаксиса и прочих плюшек, которые изначально закладывались в го.
Вот сейчас обидно было. Где я обсирал шарп? Я даже подчеркнул, что язык-то хороший.
Ну ладно тебе )
Ты ему ответил, чтобы он учил нормальный язык. Что подразумевает, что шарп не дотягивает до нормального ))
Нормальный в рамках мира бекендов)))
Да нормальный он ))
Нормальный. Но не в рамках новых линуксовых бекендов %)
> Ну, пару нормальных языков типа питона и го, например. Дальше только теоретические знания.

тоесть этой фразой ты как бы сказал что шарп говно

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

а вот тут как бы полная не проф пригодность твоя

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

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

Нет. Ты читать не умеешь.

> а вот тут как бы полная не проф пригодность твоя

Безработный шарпист ты, а профнепригодный я, лол.

> неужто совесть заиграла?

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

чувак, ну это быдлячество с твоей стороны


а по поводу профнеприпригодности он скорее всего имел в виду то, что
шарп уже давно на линуксе (.net core). Лично мне не приходит в голову ни одной причины, по которой стоит выбрать питон, а не шарп на бекенд под линукс
Причина довольно простая. Если в твоем беке производительность на единицу процессов не слишком важна, то лучше взять питон, потому питонистов тупо больше, чем шарпистов. А если важна, лучше писать на любом компилируемом в нативный код языке.
На самом деле, много компаний работают именно на шарпе, в основном веб бэкенд, но некоторые, например DuckDuckGo, ищут десктоп. Но я могу говорить только про вакансии в Европе и США, что видел.

.NET Core, новая (с 2016) экосистема для шарпа, она кроссплатформенна. Работает на линуксе в том числе. На нём довольно просто создавать всякую всячину, в теории. На практике, к примеру лучше использовать ангуляр/реакт как фронт и общаться по REST чем мудохаться с неповоротливыми Blazor и WCF. Но веб АПИ или десктоп делается просто.

Потому, это уже не цугундер только для винды, и не стоит смотреть на него как на говно.

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

Как бы то ни было, осторожнее со словами. Пренебрежительное отношение к чему-либо - гиблое дело, оно бьёт в первую очередь по твоему комьюнити, отталкивая людей и формируя стереотипы. Я ознакомился с Линуксом лет на 10 позже чем мог бы именно из-за такого
Вряд ли в одной.
WCF уже тоже легаси, нового на нем ничего не пишут. Blazor штука странная, хоть и интересная. Эдакий Квазимодо)
> Если в твоем беке производительность на единицу процессов не слишком важна, то лучше взять питон

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

> потому питонистов тупо больше, чем шарпистов.

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

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

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

В питоне строгая типизация.

> ему дохера лет

Лет дохрена, но не будь он хорошим языком, на нем бы не писали. Вон, Ruby почти его ровестник, моложе года на четыре, но никому не нужен по причине отбитого синтаксиса и более медленного развития. Главная фишка питона тех лет, имхо - при сильной типизации он сохраняет возможность жонглирования объектами, за счет чего получается писать более компактный код бизнес-логики.

> Шарп медленее плюсов не потому что плюсы компилируемые, а шарп нет, а в основном из-за сборщика мусора.

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

пардон. я про явную

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

> Лет дохрена, но не будь он хорошим языком, на нем бы не писали.
Javascript *картинка с плюшевой обезъянкой*
На выбор языка для проекта то, "хорошй" язык в вакууме или нет влияет далеко не в первую очередь.
Тот же джаваскрипт при всём удобстве "жонглирования" объектами для больших проектов использовать нельзя ни в коем случае.

> В го...

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

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

Чтобы питон не ругался на типы в рантайме, были придуманы аннотации. Если ты реально пишешь код с аннотациями и затем запускаешь mypy, то он отловит тебе все ошибки типов еще на этапе разработки. Это особенность питона: когда делаешь проект, сразу к нему подключаешь pylint+flake8+mypy+vulture - и всё, тебе ничего больше не страшно. При этом динамическую типизацию у тебя никто не отбирает, и если очень надо - можешь пожонглировать объектами.
> Типизация бывает статическая и динамическая, а еще сильная и слабая.

А ещё явная/неявная, при том, что хоть она статическая или динамическая, хоть сильная или слабая

> Тс фиксит это, но под капотом это все тот же угребищный жс.

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

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

Звучит убедительно
У JS свои проблемы. В принципе, применимо, но я просто брезгую %)

> Звучит убедительно

Справедливости ради, линтеры надо использовать вообще с любым языком и проектом.
> Звучит убедительно

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

Но часть про шарп на беке актуальна
Здесь нужен отдельный пост
У меня может тупые вопросы, тк я не прогер, а сварщик. Но вот, допустим, я выучил react native какой-нибудь, тайпскрипт, nodejs, postgresql, линукс, гит, английский хорошо знаю, почему я должен куда-то идти устраиваться джуном, чтобы там за копейки пахать? В смысле, почему нельзя свое пилить, пытаться раскуручивать и монетизировать? Каких-то знаний не хватает- маркетинга, рекламы, сео? Так может быть эти знания и нужны были в первую очередь?
Я только могу стол собрать и сварить. Могу и делаю!
Ну а если серьёзно, то может не хватать не столько знаний, сколько софтскилов или другого психотипа. Я вот попробовал предпринимательство. И ну не мое это, бесит меня продавать, бесит пинать сотрудников, искать сотрудников, которых не надо пинать, искать деньги, искать связи, общаться с людьми которые мне неприятны, потому что от них могут прийти заказы или мне от них что-то нужно, и т.п. У каждого свои черты, в которых они сильны. Я траблшутер, мне было интересно открывать бизнес - а вот вести его это уже другая история, от которой я выгорел в конец.
Знаний тоже не хватит. Понимания как лучше делать в той или иной ситуации, какие могут вылезти баги и проблемы для юзера. Как все это предотвратить или свести к минимуму. Ни разу я не видел айтишника, который писал код хотя бы уровня мидла сразу после учебы, какой бы она ни была. Я уже молчу о том, что время соло проектов практически закончилось. Не выйдет в одно рыло сделать финансово успешный проект.
Ты прямо вопрос века задал. Это ортогональные друг другу вещи. Кто-то хорош в технических скиллах, кто-то - в общении с людьми.

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

И кстати
> Но вот, допустим, я выучил react native какой-нибудь, тайпскрипт, nodejs, postgresql, линукс, гит, английский хорошо знаю, почему я должен куда-то идти устраиваться джуном, чтобы там за копейки пахать?
Потому что нихуя ты не выучил. Никакие курсы или самообучение не заменят реальный опыт.
Так это же разве не раельный опыт будет? По-моему реальнее некуда. Я бы так и делал, если бы начинающим джуном был. Допустим, я сделал сайт на вордрессе, начал его раскурчивать, контентом наполнять, тудым-сюдым. Хуй, никому не интересно. Закрыл. Или там написал приложение, считающее калории какие-нибудь. Ага, кто-то скачал. Какой-то проект ведь рано или поздно выстрелит. На худой конец, можно какие-нибудь обучающие курсы запилить- это всегда востребовано
За идею с курсами - будь ты проклят. Серьезно, этого говна, сделанного джунами для джунов - как, ммм... говна. Потом приходится людей переучивать.

Реальный опыт - это когда у твоего проекта есть пользователи. Когда появляются фичи, которые они хотят но ты не очень хзнаешь как реализовать. Просто пока ты делаешь "для себя" - ты подсознательно будешь избегать вещей которые ты не умеешь. А без челленжа не будет развития
> В смысле, почему нельзя свое пилить, пытаться раскуручивать и монетизировать?
> Хуй, никому не интересно

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

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

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

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

но это охренеть какое исключение из правил.
нет. Это не те знания, которые нужны для работы на проектах. На проекте ты в команде. И учишься работать вместе с другими людьми. Общаться с ними, преодолевать трудности.
Но ты получишь знания создания своих приложений. Это бизнес.
И как любой бизнес, он потребует вложений. То есть, ты не будешь ишачить за малые деньги, но вложишь свои. Тебе потребуется хостинг или заход в магазин мобильных приложений. Также реклама. Так что тебя ждут сложные времена и финансовые потери.
А ещё, чтобы что то нормальное написать и ещё и работать при этом, ты потратишь года 3-4. Пока разберёшься с фронтом, бэком, базами данных, безопасностью и т.д. без отрыва от электрода, так сказать.
вот тебе мой пример - я ебашил проекты на ZennoPoster(браузер с приваренным к нему редактором действий, с возможностью писать чистый код на c#) - за 5 лет работы(с 2015 по 2019) у меня было некоторое количество разнообразных проектов, как веб автоматизация, так и апи.
Основная проблема которая у меня была - не рубил в маркетинг и прочее. Просто по сарафану приходили.

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

знаю народ, который сам учился и что-то свое делал - и у них получалось.
Тебя поди взяли на сварщика высшего разряда сразу после шараги? Не хватит у тебя знаний банально. Практики и глубинного понимания процессов. Да и время, когда креативный айтишник мог сделать условный тетрис уже прошло. Сейчас что бы соло проект выстрелил я не знаю какая должна быть удача и креативность.
Я вот все думаю, когда я, блядь, начал делать все не так)) Ни разу в жизни, блядь, не встречал компаний, которые бы метрики считали в реальности... Ну, с другой стороны, я инженер, в первую очередь, а не программист, может это у нас так через жопу всё. Но реально, я даже примерно не могу посчитать сколько мои решения принесли денег/сэкономили времени.
Да даже продукт-оунеры, которые непосредственно придумывают фичи и имеют в подчинение инженеров и аналитиков, чтобы эти фичи реализовывать и анализировать, не всегда понимают, сработала их фича или нет, дала ли какой прирост, или клиент просто попер, потому что рождество или конкурент промахнулся.
Что уж говорить о рядовых исполнителях, которых сегодня попросили эту фичу реализовать, а через полгода скажут ее удалить) ну и при этом доступа к финансовым и аналитическим данным у них нет.
Чтобы метрики вели и штат аналитиков был, я видел только в крупных и сильных продуктовых компаниях - на моей памяти таких 2: топы в своем сегменте и со штатом больше 1000 человек
Ну и как тогда по технике стар свой опыт рассказывать, если не только у меня такая хуйня?) Я, правда, уже подзабил на идею устроиться в хорошую компанию, но чисто теоретически, как из такой ситуации выходить? При том, что опыт интересный есть, а метрики никогда не велись в моих компаниях?
Чтобы была возможность дать ответ, расскажи, что ты делал. Какие фичи пилил, какие баги фиксил
Ну, если брать последнюю инженерную работу (ПЛК отечественного производства с кучей легаси софта, который никто не берётся разгребать, документировать или переписывать, продают as is и саппорт говорит у нас баг не воспроизводится, значит его нет). Чтобы сильно не грузить, парочку кейсов и вообще нужны они кому-то или нет))

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

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

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

Задачу ты описал.

Что ты сделал, ты описал. Добавь, что ты предложил решение, или участвовал в этом, это было непросто, но ты разработал план/помог разработать план/понял срочность и важность проблемы и взял лидерство на себя т.к. ты лучше понимаешь систему (а.к.а. кто если не ты). Это выставит тебя в выгодном свете, как умеющего общаться.

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

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

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

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

Результат: «прошло n лет и с тех пор я о выходах не слышал». Что очень сильно повлияло на производительность (как? примеры?), внешний вид как стабильной компании, внутреннюю культуру (все стали спокойнее с надёжностью нашего софта).

На самом деле, насколько я могу понять, у тебя очень сильные кейсы. Как по мне, тебе стоит их чуть доработать. Как? Задавай себе такие открытые вопросы, и пробуй на них отвечать как получится, по наитию. Можешь уточнить что с коллегой или менеджером.
Ok, спасибо за советы. Буду пытаться)
Добавлю к глазошарику, что ты, похоже, недооцениваешь кейсы)

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

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

ЗЫ: ностальгия: когда-то сам сидел в котельной с пусконаладкой, а пензенский "Круг" подарил мне диплом и хорошую клаво-мышь за то, что частенько придирался к их системе и указал на критичный баг)
Ох ебать, а ты в пензе работал или учился, а потом работал?
Не, я в другом сходном городе работал пару лет в АСУ ТП, делал диспетчерский уровень на их SCADA. Периодически общался в аське с их разрабом, типа как мне лучше сделать ту или иную штуку, подкидывал им иногда идеи, что вот тут неудобно, было бы лучше вот так, и какой-то элемент подглючивал - указал на это. Потом мне коллеги с какого-то семинара/выставки от Круга привезли пакет - а там почетная грамота "диплом за ценные предложения по усовершенствованию" и логитечевский комплект клаво-мыши, который стоил тогда 15% от моей ЗП. Вот это я знатно и приятно был удивлен)
Воооот оно что, понятно. Я просто в пензе учился в местном политехе, но это было уже сто лет назад, в нулевых еще. Потом уехал оттуда.
аналогично :)
Пожил в Питере, там смешная реакция: "Ты где учился? В политехе. Оооо! Не, не здесь, в своем местном. Ааааа..."
Забавно. После пензы я как раз тоже жил в Питере.
Liksys Liksys 10.07.202317:56 ответить ссылка 0.0
В последней компании у нас были ревью каждые полгода - с возможностью премий и повышений. И для них нужно было подготавливать некий обзор своей деятельности за полгода - по факту, тот же стар, но внутренний. Так вот руководитель нам рекомендовал не откладывать его на последний срок, а регулярно вести журнал что сделано по свежей памяти, чтобы потом уже подбивать финальный вариант. Я подглядывал, как вели журнал бывалые - и там, действительно было интересно описано: не просто "настроил сервис", а "настроил сервис - разблокировал дальнейшую работу команды по проекту".
Короче, как я понял, навык регулярно отмечать не только действие, но и его результат/влияние - отличный навык ) может быть, для начала без финансовых показателей, но хотя бы уже просто прицел внимания на результат - уже хорошо.
Это мейл/яндекс/тинек/сбер?
Плавали, знаем.
пол года на сишарпу ищу работу
в основном только отказы, до собесов н едохит
dr9vik dr9vik 08.07.202323:53 ответить ссылка -3.0
А кроме шарпа что-то знаешь?
а что надо по беку знать?
додики по базам вопросы даже не задают
зато каждый спросит про солид...
Если ты достаточно хорош, берешь острый нож...
private private 09.07.202301:20 ответить ссылка -0.6
Ну, пару нормальных языков типа питона и го, например. Дальше только теоретические знания.
Экий ты борзый. Попросил совета, а когда ответ тебе не понравился - съехал на оскорбления. Тебе ничего не поможет, ты токсичный долбоеб от природы и осыпешься на первом же собесе. Постучал тебе профилактически хуем по лбу, проверяй.

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

С подключением, шарп кросплатформенный с 2016 года. 80-90% вакансий на шарпе нынче подразумевают что большая часть кода крутится под линуксом.
Давай сравним количество вакансий. Идем на HH и смотрим там:
- Python: 5762 вакансии;
- C#: 1254 вакансии;
- C# Linux: 195 вакансий.

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

Ну я и так-то на подключении, да. Архитектор ПО + эмбеддер/ядерщик/бекендер.
То, что в вакансии C# не написано слово Linux - не значит ничего вообще. Потому что связи никакой нет. Мнение о том, что "шарп - онли виндоувс" - это прошлый век, чувак. VS уже на начальном этапе предлагает встроить приложение в докер. Чего уж говорить о том, что при создании проекта можно просто выбрать платформу Linux и посмотреть, какие решения с ним работают.
Дополнительные сведения Веб-приложение ASP.NET Core (Майкросос( Платформа О .NET 7.0 (Поддержка со стандартным сроком) Тип проверки подлинности © Нет ✓ Настроить для HTTPS © Включить Docker © Операционная система Docker © [у] Не использовать операторы верхнего уровня © C# Linux macOS
> То, что в вакансии C# не написано слово Linux - не значит ничего вообще.

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

> уже на начальном этапе предлагает встроить приложение в докер

Хорошо. Мы начинаем новый проект на шарпе под линукс - чтобы что? Какие плюсы он дает по сравнению, например, с голангом?

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

И ещё раз по поводу шарпа - практически все приложения пишутся как минимум на .net core 3.1, а всё что младше (типа .net framework) - это ебучее легаси, которому в лучше случае 10 лет и который скорее всего является каким-нибудь десктопным приложением типа wpf или winforms. Всё более менее современное в пару кликов собирается под linux.
Liksys, я не посягаю на твой опыт, но твои взгляды на шарп сильно устарели и являются пережитком прошлого, стереотипами и прочими ограниченностями кругозора.
Шарп как язык хорош, я не спорю. А вот как экосистема - уже не очень. Мой аргумент про SO все еще валиден, и на шарпе действительно не пишется большое количество НОВЫХ серверных приложений. С этим-то что будем делать?
про пайтон я могу сказать как и про все подобные языки
я заебался дебажить проект в котором я хуй знает что приходит, и может быть пойму что уходит из метода
потому что что? правильно у нас типизация в одном месте
как реализован гет и сет в питоне? а никак костыли да и только, классы кстате так же, как и весь ооп который прикрутили гвоздями

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

Предъявляй претензии или к проекту, или к своим компетенциям.

> питон популярен только лиш на нем написали кучу всякой хуйни и это основной язык нейронок

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

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

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

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

На самом деле я нихуя не удивлен, что у тебя нет работы, ты же деревянный блядь.
это все что ты можешь сказать?
Да. Хули перед свиньей бисер метать.
эх...
такое общение потеряли
Вини в этом только себя.
Что конкретно работает со скрипом, долбоеб? Чем отличаются CPU-bound и IO-bound задачи ты знаешь?
по твоей логике смотрим HH:
- java: 6139 вакансий
- java linux: 1385 вакансий

о боже, что же это за java, у которой не указан linux - неужели на windows?! )))
ну и по аналогии: нафиг питон, возьми нормальный язык для бэка типа java )))

Чувак, я уважаю твой опыт, что ты уже архитектор, но, как видим, ты глубоко погряз в эмбеде и ядрах, что не замечаешь вокруг, что происходит на бэке на других платформах.
Это довольно просто объясняется. Java предполагает юникс по факту, любой. Почти никто не гоняет жавовый бекендовый софт на винде. Мне кажется, что жаву даже на AIX используют чаще, чем на винде.
Ну это к твоему поинту, что раз нет слова linux в вакансии, то его там нет. Ну не написали, поленились, как не указали тот же git или jira. Потому что навык с ними полезен, но не принципиален.
Да, C# менее популярен, чем JavaScript, Java и Python, но он все еще в первой 5ке или хотя бы 10ке, так что, почему бы нет? Кстати, знаю 2 случая, когда в острой нехватке кадров, брали шарписта разрабатывать java-бэкенд )
Шарп просто достаточно близок к жаве. Собственно, он и создавался как прямой ее конкурент.

> почему бы нет?

Как я писал раньше - потому что при возникновении специфических проблем ты останешься с ними один на один, и никто тебе не поможет. Доступность разработчиков - очень важный аргумент. Ну и опять же: если у тебя io-bound, то можно использовать плюс-минус любой распространенный язык, включая питон, а если cpu-bound - то уже придется компилять и экономить на спичках. Шарп нужен для чего-то среднего, но как-то не складывается, обычно задачи сваливаются либо в первый тип, либо во второй.
С# - это еще не выжженная пустыня, один-на-один примерно как у Go-шника или PHP-шника.
А про io/cpu хорошо, что хотя бы здесь пояснил) могу согласиться, обычно выбор либо C++, либо java/python.
Но есть же еще и менее популярные Ruby, Scala, Rust и иже с ними - и ничего, живут же люди, что-то кодят, сообщества развиваются) Так что вопрос больше про уменьшение хлопот и толщину колбасы в бутерброде.
Гошников много и многие компании его используют, поэтому один на один не останешься. Про PHP - как про покойника, либо хорошо, либо ничего. Ruby не сказать, что мертв, но постепенно отмирает в пользу питона, который лучше него практически всем в своей нише. Scala - слышал, что хорошо, но не встречал.

А вот Rust - вообще отдельная песня. Чисто синтаксически он мне очень не нравится, но его преимущества очевидны. Самое интересное то, что иногда в хайлоаде случается ситуация, что GC создает слишком много проблем. Тогда лучше взять что-то с ручным управлением памяти и более понятным профилем нагрузки. На плюсах писать - это боль и страдания, на сях - требует очень высокой квалификации и дорого. Остается разумный выбор в виде раста. Вот пример: https://habr.com/ru/articles/487116/
Конечно тебя спросят про SOLID, DIY и KISS. Потому что если джун не понимает, что код надо писать качественно, и не понимает зачем нужны эти страшные аббревиатуры - он нахуй не нужон.
я могу тебе обосрать весь солид с ног до головы
и ниодна буква не будет работать
Давай. Чтоб далеко не ходить - начни с первой буквы. Ограничение - му не рассматриваем код, который пишется для однократного запуска изи код зи пруф-оф-концепт приложения.
сколько классов надо написать что бы испечь хлеб?
Была такая интересная статья на хабре. Но ведь всегда нужно опираться на здравый смысл. Если тебе надо испечь пару булок в неделю, то нет смысла начинать орошения полей для выращивания пшеницы и закладки фундамента под хлебопекарный завод.
этот пример показывает, что можно написать 1 класс и он сделает все что нужно, а потом по факту править
а можно потратить месяц на архитектуру и сделать хуйню которую на следующий день придеться переделывать
так и тут вопрос, работает первая буква или нет? или она работает иногда?
все эти принципы не более чем свод правил, к которому надо стремиться, но не следовать
> а можно потратить месяц на архитектуру и сделать хуйню которую на следующий день придеться переделывать

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

Солид нужен для того, чтобы ты знал о типовых проблемах проектирования, как их решать (хоть заранее, хоть по факту возникновения).
А там ты уже сам с высоты своего опыта решаешь, насколько вероятна та или иная проблема, а не бездумно следовать всем буквам.
В нормальных источниках помимо самих принципов ещё пишут что будет если с этими принципами переборщить (гугли Теплякова, там хорошо написано).
Согласен. Именно поэтому появились KISS и YAGNI.
кстати, был когда-то удивлен существованию аббревиатур DRY, KISS и YAGNI, так как, по факту, давно следовал им, но считал это просто здравым смыслом, а не "принципами" )))
Хорошо, когда ты понимаешь, когда применим тот или иной принцип, а когда можно срезать углы. Но для этого надо хотя бы понимать эти принципы.
Когда я видел классы в 1000+ строк, делающие дофига чего, мне хотелось тыкать лицом народ в распечатку солида. А человек, доказывающий мне, что этот солид нафиг не нужен, продолжал дописывать в эти классы, да так, что у них уже кольцевая зависимость образовывалась.
Ну так учи солид. Учи то, что от тебя хотят. Я пробовал с плюсов на шарпы перейти. Вот как раз на солиде и устаревших практиках кодинга и обломался. Сейчас делаю перерыв перед тем, как продолжить обучение.
Прочитал это, прочитал вложенные ссылки на хабр. Теперь сижу грустный, считаю себя киберуниженным. Мне работу сейчас искать, а я хз вообще, какой у меня уровень. Кажется, будто я только в луже плескался, и даже не щупал настоящее программирование. А тут ещё эти собесы в несколько этапов, метрики, STAR, leetcode. Открываешь вакансии, а там кучи новых слов. И вроде по опыту понимаю .что вакансии пиздят, и в процессе едва ли половина будет задействована, но это ж всё равно нужно всеми этими инструментами владеть. А как понять, что твой уровень владения инструментом достаточен, а не "это слово я уже знаю". Что ж так сложна то.
Не грузись, этот раздел, особенно примеры помогут тебе при собесах в твою вторую компанию.

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

Остальное (star, алгоритмы и т.д.) на этом этапе откладывай в долгий ящик. А «настоящее программирование» вообще шли нахуй вместе с теми, кто так говорит, Термин не несёт ценности, только токсичен и всё
Это и будет вторая...
Для первой я пришёл прямо с института. Не подходил ни по одному пункту из вакансии, вплоть до требований к ЯП. Но они искали лоха на место, а я лоха, который будет мне платить. Сошлись, так сказать.

>>А «настоящее программирование» вообще шли нахуй вместе с теми, кто так говорит
Это так кажется только когда ты не щупал дно. Мои 3 года опыта почти бесполезны. И я бы не хотел возвращаться туда, где они могли бы пригодиться. Помимо всех этих FAANG, компаний поменьше, и мелких контор, есть всякие гос структуры, есть заводы, где программисты варятся, можно сказать, в иной среде. Они застряли где-то на рубеже 2000 года. Буквально. Я работал на C++ Builder 5.0.
Я вылез из этой задницы, и сейчас открываю для себя новый мир. Вроде опыт и есть, но всё познаёшь с нуля. Два разных мира. Взять тот же Git. Я только пару месяцев назад впервые им воспользовался.

>>закончи и выстави в обозрение свой проект (пусть хоть это онлайн калькулятор будет)
Сейчас играюсь с Golang, пишу бота для телеги. ChatGPT и всё такое, ну и пара других фич. Но не думаю, что сгодиться для портфолио. Да и написано оно не так красиво.
Уже давно есть куча идей для нового проекта. Большого. Где полноценно вылизывать структуру, приводить код в порядок и т.п. Но сперва бы бота закончить, а время идёт.
> Да и написано оно не так красиво.
Открою тебе страшный секрет. Даже те кто в индустрии четверть века, иногда пишут говнокод. Особенно если это старт проекта и пока делается прототип.
Реализуй функционал. Посмотри на код. Отрефактори в красоту. Пойми что рефакторинг - неотьемлемая часть процесса написания кода. Никто не пишет красиво стразу.
Как весьма давно уже состоявшийся программист выскажусь так - да нахуй такой геморрой с устройством в эти FAANG'и, яндекс и прочие нужен. Тратить полгода - год на подготовку выдрачивая книжки по прохождению этих собесов и литкод параллельно работая, проходить стопицот этапов собесов (у яндекса их 6. шесть, карл) и обтекать от того что ты (условно) на доске не развернул сраное бинарное дерево. Я не гордый и могу поработать в компаниях по-меньше где за один-два адекватных этапа мы поймем подходим мы друг другу или нет.

Если стоит задача рубить бабосы, то лучше выучить IBM i и попытаться залететь в какой-нибудь американский банк, специалистов по этому говну крайне мало, а платят дохрена.
А можно поподробнее с места "выучить ibm"?
Да, распиши подробнее про IBM, что ты под этим подразумеваешь? И есть ли удаленка в этих ваших американских банках? Вот в чем вопрос.
чатгопота выдала такое

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

1. IBM Cloud: Многие банки и финансовые институты используют IBM Cloud для создания и поддержки облачных приложений и сервисов.

2. IBM Watson: Платформа искусственного интеллекта Watson используется для автоматизации и оптимизации различных банковских процессов, включая обслуживание клиентов и анализ данных.

3. IBM Financial Transaction Manager (FTM): FTM - это программное обеспечение, которое обеспечивает централизованное управление всеми финансовыми транзакциями, которые проходят через организацию.

4. IBM Security: Помогает защитить ценные данные банка, включая личную информацию клиентов и финансовые транзакции, от угроз и атак.

5. IBM Z: Мощные мейнфреймы IBM Z используются для обработки больших объемов транзакций и данных.

6. IBM Cognos Analytics: Программное обеспечение для бизнес-аналитики, которое помогает банкам анализировать и интерпретировать финансовые данные.

Это лишь некоторые из продуктов и решений IBM, которые могут быть внедрены в банках. Реальное использование зависит от конкретных потребностей и целей каждого отдельного банка.
> Я не гордый и могу поработать в компаниях по-меньше

ты так говоришь, как будто большие компании - это что-то хорошее

Я чем больше работаю, тем больше ебал идти в какую-либо контору на 1000+ сотрудников.
Хотя иногда там зарплаты больше, но это если сравнивать с совсем маленькими компаниями (или если у тебя в подчинении людей по размеру штата небольшой компании)
STAR нужен для оценки софтскилов и поведения. Цифры там до жопы. И эту системы очень сложно наипать, так как когда человек начинает придумывать на лету - это сильно заметно. Пара уточняющих вопросов и он сыплется.
Сам пользуюсь этим подходом, что бы понять, что за кандидат передо мной.
STAR - крайне важная вещь для любого девелопера. Даже выступление на дейлике по STAR - это буст к твоему росту в глазах лида.
Не все понимают, к сожалению что мало сделать что-то крутое. Надо еще про это уметь рассказать.
Хм, а ведь действительно - можно и так его использовать. Спасибо за идею
Ну вот я могу описать, построить решение и решить любую задачу, для которой я квалифицирован. И как это доказать, если даже на собеседование не зовут т~т
Ну хочешь - скинь мне в личку ссылку на свое резюме. Только убери свое имя и поменяй названия мест работы. Я сам наймом давно не занимаюсь, но доебаться до резюме смогу.
вот что на STAR говорить в таком случае:
мне дали задание сделать ускоритель нейронки, я сделал за год, быстрее в N раз и влазит в плис дешевле M раз чем обычно, но надо в K раз больше времени потратить. Вопрос как подсчитать трейдоф если например K не понятен?
т.к. до практики не дошло и в релиз не выкатили а тупо забили?

И вот таких вот дропнутых либо в конце либо вообще на стадии RnD решений у соискателей НАВАЛОМ. И в этом часто и смысл работы - попробовать вариант и вовремя от него отказаться (пока с этим вариантом занят один сотрудник) чтоб не нарваться уже целой командой или фирмой на нерабочее.
"поставили задачу - я слелал" это не про софтскилы.
А STAR это подход для проверки соискателя именно на них. Я курсы по применению STAR проходил - знаю о чем говорю.
Вот пример реальных вопроса по системе:
"Приведи пример ситуации из своего опыта, когда твоя команда не успевала в срок. Как ты действовал?" И ответ - больше и усерднее работал будет жирным минусом, говорящим что софтскил работы в команде у тебя нулевой. Правильным же ответом будет что-то вроде: поговорил с коллегами, прикинули как лучше распределить задачи. Сам взялся помочь с товарищу, у которого случился ступор. Подбадривал команду. Договорился с заказчиком о сдвиге сроков.
Или “Приведи пример из своего опыта, когда ТЗ от заказчика было не полным или противоречивым. Как ты действовал". И акцент всегда на реальную ситуацию из твоего опыта. Начнешь плавать и говорить общим описанием алгоритма действий - сразу минус. Лучше честно сказать что с таким не сталкивался.
> когда ТЗ от заказчика было не полным или противоречивым
есть мир с радужными пони, где бывает иначе? )
такой мир есть - это собеседования!
ты обязан врать ибо если раскажешь правду или расскажешь как правильно действовать в той или иной ситуации то тебя точно не возьмут. особенно красный флаг: "была проблема, я понял её и профиксил задокументировав", а как же митинги, обсуждения, софтскилы?
Ну хз, у нас в одной из компаний собеседование строилось вокруг задачи с простым алгоритмом, но упор был на жизненный цикл задачи: уточнение требований, написание кода, "запуск в прод", разбор проблем и фиксы - что и как будешь делать, на что смотреть и выяснять. Поэтому, наоборот, в постановке задачи изначально было неполное ТЗ, все как в жизни)
вот это другое дело.
а не "замешкался - сразу минус" (см выше), а если у человека икота? Или просто не привык болтать вперёд мыслей?
А то потом нанимают отличных спецов по прохождению собеседования и ноют что они в прочим спецы похуже чем первая и основная (порой и единственнаях) их специальность.
Встречался я с такими переговорщиками... Один раз даже тех специалист был неплохой, остальные два раза мне досталось в наследство от них тонна очень дурно пахнущего кода (аля литкод высер с переменными типа имён map, dp).
господа, с таким подходом вы ищите комбо - продажника себя и тех специалиста, мне кажется что вы очень сильно сужаете рамки. Если у вас есть время и деньги заниматься таким то моё уважение. Остальные же останавливаются на том "умеет хоть как-то внятно объяснить что он щас накодил - уже плюс". "Умеет обосновать своё поведение в разбираемом кейсе без грубых противоречий и без переспрашивания и уточнения - очень большой плюс". Аллё очень малое количество соискателей ходят на собесы как на работу! Каждый второй волнуется так что "спасибо что вспомнил своё имя". Пожалуйста не требуйте уменя проходить собесы как второе высшее если вы не платите сто косарей баксов в месяц.
Из личного опыта - кандидатов достаточно. Есть из чего выбирать.
По этому зачем брать хорошего тех спеца, который закроется от всех и будет что-то там сам себе делать, если можно взять хорошего тех спеца, который органично вольется команду и будет вместе с ней тащить?
0. Вы в FAANG? или иной ну очень крупной корпорации типа Indeed/Wag group/Toyota с зп сопоставимыми.
1. Это было до глобального фриза в IT? или уже после?
2. Предположим у вас есть кандидат который чуть ли не угадывает вопрос до того как вы его задали, и не набрал ни одного минуса / заметно меньше всех остальных. Ваши действия? брать?
3. Ошибки в вашем коде убъют много человек? Исправить в принципе можно или на исправление потратить надо не 2 года написания а четыре? принесут миллирдные убытки?
4. Даёте реальный кодинг? не только задачки с нуля написать, а например вот тебе кусок кода чужой, найди баг, поправь доку (самые страшные ошибки здесь, убивают тысячами), добавь функционал? Как много кодеров в этом участвует? больше одного?

Почему спрашиваю?
Все мы разные и хочу понять где такие условия и почему такие требования (и часто они обоснованы реальными обстоятельствами против которых не помудишь на реакторе)
0. Геймдев конторка на ~3к человек
1. Кардинально ни чего не поменялось, но то в Европе
2. Тут не понял. Я всегда четко разделяю хард скилы и софт скилы. Конкретно в мой отдел нужны люди у которых хорошо и то и то, так как работа заключается не только в том, что бы самим хуячить, но и помогать и кординировать другие отделы. Если это вакансия какого-то узкоспециализированного системного прогера, то там уже 80% веса хард скилов и 20% софт. И там вполне могут закрыть глаза на пробелы по софт скилам.
3. Не убьют, но по серьезный косяк, скажем в серверной части, может не хреново ударить по прибыли.
4. Так не упарываемя. Чаще всего даже нет тестового задания. Где-то час общения за техническую часть достаточно что бы понять что за специалист перед тобой. Иногда можно спросить что-то узкоспециализированное, если видно что человек хорош. Ну а далее уже проверка на софт скилы. Если подходит, то сравниваем с прочими кандидатами и далее оффер и испытательный срок. Мы не гугл что бы устраивать бессмысленные фильтры)
спасибо, я уже стал догадываться что это не производственный сектор и позиция так или иначе связана с менеджментом, тогда да согласен что это крайне оправданно. Извиняюсь за возмущения. т.к. я работают там где баг будет стоит жизни а то и многих. Где ПО или сервис это не товар и не услуга, а оборудование наш товар. И поэтому до 90% это его себестоимость а т.к. и автопром и системы связи строго контроллируются то и на условную строчку кода приходится в 10 раз больше программистов и невозможно выставить зп уровня FAANG и поэтому требования такого уровня не нужны.
Да и ошибки в коммуникации частично покрываются тотальной проверкой кода, документации и кучей разнообразного регламента. Начиная с ТЗ заканчивая каждой строкой кода идёт доказательный подход - ты обязан доказать что это будет работать и порой не одной комиссии, но как минимум одной государственной точно. (без связи гос-во перестанет существовать, это на тяп ляп, потом профиксим, который часто бывает в IT не позволят)
Дело не только в скиллах, это ещё и в каком-то смысле вопрос везения. Я без подготовки прошел в Гугл, чисто по фану, и много других таких же знаю (сам не олимпиадник, не физтех, заканчивал ноунейм ПТУ). При этом знаю кучу людей, которые, как по мне, гораздо толковее, и им потребовалось больше трёх попыток.
Кстати, с 7+ годами опыта, у тебя по идее ещё и систем дизайн интервью должны были быть, не только литкод.
Да, везение играет большую роль. Смотрел как кто-то вёл симуляцию с подборкой кандидатов, оставив 5% на везение. Все прошедшие были с везением выше 98%.

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

Тема интересная и очень полезная, как по мне. Учит архитектурному мышлению. Но это целая наука, о ней можно статей десяток напилить
окей гугл, как я понимаю чтоб устроиться на работу нужно уже не одно а два образования:
первое по специальности, второе как минимум бакалавриат по прохождению собеседования, навыков продажи себя и решения формул уровня dp(bullshit) mod (10e9+7) = leetcode
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
ozon.ru • • • • • выбирайте otto group russia OZON.RU OTTO GROUP RUSSIA re:Store RESTORE 220 ВОЛЬТ DOMPROM Л1ес1ЫМ/1сШ MEDIA MARKT KUPIVIP ENTER юлмарт 24 /amoda мода с доставкой ЮЛМАРТ LAMODA.RU Детский мир CCTI* МАГАЗ#МОо1 ДЕТСКИЙ МИР СВЯЗНОЙ cnoprijacrep СПОРТМАСТЕР M.tfuq
подробнее»

политота,Приколы про политику и политиков интернет хитрожопость многа букаф песочница Озон (компания)

ozon.ru • • • • • выбирайте otto group russia OZON.RU OTTO GROUP RUSSIA re:Store RESTORE 220 ВОЛЬТ DOMPROM Л1ес1ЫМ/1сШ MEDIA MARKT KUPIVIP ENTER юлмарт 24 /amoda мода с доставкой ЮЛМАРТ LAMODA.RU Детский мир CCTI* МАГАЗ#МОо1 ДЕТСКИЙ МИР СВЯЗНОЙ cnoprijacrep СПОРТМАСТЕР M.tfuq