Pull to refresh
2
0
Andrew Vasilyev @retran

User

Send message

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

Как-то не очень похоже на 3,5 землекопа, правда? Вы точно уверены, что ваша картина мира объективна?

Доктор, вы просто картинку неправильно повернули. Надо вот так:

image
А чего вам сейчас не хватает?
А в каких других теориях типов это не статическая классификация?


Ну есть, например, такая «Gradual Type Theory». Правда я с ней недостаточно знаком, чтобы внятно ее обсуждать.

По остальным пунктам — а о чём мы спорим-то?


Я спорю с утверждением, что «типы — это не рантайм-метки рядом с другими ячейками в памяти, а что-то, что проверяется компилятором статически», и утверждаю, что если «статическая типизация = типы проверяются компилятором статически», то так же правомерно говорить «типы проверяются рантаймом динамически = динамическая типизация».
automath какой-нибудь возник сильно до любого из ныне существующих языков программирования.


Я думал, что тут разговор о языках программирования, а не доказателях теорем.
Понятие типа в контексте STLC


1. Система типов из «лямбда-исчисления с типами» не единственная система типов, а только одна из.
2. Системы типов в современных мейнстримных языках (как со статической типизацией, так и с динамической) — это очень далеко не STLC и я подозреваю, что их авторы строили их на несколько других основаниях (и не только формальных).
3. Да, можно натянуть сову на глобус (что и делает тапл) и вывести одно из другого, но это вообще не означает, что определение типа из STCL единственно верное или валидное для языков программирования.
4. То что система типов красиво формализуема еще не означает, что она хорошо подходит для промышленной разработки людьми, которым важно получить результат здесь и сейчас, а не формально верифицировать корректность программы.

"У типа есть очень формально определённое значение".


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

17. Никогда не надо так ждать таски. В общем случае нужно перенаправить продолжение с помощью ContinueWith явно указав TaskScheduler (обычно хочется TaskScheduler.FromSynchronizationContext()).

Единственные исключения — консольные приложения у которых нет message loop (и не хочется его организовывать) и примеры того как не надо делать.
как писать переиспользуемый понятный код без багов


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

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

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

А вот это не так.


Это так.

Когда будете делать ПО атомной станции, вы посмотрите на это немного иначе. :)


Т. е. любой студент айтишной специальности обладает достаточными знаниями о многопоточке, чтобы делать ПО для атомной станции?

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

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

Что на самом деле делает алгоритм?

1. Алгоритм проходит по исходному списку и выбирает k случайных элементов подряд.
2. После того как выбрано k случайных элементов следующие элементы могут заменить собой уже выбранные. Ситуации с пустой записью быть не может, потому что первые k элементов набираются подряд.
3. Уникальность выбранных элементов обеспечивается тем, что по исходному массиву мы проходим один раз и подряд. Пройти по нему полностью придется в любом случае.

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


Там нет ни слова про обращение к БД.

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


Автор генерирует случайное число только 20 раз и для каждого числа происходит обмен двух значений местами. Если несколько раз выпадет одно и то же число, то каждый следующий раз в ячейке с этим индексом будет уже другое число, потому что предыдущее уже оттуда переехало в начало массива и заменилось другим. Это все происходит внутри библиотечного вызова Shuffle (о чем автор написал).

Дальнейшее комментировать сложно.

Information

Rating
Does not participate
Date of birth
Registered
Activity