>> Напомнило, что, такую дурь как "английский со словарём"
А в чём проблема? Тем более в 2021 году пол-шарика пользуется такими методами. После определённого момента (можешь читать профессиональные тексты и общаться с не-нэйтивами письменно - как минимум с поддержкой или stackoverflow) хочешь прочитать газетную статью, но некоторые слова, иногда ключевые со своими 5000 слов не знаешь. Перевёл браузерным плагином поехал дальше.
>> Со временем не навык обучения атрофируется, а появляется множество других интересов и нерешенных вопросов, отнимающих ресурсы мозга.
Есть достоверные факты (по повреждению мозга и утрате навыка), что за "язык выученный до 12 лет" и "язык выученный после 12 лет" отвечают разные области мозга.
За язык в детсве - "ядро" речевого центра. За язык во взрослом возрасте - переферия речевого центра.
освобождаем буфер, и как минимум продолжаем обработку ошибки, возможно даже и восстанавливаем работоспособность программы.
Крайне плохой совет. Fail fast не получили. Да и скорее всего если память кончилась - то есть системная проблема, на которую вы всё равно нарвётесь.
Как превратить совет в хороший? а) Организовать запись в логи на заранее статически выделенных аренах (пулах) - называйте как вам удобно. б) Организовать сохранение пользовательских данных на динамически, но заранее выделяемых аренах (пулах).
"Если полностью открыть кран, то ванна заполнится за час, если после этого выключить воду и вытащить пробку, то вода полностью сольется за 2 часа. За какое время наполнится ванна без пробки, с полностью открытым краном?"
Ну так-то тут дифф.уравнение должно быть, которое я скорее всего не решил бы на интервью.
Да знать, что "магии нет" - это разумеется полезно (с другой стороны "цена багфикса" может оказаться и заградительной - это тоже разумно проговорить), здесь вопросов нет.
У меня вопрос только к имлицитному утверждению, что "проблемы стандарта С++ не баг, а фича, позволяющая вырастить очередное поколение программистов более закалённым к будущим сложностям". Мне кажется, что если выкинуть отсюда С++, то то же самое время можно потратить с куда большей пользой.
Подавляющее большинство разовых сбоев редки и приводят к BSOD, что не является предметом этой статьи.
Так в этом и есть весь вопрос.
Вы можете объяснить почему грузить новичка специфичными и мало где ещё нужными аппаратными сбоями не нужно, а грузить новичка специфичными и мало где за пределами С++ нужными особенностями языка и поведения компиляторов - это прям хорошо?
Как по мне и то и то лежит за пределами "полезных при обучении новичка" навыков.
Для понимания, что нет никакой магии и машина делает только то, что написано и ничего более, никогда.
А мы сюда ошибочное поведение компьютера относим? А недетерминированное (например сбои non-ECC памяти или редкие неотлаженные гонки на кристалле в сложных температурных условиях)?
Если учесть всё - то у вас получается какой-то трюизм. А если проводить разумную границу - то далеко не факт, что C++ с его тысячестраничным стандартом и UB располагается с "разумной для изучения новичком" стороны.
При всём том, что несомненно существует фактор: "не спал в 15 лет до 4 утра думая как эту штуку получше устроить в своей новой супер-проге (тогда ещё не было термина pet-project)" начисто отрицать фактор везения будет определённым лицемерием.
Вот у нас было 2 сильных класса сильной региональной физ-мат школы (ходили на одни и те же городские/областные олимпиады и делили между собой все 1-3 места по физике-математике-информатике). Ну вот по истечении 20 лет ситуация такая: Так вот те, кто пошёл в "физику-математику" сегодня зарабатывают в 1.5 раза меньше чем те, кто пошёл в IT. Те, кто пошёл в банковскую сферу - зарабатывают примерно в 1.5 раза больше.
Во-вторых, конкретно потребитель в теории эффективного рынка может повлиять на качество продукта не обострившимся синдромом вахтера, ...... Понимаете, при чем тут кругозор?
Давайте разберём всего лишь одно ваше утверждение. Во-первых теории эффективного рынка (про взаимоотношение потребитебя и поставщика продуктов нет - возможно вы дадите ссылку?). Есть "гипотеза эффективного рынка", аж 3 штуки. Они про рынок ценных бумаг. И да наличие аж 3х гипотез говорит нам о том, что современная наука не знает какая из них правильная.
Во-вторых есть теория свободного рынка, одно время имплицитно считалось, что свободный рынок достигает эффективности "сам". Однако сегодня хорошо известно, что это далеко не всегда так (началось с "рынка лимонов" и нобелевской премии по экономике за 2001 год). Проблемы "естественных монополий", "асимметрии информации", "нерациональной оценки рисков" (впрочем тут лучше было бы сослаться на общую behaviour economics, - гуглится нобелевка по этом утермину, - вообще), - это только крупные мазки.
Поэтому прежде чем некрасиво намекать, что "в теории эффективного свободного ваше поведение должно быть другим" неплохо было бы доказать, что мы имеем дело с рынком, достигающим оптимума (без внешних регуляций).
Так вот: одино ваше имплицитное утверждение требует микро-лекции почему оно неверно с объяснением всех заблуждений. И вы действительно считаете, что вправе писать про "кругозор" другим людям?
Не понял, а как дженерики связаны с NPE? NPE - это же завезти "засахаренную ad-hoc монаду Maybe" + поломать обратную совместимость (в Java / С# вон уже сколько лет пытаются - не выходит аленький цветочке).
>> Вообще, энергомосты через экватор выглядят перспективно: пока в Северном полушарии ночь, в Южном - день.
А вы "день / ночь" с "зима / лето" не перепутали случаем? А то география со стереометрией учат нас, что на одной и той же долготе астрономическое время одинаково (за исключением полюсов).
Но если начнёте сортировать uint64_t - то нужно уже 2^64. Что сделает bytes_to_sort = 8. То есть кол-во операций в сортировке вдвое больше (это в дополнение, что в каждой итерации у вас будет копирование уже 64-битного числа). Если начнёте сортировать __int128_t - то bytes_to_sort =16. А если структурки, размером 32 байта - то bytes_to_sort = 32.
Это ровно оно и есть: временная сложность растёт как логарифм максимального значения ключа.
Но в строке же 102 - как раз вычисляется логарифм от "актуального значения" максимального элемента.
Сохраняется в bytes_to_sort. А потом bytes_to_sort раз пробегаемся по массиву, разделяя его на 256 бакетов. Т.е. сложность сортировки - таки O(n * sizeof(elem)).
хм... а там разве не "с 12 лет (12 лет или старше)".
Ну а то, что "и старше" понятно из универсального правила написания юридических текстов "наличие исключения говорит о наличии общего правила".
As young as - говорит о "настолько молодой, как 12 лет" как об исключении.
>> Напомнило, что, такую дурь как "английский со словарём"
А в чём проблема? Тем более в 2021 году пол-шарика пользуется такими методами.
После определённого момента (можешь читать профессиональные тексты и общаться с не-нэйтивами письменно - как минимум с поддержкой или stackoverflow) хочешь прочитать газетную статью, но некоторые слова, иногда ключевые со своими 5000 слов не знаешь. Перевёл браузерным плагином поехал дальше.
>> Со временем не навык обучения атрофируется, а появляется множество
других интересов и нерешенных вопросов, отнимающих ресурсы мозга.
Есть достоверные факты (по повреждению мозга и утрате навыка), что за "язык выученный до 12 лет" и "язык выученный после 12 лет" отвечают разные области мозга.
За язык в детсве - "ядро" речевого центра. За язык во взрослом возрасте - переферия речевого центра.
Крайне плохой совет.
Fail fast не получили. Да и скорее всего если память кончилась - то есть системная проблема, на которую вы всё равно нарвётесь.
Как превратить совет в хороший?
а) Организовать запись в логи на заранее статически выделенных аренах (пулах) - называйте как вам удобно.
б) Организовать сохранение пользовательских данных на динамически, но заранее выделяемых аренах (пулах).
Но вариант б) по очевидным причинам сложнее.
Тогда исходный тезис превращается в: "краткий и ясный код способствует читаемости", - трюизм.
Ну так-то тут дифф.уравнение должно быть, которое я скорее всего не решил бы на интервью.
Похоже по оси Х - число дописаных строк кода (размер диффа или что-то похожее), а по оси Y - число написанных строк, при обсуждении Review Request.
Хотя странно, по моим ощущениям это вроде должен быть "купол" или "колокол", с максимумом в районе 50-100 строк.
Да знать, что "магии нет" - это разумеется полезно (с другой стороны "цена багфикса" может оказаться и заградительной - это тоже разумно проговорить), здесь вопросов нет.
У меня вопрос только к имлицитному утверждению, что "проблемы стандарта С++ не баг, а фича, позволяющая вырастить очередное поколение программистов более закалённым к будущим сложностям".
Мне кажется, что если выкинуть отсюда С++, то то же самое время можно потратить с куда большей пользой.
Так в этом и есть весь вопрос.
Вы можете объяснить почему грузить новичка специфичными и мало где ещё нужными аппаратными сбоями не нужно, а грузить новичка специфичными и мало где за пределами С++ нужными особенностями языка и поведения компиляторов - это прям хорошо?
Как по мне и то и то лежит за пределами "полезных при обучении новичка" навыков.
Но утиная ))
А мы сюда ошибочное поведение компьютера относим? А недетерминированное (например сбои non-ECC памяти или редкие неотлаженные гонки на кристалле в сложных температурных условиях)?
Если учесть всё - то у вас получается какой-то трюизм.
А если проводить разумную границу - то далеко не факт, что C++ с его тысячестраничным стандартом и UB располагается с "разумной для изучения новичком" стороны.
При всём том, что несомненно существует фактор: "не спал в 15 лет до 4 утра думая как эту штуку получше устроить в своей новой супер-проге (тогда ещё не было термина pet-project)" начисто отрицать фактор везения будет определённым лицемерием.
Вот у нас было 2 сильных класса сильной региональной физ-мат школы (ходили на одни и те же городские/областные олимпиады и делили между собой все 1-3 места по физике-математике-информатике). Ну вот по истечении 20 лет ситуация такая:
Так вот те, кто пошёл в "физику-математику" сегодня зарабатывают в 1.5 раза меньше чем те, кто пошёл в IT.
Те, кто пошёл в банковскую сферу - зарабатывают примерно в 1.5 раза больше.
Давайте разберём всего лишь одно ваше утверждение.
Во-первых теории эффективного рынка (про взаимоотношение потребитебя и поставщика продуктов нет - возможно вы дадите ссылку?). Есть "гипотеза эффективного рынка", аж 3 штуки. Они про рынок ценных бумаг. И да наличие аж 3х гипотез говорит нам о том, что современная наука не знает какая из них правильная.
Во-вторых есть теория свободного рынка, одно время имплицитно считалось, что свободный рынок достигает эффективности "сам".
Однако сегодня хорошо известно, что это далеко не всегда так (началось с "рынка лимонов" и нобелевской премии по экономике за 2001 год).
Проблемы "естественных монополий", "асимметрии информации", "нерациональной оценки рисков" (впрочем тут лучше было бы сослаться на общую behaviour economics, - гуглится нобелевка по этом утермину, - вообще), - это только крупные мазки.
Поэтому прежде чем некрасиво намекать, что "в теории
эффективногосвободного ваше поведение должно быть другим" неплохо было бы доказать, что мы имеем дело с рынком, достигающим оптимума (без внешних регуляций).Так вот: одино ваше имплицитное утверждение требует микро-лекции почему оно неверно с объяснением всех заблуждений.
И вы действительно считаете, что вправе писать про "кругозор" другим людям?
Не понял, а как дженерики связаны с NPE?
NPE - это же завезти "засахаренную ad-hoc монаду Maybe" + поломать обратную совместимость (в Java / С# вон уже сколько лет пытаются - не выходит аленький цветочке).
>> Вообще, энергомосты через экватор выглядят перспективно: пока в Северном полушарии ночь, в Южном - день.
А вы "день / ночь" с "зима / лето" не перепутали случаем?
А то география со стереометрией учат нас, что на одной и той же долготе астрономическое время одинаково (за исключением полюсов).
Для сортировки int32_t - да достаточно 2^31
Но если начнёте сортировать uint64_t - то нужно уже 2^64. Что сделает bytes_to_sort = 8. То есть кол-во операций в сортировке вдвое больше (это в дополнение, что в каждой итерации у вас будет копирование уже 64-битного числа).
Если начнёте сортировать __int128_t - то bytes_to_sort =16.
А если структурки, размером 32 байта - то bytes_to_sort = 32.
Это ровно оно и есть: временная сложность растёт как логарифм максимального значения ключа.
простите отвечу и здесь: строка 102 приведённого вами алгоритма.
Но в строке же 102 - как раз вычисляется логарифм от "актуального значения" максимального элемента.
Сохраняется в bytes_to_sort.
А потом bytes_to_sort раз пробегаемся по массиву, разделяя его на 256 бакетов.
Т.е. сложность сортировки - таки O(n * sizeof(elem)).
Если предположить, что это так: то зачем тогда вообще такие процессоры рассматривать (вкладыть деньги, проводить R&D) как GP-процессоры?
Спасибо, а можно ссылочку почитать.