Pull to refresh
81
0
Егор Суворов @yeputons

User

Send message

Так и не надо открывать учебники десятилетней давности. Некоторые вон вообще на Turbo C с <iostream.h> и запретом std::string как глючного и тормозного до сих пор учат — так, конечно, не надо.


И как отличить подобную дичь от условно "современного C++" без исходных ссылок на хорошие материалы новичку — непонятно.

C и C++ конечно зря объединили, но вот про современный C++ вы тоже зря. В качестве первого языка C++ подойдёт куда лучше Си (если правильно учить) — можно писать без возни с выделением памяти, без указателей, без ручного освобождения ресурсов, и всё будет прекрасно работать. Есть прекрасный доклад на тему обучения C++ без этого: Stop Teaching C.

Даже для написания std::cout << "Hello\n" не требуется ни детального понимания правил поиска имён, ни ADL, ни перегрузки операторов — хватит интуитивного «синтаксис почему-то такой».

Хотя мне кажется, что Python или PascalABC.NET (не классический!) подойдут для обучения ещё больше, там меньше абстракций течёт, чем в C или C++.
Про первый пункт: на защитах вполне реалистичнен кейс «член комиссии уснул на случайное подмножество секунд доклада». Хочется, чтобы в таком случае у слушателя всё ещё оставалась возможность проснуться в случайный момент и получить ощущение «всё понятно».

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

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

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

Зависит от компании и команды. Например, мне про некоторые позиции разработчиков (в других компаниях) говорили, что можно и к 10 приходить, потому что на биржу так сильно не завязано. Всякий end-of-the-day processing: составление PnL отчётов, например.
Если проект прямо сейчас нужен на учебном занятии или выступлении — то оно сорвётся.
Кроме того, исключения загрязняют код. Мы не будем здесь подробно обсуждать функциональную чистоту. Но давайте рассмотрим один маленький аспект функциональной чистоты: ссылочную прозрачность. Ссылочно-прозрачная функция всегда возвращает один и тот же результат для конкретного входа. Но для функций с исключениями мы не можем такого сказать. В любой момент они могут выдать исключение вместо возврата значения. Это усложняет логику.

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


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

Пара уникальных фраз действительно может ощущаться приятнее, но я не представляю, как можно дать конструктивную обратную связь в оффлайн-режиме одним письмом за пару фраз. Это, мне кажется, как минимум совсем отдельный скилл.


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

Если styleguide и такое требование озвучены заранее и есть автоматическая утилита для проверки и/или переформатирования (вроде pycodestyle или clang-format) то, мне кажется, вполне разумное требование.

Простые числа и теория чисел нужны в конечных полях, которые применяются, помимо криптографии, в помехоустойчивом кодировании (типа кодов Рида-Соломона из классики).

Есть и детерминированный (не вероятностный) тест на простоту.


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

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


Доказательство есть в английской Википедии: пусть есть многочлен P(x), который принимает только простые значения. Тогда, в частности, P(1) простое, обозначим его p. Тогда P(1) сравнимо с 0 по модулю p. Однако тогда для произвольного целого k P(1+kp) тоже сравнимо с 0 по модулю p, то есть тоже делится на p. Но если P(1+kp) простое, что P(1+k*p)=p. То есть многочлен в бесконечном количестве точек равен p, следовательно, многочлен — константа.

Какое отношение свойства физических объектов ("вычислительные возможности компьютеров") имеют отношение к абстрактным объектам из математики (тот самый полином Матиясевича)?

Определить "формулу" мы можем либо очень узко (вроде "можно использовать только арифметические операции", тогда там вообще ничего разумного не сделать), либо так, что получается выражать произвольные алгоритмы. А написать программу для вычисления простых чисел, конечно же, можно. Про это есть прекрасный ответ на английском от Alon Amit на Quora.


Например, вот формула, которая выдаёт 1, если число простое, и 0 иначе (взята из ответа выше):



Как работает: надо проверить, что для каждого числа от 2 до n-1 выражение n%d не равно нулю. Другими словами, все выражения вида d-(n%d) равны нулю. А деление на d с округлением вниз — это как раз такой "if". То есть внутренняя сумма — это количество делителей числа n от 2 до n-1.


Если захотим выразить простое число под номером n, это тоже легко делается через P(n):



Тут мы просто нашли минимальное m такое, что от 2 до m встречается ровно n простых чисел.


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

Какие-то теоремы чуть проще формулировать, если единицу простым числом не считать. Например, основная теорема арифметики, которая упоминается в статье.


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

Да, вполне себе практикуется, когда надо перемножить произвольное число членов. С суммой аналогично, например, сумма квадратов чисел от 1 до n:



Тут вполне разумно считать, что для n=1 эта сумма равна своему единственному члену

Произведение из одного элемента: самого простого числа. Примерно как SUM(1)=1 в SQL.

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


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

Скорее чуть меньше трёх месяцев (12 недель — нормальная длительность). Университету совершенно необязательно формально «отпускать» студента (если только не в Цюрих, там вроде требуется бумажка сложнее, чем справка об обучении, но я не уверен).

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

Например, можно сдать всю сессию досрочно и тогда всё лето свободно, больше 12 недель, пропусков нет. Можно нормально сдать сессию в июне, уехать в июле, приехать в конце сентября, тогда пропускается всего один месяц семестра из четырёх. Можно комбинировать: сдать пару экзаменов досрочно, сдвинуть начало стажировки, пропустить всего пару недель в сентябре. Чисто теоретически можно даже домашние задания на стажировке делать, но это нетривиальное совмещение.
Вроде бы там не требуется подтверждать, что вы в США.

> Pittsburgh, PA, USA
Это формальное местоположение конкретной вакансии, не имеет отношения к местоположению кандидата.

> Note: By applying to this position your application is automatically submitted to the following locations: Mountain View, CA, USA;…

Тут пишут, что при подаче на эту вакансию автоматически отправляются заявки на аналогичные вакансии в куче остальных мест, т.е. это заявка сразу на всё США. Впрочем, можно будет отфильтровать на стадии host matching, если очень хочется.

> Preferred qualifications:
> Authorization to legally work in the United States.

Желательные (но не обязательные) требования: разрешение на работу в США. Если его нет — наверняка сделают J-1.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity