• Уместны ли каверзные вопросы на собеседовании?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Странный вопрос.
    На собеседовании все уместно. Ты же не забывай, что собеседование это не ЕГЕ.
    Это диалог двух сторон. Если кандидату не понравился вопрос, он может встать и уйти.
    Если он не знает ответ, он может что-то насочинять, и если ты грамотный специалист ты увидишь что он тут отгадывает или точно знает.

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

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

    @AlexSku
    не буду отвечать из-за модератора
    Новая Delphi бесплатный вариант Community Edition.
    Ответ написан
    Комментировать
  • В чём ошибка в коде, паскаль ((12): Ошибка времени выполнения: Индекс находился вне границ массива.)?

    vabka
    @vabka
    Токсичный шарпист
    Индекс находился вне границ массива

    Русским по белому же написано.

    Представим, что у нас массив a[] размером 2
    Тогда
    low(a)=0
    high(a)=1
    На первой же итерации:
    i=0
    high(a) - i + 1 = 2
    2 находится за пределами границ массива.

    А ещё из твоей функции никакое значение не возвращается.

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

    GavriKos
    @GavriKos
    Нет, неправильно.
    Во первых - язык это не текстовый файл. Это набор правил (синтаксических, семантических), лексем и прочего.
    Во вторых процесс компиляции не так выглядит совершенно. Компилятор никаких переменных не создает. Более того - там еще есть трансляторы, линковщики, валидаторы и прочее.

    Ну и да, на ассемблере компиляторы давно не пишут.

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

    Ну вот это в каком то приближении правильно, правда необязательно на языке ассемблера.
    Ответ написан
    Комментировать
  • Хочу писать приложения под Win10, что учить?

    @zedxxx
    Если речь о десктопных пользовательских приложениях с гуи, то выбирайте между C#, Delphi, Qt (C++).
    Ответ написан
    Комментировать
  • Почему лучше иметь несколько акаунтов gitHub?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer
    Нет, несколько аккаунтов совсем не лучше.
    Но иногда бывает вынужденная ситуация, когда ты не хочешь или не можешь некоторые репозитории хранить под одним аккаунтом.
    Бывает у тебя есть личный и рабочий аккаунт, с разным доступом.
    Ну или два личных, тоже с разным доступом и разными задачами, ты не хочешь их связывать друг с другом.
    Но в своем большинстве, достаточно одного аккаунта, а личные репозитории просто делать приватными.
    Ответ написан
    Комментировать
  • Можно установить Ubuntu паралельно Windows?

    Zoominger
    @Zoominger Куратор тега Windows
    System Integrator
    Нет.
    Ставьте в виде виртуальной машины.
    Меньше геморроя будет.
    Ответ написан
    Комментировать
  • Как правильно импортировать модули?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    в модуле родителя должен быть импортирован модуль с классом ребенка
    "родитель" не должен знать о "ребёнке".
    родитель содержит в себе поля класса ребенка
    Это ошибка. Перенесите все поля в "родителя".

    родитель это приложение
    619410450762f813033838.png
    child'ы это компоненты приложения
    619410743179b989512999.pngКак видите формы не наследуются от приложения. А находятся в одном модуле.
    И приложение управляет ими, поскольку их создаёт:Application.CreateForm(TForm1, Form1);
    А форма имеет доступ к приложению:Application.ExeName;

    я говорю не о наследовании.
    Расположите их в одном модуле.

    Примечание: paren:^TParent - это масло мысленное, так как переменная-объект - это и есть ссылка. Поэтому Proc1(Obj: TMyObject) и Proc1(var Obj: TMyObject) будут выполняться по-разному.
    Ответ написан
  • Почему не работает этот код в Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Читать учебник.
    Ответ написан
    4 комментария
  • Как безопасно открыть вирус с почты?

    Adler_lug
    @Adler_lug
    В блокноте откройте или любом другом текстовом редакторе.
    Ответ написан
    7 комментариев
  • Чем отличаются друг от друга функции, процедуры и операторы(на примере FreePascal)?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Функции и процедуры - почти одно и то же. Различие лишь в том, что функция возвращает значение, а процедура - нет. Очевидно, функцию можно использовать, как процедуру, если просто игнорировать возвращаемое значение. Поэтому в других языках обычно даже не вводится такое понятие, как процедура. А в Си-подобных языках, где функция обязана иметь возвращаемый тип, используется тип void, что тоже как бы делает функцию процедурой.

    Говоря о функциях или процедурах, акцент ставится на сам механизм вызова - указатель текущего места выполнения помещается в стек, управление передаётся функции, и по её завершении указатель восстанавливается из стека и выполнение программы продолжается с того же места. Таким образом, имеются в виду два момента: 1) сам вызов функции 2) расположение тела функции в другом месте памяти. То есть функция - по сути подпрограмма.

    Оператор же - по сути отдельная самостоятельная инструкция. Обычно их можно менять местами на одном уровне вложенности, и это не добавит синтаксических ошибок. Однако сама по себе инструкция может быть не только простой, но и сложной, составной. Например, целый блок, или условный оператор, или цикл. Таким образом, оператор может содержать в себе другие операторы. Это надо понимать, чтобы не запутаться в терминологии. Говоря об операторах, акцент ставится на том, что код - это последовательность инструкций, которые выполняются одна за другой. Обращение к функции (её вызов) - это тоже оператор в том смысле, что это отдельная инструкция.
    Ответ написан
    1 комментарий
  • Как в безопасном режиме Windows с поддержкой командной строки провернуть экран?

    Безопасный режим на то и безопасный, что в нём загружается минимально возможный набор только стандартных драйверов обеспечивающих работу ОС с целью восстановления. Драйвер видеокарты загружается только базовый, без всяких свистоперделок, он не умеет поворачивать экран. Так что никак.
    Ответ написан
    2 комментария
  • Почему скорость разных языков разная?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Допустим нам нужно сложить два числа - 2 и 3

    На ассемблере:
    Кладем 2 в регистр ax, 3 - в регистр bx, выполняем команду сложения регистров - в результате у нас в ax ответ.
    Грубо говоря - у нас выполнились всего 3 команды на уровне процессора.

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

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

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    С помощью компонента ShellFoldersBrowse (список внизу) находите папку-источник и папку получатель. К последней добавляете ExtractFileName от источника. Копировать с помощью System.IOUtils.TDirectory.Copy.
    DELPHI+ShellFoldersBrowse. Если ничего не устроит, могу положить сюда свой вариант.
    Ответ написан
    3 комментария
  • Windows только для одной программы?

    karabanov
    @karabanov
    Системный администратор
    Настройка киоска с одним приложением на Windows 10/11

    В общем гугли, как настроить режим киоска...
    Ответ написан
    Комментировать
  • Что важней видюха или проц, для разработки в C#?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Для разработки на C# - проц.
    Для разработки на Unity - оба.
    Ответ написан
    Комментировать
  • В чeм разница и как правильно сделать?

    @spaceatmoon
    Для одиночного вызова разницы никакой. Однако по логике, вызов конструктора намного сильнее тормозит программу, нежели просто вызвать функцию Next.

    DateTime timeStart = DateTime.Now;
    for (int i = 0; i < 10000; i++)
    {
        int random = new Random().Next(1, 10);
    }
    DateTime timeStop = DateTime.Now;
    Console.WriteLine("new Random().Next(1, 10) - {0}", timeStop - timeStart);
    //
    timeStart = DateTime.Now;
    Random random1 = new Random();
    for (int i = 0; i < 10000; i++)
    {
        int dig = random1.Next(1, 10);
    }
    timeStop = DateTime.Now;
    Console.WriteLine("random.Next(1, 10) - {0}", timeStop - timeStart);

    new Random().Next(1, 10) - 00:00:00.0209561
    random.Next(1, 10) - 00:00:00.0001170
    Ответ написан
    2 комментария
  • Как учитывается активность в GitHub?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    1. Естественно нет. Гитхаб учитывает коммиты сделанные в гитхаб, а не в какой-то другой репозиторий.

    2. Прежде чем так делать, поинтересуйтесь на работе можно ли указывать внешнюю почту. Возможно политикой компании принято использовать рабочую почту.
    Ответ написан
    Комментировать
  • RC4 почему не полный результат?

    OCTAGRAM
    @OCTAGRAM
    Вместо Chr, который возвращает не понятно, что, для аналогии нужен Char. Или это какая версия Delphi? В старых (2007 и старше) для аналогии это WideChar.

    Посмотрел, а на чём прерывается версия Delphi. В JavaScript это \u0000. Напрашивается мнение, что Delphi отработала как надо, а проблема в системе отображения, которая закодирована на устаревшем языке программирования с устаревшей системой кодирования длины строки встроенным в конец строки нулевым символом. Поменяйте тот кусок, где режется, и строка сохранится во всей полноте.
    Ответ написан
    6 комментариев