Pull to refresh
5
Karma
0
Rating
Виталий Сергеев @enkryptor

Разработчик

  • Followers 5
  • Following 7

35 вопросов с собеседования JavaScript-разработчика

Вот мой .push() в список фактических ошибок в вопросах. Точнее, в данном случае ошибка в ответе:

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

Совсем наоборот, операнды арифметических выражений в JS как раз приводятся к числу. Можете проверить сами:

"3" - 2 // 1
3 * "2" // 6
"2" ** "3" // 8

Исключением является оператор +. Он используется как для сложения, так и для конкатенации строк. Если хотя бы один операнд не является числом, операция интерпретируется как конкатенация и оба значения приводятся к строке:

1 + {} // "1[object Object]"

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

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

Собака-робот за 1 миллион рублей (Unitree Robotics A1, обзор)

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

Как создавать красивые карты с помощью Python

Что Земля на самом деле плоская?

Валюта основанная на времени

Нельзя поддержать чужой бан. Например, спамера забанили на 15 минут, а я хочу минимум на день. При попытке забанить кого-то кого уже успели забанить получаем ошибку "user already blocked".

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

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

Если у вас нет плюсов

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

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

1. Математические. Эти решения не специфичны для Пайтона и для ЯП вообще. Сводятся к поиску выражения, не содержащего в себе знака "плюс", но дающего сумму аргументов на выходе. Здесь вычитание отрицательного числа, логарифм от произведения степеней и прочие варианты из комментариев.

2. Lookup-таблица с вычисленными заранее результатами.

3. Сокрытие вызова. Здесь мы на самом деле вызываем всё тот же add что и при использовании оператора "плюс", но делаем это без использования оператора. Решений также несколько, все они сильно зависят от конкретного ЯП.

4. Реализация сумматора. Сюда относятся решения со счётчиками, реализация двоичного сложения и прочее. Императивный подход, реализуемый на любом Тьюринг-полном ЯП, не завязан конкретно на Пайтон.

5. Использование внешнего источника. Реализация нужной операции берётся из среды выполнения — окружения или библиотек.

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

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

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

Если у вас нет плюсов

Это что ж за номер был, что не влазил в 15 символов?

Если у вас нет плюсов

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

Если у вас нет плюсов

"Задача - удалить гланды. Условие - через рот нельзя."

Роскомнадзор: вниманию компаний, использующих в работе VPN-сервисы

1 апреля представитель Госдумы рассказал про суверенный Рунет, ситуацию с Twitter, возможную блокировку других сервисов и VPN.

Но это же была первоапрельская шутка, так? Ведь так?..

Очередная причуда Win 10 — и как с ней бороться

В каком шелле запускали проблемную команду, CMD или PowerShell? В статье про это не упоминается.

Телеграмм-бот на Python

Язык программирования был выбран python (наверное понятно из обложки почему)

О какой обложке речь?

Трёхпроходный алгоритм рефакторинга Front End

Тут беда не в том, что это слово-паразит, а в том что это родительный падеж слова «тип». То есть должно быть «типа», а не «типо». Какого типа компонент? — Компонент типа кнопки.

Трёхпроходный алгоритм рефакторинга Front End

Всё круто и правильно, и вроде бы придираться к орфографии это дурной тон, но когда я вижу "типо" где-либо вне неофициальной переписки — как полосатый слон "теряю волю" 8(

Как я нашел в публичном доступе исходники нескольких сервисов ФНС

Может, под "так и было" имелось в виду что тащ майор за это и взял?

Почему я перестал читать статьи про то, как стать разработчиком

Следующий шаг — «почему я перестал читать статьи про то, как перестать читать статьи».

Блогера арестовали на 2 месяца за ловлю покемонов в храме

Даже в переносном (что чаще) смысле? Например, «кощунство над природой».

Блогера арестовали на 2 месяца за ловлю покемонов в храме

Штаны в виде флага — нормально. Другое дело если бы флаг (например США) в виде штанов…

Блогера арестовали на 2 месяца за ловлю покемонов в храме

Увы и ах, но да, этические нормы в нашей (да и в мировой) культуре применимы к неодушевлённым «предметам» — символам, ценностям. Только это называется не «оскорбление», а «кощунство».
image

Блогера арестовали на 2 месяца за ловлю покемонов в храме

Насколько эта критика справедлива, содержит ли оскорбления или клевету — решит суд.

Другое дело, конечно — насколько справедливым будет сам этот суд…

Блогера арестовали на 2 месяца за ловлю покемонов в храме

Ни в коем случае не оправдываю обвиняющую сторону, но должен заметить, что растиражированный заголовок «человека арестовали за ловлю покемонов в храме» мягко говоря вводит в заблуждение. Не за ловлю покемонов его арестовали, а за публикацию. Состав преступления — не богохульство, не игра «в неположенных местах», а публикация ряда сюжетов (в т.ч. и данного видео с покемонами) в его видеоблоге, где он критически отзывается об РПЦ. Насколько эта критика справедлива, содержит ли оскорбления или клевету — решит суд. Сам арест состоялся из-за того, что к популярным блогам у нас применим закон о СМИ.

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity