Pull to refresh

Comments 93

"Это Сбер, детка!" (с) погромистская мудрость. Поэтому даже не стал смотреть что там за "конкурс".. ;)

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

(с) Сбер
(с) Сбер

А кто не согласен, тому - "гембу" сделаем. (сберовские оценят :) )

PS По ходу, интересно что это за "больше 1000 талантливых программистов" которые "прислали" (где бы это на списочек посмотреть), и сколько там "некоторых" которых "даже" "пригласили к себе работать". :)

"Ну ок, хотят проверить знание каких-то базовых вещей" (с) 4-)

Очень интересная статья, с утра поднимает настроение.

Так и сайт http://beautifulcode.sber.ru/ уже не сайт(


Итоги, кстати, Сбер тут выкладывал.
https://habr.com/ru/companies/sberbank/articles/762796/


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

@kesnА можешь поделиться кодом Алины Жук, очень интересно посмотреть что там внутри, спасибо!

Если кто-то будет переводить через Гугл транслейт, то когда поймет что Aleona Bug / Beatle - это человек

Cам долго не мог понять в документации Цель-С и Быстрый пока не соотнес с кодом Objective-C и Swift

У нас в документе к АТС был термин - Тастатура. Мы думали это специальная клавиатура для программирования АТС и заказали у немцев за конские бабки. Пришла обычная клавиатура....

Спасибо переводчику б. за потраченные бабки, Ди Тастатур это просто клавиатура по немецки.

Как тут не вспомнить "Паладин и газебо"

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

Тастатур это просто клавиатура по немецки

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

UFO just landed and posted this here

Во-первых, она Арина. Во-вторых, в отличие от Ивана, она свой код в публичный доступ не выкладывала, поэтому вот так вот лихо им делиться без её согласия я не могу ¯\_(ツ)_/¯ Если вы сгораете от любопытства, то можете написать ей сами - легко ищется во вконтакте.

Документация python не рекомендует использовать встроенную функцию exit()(как и quit()), кроме как в REPL, т.к. при некоторых условиях эта функция может быть недоступна.

"They are useful for the interactive interpreter shell and should not be used in programs."
Ссылка на официальную документацию python.

На всякий случай, есть одноименная sys.exit(), которой эти ограничения не касаются. Автор благоразумно пропустил импорты в тексте.

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


Ну, и корпоративные игры — они такие корпоративные.

UFO just landed and posted this here

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

UFO just landed and posted this here

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

Слова не мальчика, но мужа!

UFO just landed and posted this here

Согласен, но не совсем. Если вы пишете POC или MVP, то часто это имеет смысл, все равно потом все переписывать, а так вся логика на виду, в одном файле.
Но вы писали на конкурс, а не POC.

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

Корпоративное красиво - это а ля Fizz Buzz Enterprise Edition

Задача - провести активность и отчитаться перед начальством. Активность проведена? - Да. Перед начальством отчитались? - Да.
Не понял предъявы автора, он что, никогда не служил или не работал в Сбере?

А разве возможно что то сделать, чтобы он перестал быть отстоем?

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


(ответил и RomeoGolfу)

Очевидно - не нужно им это.

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

Значит, несмотря на отстойность их сервиса, он находит свои клиентов.

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

Всё верно. И Вы говорите совершенно очевидные вещи.

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

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

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

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

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

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

И что? Бежать в желтый банк? Так там ПСС Олега Тинькова тоже мама не горюй.
В красный? Фридман как бы тоже не святой =)

Банковский бизнес он такой - невиновных (невинных) нет =)

В далекие школьные годы слышал задорновский монолог телефона в исполнении Петросяна, и навсегда запомнил оттуда такие строки:


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

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

UFO just landed and posted this here

1) отдельные поля класса под каждую котировку компаний?! Надеюсь, это специально для холивара вставлено)

2) юморески в коде бесят, избегайте, даже на тестовых заданиях. В статье можно и нужно, а в коде - нет.

юморески в коде бесят

Кодинг из искусства превратили в энтерпрайзное болото. Когда-то люди программировали just for fun и исходники было читать интересно.

Так пишите как хотите, кто вам запрещает?

  1. Отдельные поля класса - этот сниппет кода прилагался к задаче, идея организаторов. Я бы до такого не додумался, наоборот, выбесило знатно.

  2. Этот код не для продакшна, его 1 (или 0) раз посмотрят и выбросят навсегда. В этом контексте считаю шутейки уместными.

юморески в коде бесят, избегайте, даже на тестовых заданиях.

В продакшне понятно, но почему не в коде for fun? Лёгкий юмор позволяет снизить умственное напряжение. Перебора в хохмах на каждую строчку я там не вижу.

Сама идея конкурса по нравилась. Интересно посмотреть на конкурс для JavaScript/TypeScript - вот где будет веселье.
А то, что нельзя ознакомиться с кодом победителей - это очень грустно.
Получается - "Я сделалъ красиво" и всё

Почему "по нравилась", но "посмотреть", "получается" и "победитель"? :-Р

У меня одного(что в старой, что в новой версии Хабра), вместо публикации пустое поле?
При обновлении страницы, контент на долю секунды показывается и потом исчезает.
Это какой то косяк сайта(другие страницы открываются нормально) или новая методика скрытия публикаций?

Я бы заподозрил косяк в правилах блокировщика рекламы.

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

классик сбер, даже и добавить нечего

Не удержался.

Два менеджера по персоналу опытный и стажёр сидят в офисе и обсуждают дела. anekdotov.net, Молодой достает огромную пачку резюме, штук 300: "Мы должны просмотреть их все, чтобы подобрать кандидатов на эту вакансию". Опытный хладнокровно берет у него пачку, делит ее пополам, одну часть на стол, вторую в шреддер. У молодого глаза по пятаку: "А как же претенденты?!" Опытный невозмутимо: "А зачем нам неудачники?"

Президент конкурса красоты Алла Маркина призналась, что она продает места на "Миссис Россия". Более того, женщина заверила, что будет делать это "всю свою жизнь".
2012 (с) https://www.kp.ru/daily/25832/2807082/
(эпиграф)

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

Кейнсианский конкурс красоты

Кейнсианский конкурс красоты — концепция, разработанная Джоном Мейнардом Кейнсом и изложенная в главе 12 его работы «Общая теория занятости, процента и денег» (1936) для объяснения колебаний цен на фондовых рынках. В ней описывается конкурс красоты, в котором награждаются не самые популярные участники конкурса, а те судьи, которые наиболее точно смогли угадать, кто из участников конкурса окажется наиболее популярным.

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

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

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

https://ru.wikipedia.org/wiki/Кейнсианский_конкурс_красоты

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

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

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

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

Я надеюсь, что @kesnспросил человека перед публикацией, согласен ли он. Впрочем, если код лежит на гитхабе Ивана, то он вроде бы по умолчанию не против им поделиться.

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

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

  1. место: Анонми 1

  2. место: Аноним 2

  3. место: Аноним 3

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

на геймджемах видно все submit'ы, и на ряде геймджемов виден и код.

т.е. как минимум можно оценить с точки играбельности, как максимум - научиться чему-то

Вот вам фирменное:

Вот где карту оформляли куда код кидали, туда и обращайтесь!

;)))

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

Я участвовал в направлении frontend (JavaScript). В ТЗ было весьма расплывчатое ограничение на входные данные, и требование подразумевало неоднозначное поведение кода в эдж-кейсах, а на сайте было написано примерно «код должен работать без багов». Поэтому передо мной встала дилема: сделать лаконичный код, не учитывающий эдж-кейсы, или нормальный код. Выбрал «нормальный», потому что так я бы поступил в реальном проекте при фиксированном ТЗ, постарался сделать его максимально читаемым, и написал, как бы я составил ТЗ.

Моё решение
/**
 * Индексирует массив объектов по указанному атрибуту.
 *
 * Если у объекта из массива нет указанного атрибута, он игнорируется.
 * 
 * @param {object[]} objects Массив объектов, который надо проиндексировать
 * @param {string} objectKey Название атрибута объектов, по которому они индексируются
 * @returns {object} Хэш-таблица, в которой ключи - значения указанного свойства объекта, а значения - соответствующие
 *  объекты. Также объект имеет атрибут _{objectKey}s, который содержит список всех ключей приведённых к строке (кроме
 *  самого себя).
 */
function mapArrayToHashByKey(objects, objectKey) {
  const hashMap = {};
  const indexKey = `_${objectKey}s`;

  // Некоторые значения нельзя использовать в качестве ключей хэш-таблицы:
  // '__proto__' является ссылкой на прототип; если записать в него объект, то у хэш-таблицы появятся лишние ключи;
  // indexKey зарезервирован для списка ключей.
  const isForbiddenMapKey = key => key === '__proto__' || key === indexKey;

  if (isIterable(objects)) {
    for (const object of objects) {
      if (!hasKey(object, objectKey)) {
        continue;
      }

      const mapKey = String(object[objectKey]);

      if (isForbiddenMapKey(mapKey)) {
        continue;
      }

      hashMap[mapKey] = object;
    }
  }
  
  hashMap[indexKey] = Object.keys(hashMap);
  return hashMap;
}

/**
 * Проверяет, можно ли использовать оператор for..of с указанным значением.
 * 
 * @param {any} value Значение, которое нужно проверить
 * @returns {boolean}
 */
function isIterable(value) {
  return hasKey(value, Symbol.iterator)
}

/**
 * Проверяет, если ли в объекте указанный во всей цепочке прототипов.
 * 
 * @param {any} object Объект
 * @param {string} key Название атрибута
 * @returns {boolean}
 */
function hasKey(object, key) {
  return typeof object === 'object' && object !== null && key in object;
}





/*
 * Выше моё решение задачи. Ниже мой комментарий о задании.
 *
 * Особенности реализации:
 *  - Функция реализована в точности по указанному формату и примерам;
 *  - Я не использовал сторонние библиотеки и хитрые конструкции из функционального программирования, потому что они
 *    сильно усложняют понимание непосвящённому человеку, несмотря на локаничность;
 *  - Я переименовал аргументы, чтобы убрать двусмысленность слова key;
 *  - В качестве стиля кода выбран популярный Airbnb с длиной строки 120; следование привычному стилю упрощает чтение;
 *  - JSDoc используется, чтобы описать формат функции для IDE. Я бы использовал TypeScript, если можно было;
 *  - Сложность функции: O(n) с двумя проходами;
 *  - Задание понято так, что функция не должна выкидывать ошибки, поэтому она сделана всеядной;
 *  - Маленькие функции isIterable и hasKey сделаны в первую очередь для того, чтобы пояснить неочувидные куски кода
 *  - без комментариев. Они вынесены наружу, потому что универсальны.
 *
 * Предложенный в задании формат функции является не самым удачным для решения проблемы. В задании не указаны
 * эдж-кейсы, в которых формат может привести к проблемам:
 *  - Несколько объектов из массива имеют одинаковое значение атрибута. Моя реализация берёт последний из них, то есть
 *    часть данных может потеряться;
 *  - Значение атрибута совпадает с _{objectKey}s. Моя реализация игнорирует такие объекты, чтобы массив _{objectKey}s
 *    содержал только ключи исходных объектов;
 *  - Значение атрибута имеет значение '__proto__'. Это ссылка на прототип объекта. Если записать в это свойство
 *    объект, то у хэш-таблицы появятся лишние атрибуты, поэтому моя реализация игнорирует такие объекты;
 *  - Элемент массива не является объектом. Моя реализация игнорирует их;
 *  - Значение атрибута является объектом (в гарантиях написано про вложенные объекты). Моя реализация приводит его к
 *    строке. Это имеет смысл, когда у вложенного объекта реализован метов toString.
 *
 * Из-за всеядности и обработки всех эдж-кейсов функция получилась довольно объёмной. Я считаю, что правильностью
 * работы кода нельзя жертвовать в пользу локаничности.
 *
 * Чтобы решить указанные выше проблемы, я бы выбрал для функции такой формат:
 */

/**
 * (тоже самое)
 *
 * @param {object[]} objects Массив объектов, который надо проиндексировать
 * @param {string} objectKey Название атрибута объектов, по которому они индексируются
 * @returns {Map} Хэш-таблица, в которой ключи - значения указанного свойства объекта, а значения - массивы
 *  соответствующих объектов
 */
function mapArrayToHashByKey(objects, objectKey) {
  const hashMap = new Map();

  if (isIterable(objects)) {
    for (const object of objects) {
      if (!hasKey(object, objectKey)) {
        continue;
      }

      const mapKey = object[objectKey];
      const sameKeyObjects = hashMap.get(mapKey) || [];

      sameKeyObjects.push(object);
      hashMap.set(mapKey, sameKeyObjects);
    }
  }

  return hashMap;
}

const data = [
  { id: 1, age: 25, name: 'John' },
  { id: 2, age: 30, name: 'Jane' },
  { id: 3, age: 25, name: 'Jack' },
];

console.log(mapArrayToHashByKey(data, 'age'));
/*
Map(
  25: [
    { id: 1, age: 25, name: 'John' },
    { id: 3, age: 25, name: 'Jack' },
  ],
  30: [
    { id: 2, age: 30, name: 'Jane '}
  ],
)
*/

/*
 * Использование Map вместо обычного объекта позволяет использовать ключи любого типа (не только строки) и
 * не беспокоится о подмене прототипа. Нет необходимости в отдельном атрибуте для списка ключей, потому что получить
 * его из Map или обычного объекта не составляет труда:
 *
 * const keys = Array.from(map.keys())
 * const keys = Object.keys(object)
 *
 * Правда эта функция не подходит в случае, когда нужно подготовать объект для сериализации в JSON. В этом случае я бы
 * использовал обычный объект, так же без списка ключей:
 */

/**
 * (тоже самое)
 *
 * @param {object[]} objects Массив объектов, который надо проиндексировать
 * @param {string} objectKey Название атрибута объектов, по которому они индексируются
 * @returns {{hash}} Хэш-таблица, в которой ключи - значения указанного свойства объекта, а значения - массивы
 *  соответствующих объектов
 */
function mapArrayToHashByKey(objects, objectKey) {
  const hashMap = {};

  // '__proto__' является ссылкой на прототип; если записать в него объект, то у хэш-таблицы появятся лишние ключи
  const forbiddenMapKey = '__proto__';

  if (isIterable(objects)) {
    for (const object of objects) {
      if (!hasKey(object, objectKey)) {
        continue;
      }

      const mapKey = String(object[objectKey]);

      if (mapKey === forbiddenMapKey) {
        continue;
      }

      hashMap[mapKey] ||= [];
      hashMap[mapKey].push(object);
    }
  }

  return hashMap;
}

console.log(mapArrayToHashByKey(data, 'age'));
/*
{
  '25': [
    { id: 1, age: 25, name: 'John' },
    { id: 3, age: 25, name: 'Jack' },
  ],
  '30': [
    { id: 2, age: 30, name: 'Jane' },
  ],
}
*/

Задача состояла в том чтобы написать аналог Object.groupBy() ?

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

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

UFO just landed and posted this here

Если бы это была Альфа, то они бы заставили писать симулятор «Партнера АО Альфа Банка» :D

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

Именно для инвестиций (купил и забыл на полгода/год/пять лет) - оно вполне себе. А за "трейдингом на кончиках пальцев" лучше идти к кому-то другому...

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

Ммм, отношение к людям такое же как и к конкурсам на Хабре, который просто "теряет" сабмиты участников. И админы в личке потом признаются, что ой, ну мы просто потеряли. Конечно-конечно!

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

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

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

Тоже самое было, у организаторов был запал в начале а потом... А потом они сдулись. Мне кажется это золотое правило крупняков.
До сих пор в хохот пробирает с того, как в чате победители ждали год или с пол года "наград".

Интересно, дождались ли...

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

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

У меня, конечно, есть только 100 акций Сбера, но Лукойл мне так не нравится, что продам его, чтоб было прям отрицательное число акций:

Не слышал про маржинальную торговлю в шорт?

Маржинальная торговля «в шорт» позволяет зарабатывать на продаже даже тех активов, которых нет в вашем портфеле: вы занимаете их у брокера и продаете. Если эти бумаги дешевеют, позже вы покупаете их по более низкой цене и возвращаете брокеру, а разницу между стоимостью продажи и покупки забираете себе.10 мая 2022 г.

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

А конкурс на торговлю акциями или написание рабочего красивого кода?

Напихали полную сберпанамку, а виновники торжества отмалчиваются.

Банк.

В отдел кадров заходит начальник трейдинга.

– Где отклики на резюме на вакансию трейдера?

Кадровик показывает на стопку заявлений.

Шеф трейдинга достаёт из середины стопки одно заявление.

– Этого берём.

Кадровик.

– А остальных?

– Остальных в корзину. Неудачники нам не нужны.

# sudo systemctl disable sarcasm

К перечню "Ложь, наглая ложь, статистика ..." я бы добавил "конкурс красоты"

Участвуйте в демосцене: код вообще показывать не надо, лицо и паспорт показывать не надо, призы по почте, таблицы подсчетов голосов доступны.

Принимал так участие, мою демку потеряли

А ну это традиция, как и присылка работ задолго после дедлайна

У меня подозрение, что код победителя сгенерирован при помощи ChatGPT или подобной нейросети. Докстринги содержат довольно нетривиальные формулировки на английском, а некоторые текстовые промпты сформулированы весьма неграмотно ("Enter name of the promotion" - promotion как "акция", хотя должно быть "share"; "You have mistake"; "coast" - берег вместо "cost", да, опечатка, но при этом какие идеальные докстринги). Понятно, что программа была доработана руками, но это же конкурс красоты кода?!
PS: тоже хотел бы взглянуть на код победителя по ML. Я участвовал, и тоже разочарован, что не получил никакого фидбэка. Охотно верю, что из 1000 участников у пары сотен код был лучше моего, но хотелось бы увидеть хотя бы пару из этих лучших решений, чтобы чему-то научиться.

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

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

Я вижу, что реалистично, цели может быть две:

  1. Развивать DevRel. Если это так, то это фейл. Ваша статья тому подтверждение.

  2. Почти бесплатно получить примеры кода и контакты разрабов. С целью пополнить базу потенциальных кандидатов. Которых по-другому никак не выцепить, ибо люди сидят, примус починяют, на HH не отсвечивают. С эту цель они достигли. Даже кого-то захантили (если не врут)

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

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

Всё гораздо проще - открыли ваш код, увидели комментарии на русском, и сразу закрыли. Оформляя комментарии на русском или любом другом языке кроме английского, вы автоматически делаете вашу программу непонятной для большинства других программистов.
Хотите на русском - участвуйте в конкурсе 1с-ников :)

Sign up to leave a comment.

Articles