Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Игра рыбалка представляет собой полноценный симулятор рыбалки и дает возможность порыбачить в реально существующих местах из жизни и поймать рыбу, которая там обитает.

Рыбный дождь

Спорт, Симуляторы, Рыбалка

Играть

Топ прошлой недели

  • CharlotteLink CharlotteLink 1 пост
  • Syslikagronom Syslikagronom 7 постов
  • BydniKydrashki BydniKydrashki 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Interview

21 пост сначала свежее
cherkalexander
cherkalexander
1 год назад

Проваливание промисов⁠⁠

Когда вы передаете в then() что-то отличное от функции (например, промис), это интерпретируется как then(null) и в следующий по цепочке промис «проваливается» результат предыдущего.

Подробнее о промисах в статье "У нас проблемы с промисами".

#interview #frontend #javascript

https://t.me/cherkashindev/131

Проваливание промисов Кросспостинг, Pikabu Publish Bot, Interview, Frontend, Javascript, Telegram (ссылка)
Показать полностью 1
Кросспостинг Pikabu Publish Bot Interview Frontend Javascript Telegram (ссылка)
0
10
cherkalexander
cherkalexander
1 год назад
Лига программистов

Где проводить live-coding⁠⁠

Если вы время от времени проводите собеседования — то вы наверняка хотите не только поговорить о жизни с кандидатом, но и проверить насколько он хорош в деле. Для этого вам поможет live-кодинг.

Для live-кодинга, вы можете использовать:

1️⃣ Yandex Code
- ✅ Подсветка синтаксиса
- ✅ Совместное написание кода
- ❌ Нет подсветки ошибок
- ❌ Нельзя запускать код

2️⃣ Interview Cups — онлайн редактор от VK
- ✅ Подсветка синтаксиса
- ✅ Совместное написание кода
- ❌ Подсветка ошибок
- ✅ Можно запускать код

3️⃣ Visual Studio Live Share. Позволяет кандидату открыть ваш проект прямо в браузере, после чего вы можете совместно писать код.

А что вы используете для live-кодинга?

https://t.me/cherkashindev/129

[моё] Кросспостинг Pikabu Publish Bot Interview Текст
3
24
cherkalexander
cherkalexander
1 год назад
Лига программистов

Сборщик мусора в .NET⁠⁠

Сборщик мусора в .NET Кросспостинг, Pikabu Publish Bot, Csharp, Dotnet, Interview, Текст, Длиннопост

Одним из самых популярных на собеседованиях C# разработчиков является вопрос о работе сборщика мусора в .NET. Мне также приходилось рассказывать о нём интервьюерам на моих собесах. Сегодня я хотел бы кратко рассказать о сборщике мусора, заодно и сам вспомню.

🔍 Зачем нужен сборщик мусора?
Сборщик мусора автоматически обеспечивает освобождение памяти, занятой объектами, которые больше не используются. Такой подход предотвращает утечки памяти и снимает с разработчика бремя ручного освобождения памяти (привет С++), что позволяет сосредотачиваться на более важных аспектах программирования.

⏰ Когда вызывается сборщик мусора?
Сборщик мусора активируется автоматически, например, когда одно из поколений заполнено (о поколениях позже). Если вам требуется инициировать сборку мусора вручную, используйте GC.Collect().

🔗 Как определяется, какие объекты больше не используются?
Сборщик мусора опирается на концепцию "GC Roots" (корни сборки мусора):

1. Локальные переменные: Объекты, на которые существуют ссылки в локальных переменных.
2. Статические переменные: Объекты, на которые ссылаются статические переменные классов. Эти корни живут в течение всего времени выполнения приложения.
3. Активные элементы стека: Если во время выполнения функции происходит сборка мусора, то локальная переменная внутри данной функции не будет удалена сборщиком мусора. Такая переменная считается активным корнем, до тех пор пока кадр стека метода не будет разрушен.

Сборщик мусора создаёт граф (фаза маркировки), который содержит все объекты, достижимые из GC Roots. Объекты, на которые нет ссылок из GC Roots, считаются недостижимыми и готовыми для удаления.

🔄 Как работает сборщик мусора?
Сборщик мусора использует концепцию поколений (поколения 0, 1 и 2) для эффективной работы с объектами различной "старости".

- При создании объекты помещаются в поколение 0. Если объект слишком большой (по умолчанию объекты размером больше 85 000 байт), то он будет помещён в Large Object Heap (очищается вместе с поколением 2).
- Когда поколение 0 заполнено — запускается сборка мусора. Неиспользуемые объекты удаляются (недостижимые из GC Roots), оставшиеся перемещаются в поколение 1.
- Аналогично происходит сборка мусора, когда заполнено поколение 1. Все выжившие объекты перемещаются в поколение 2. Затем происходит сборка мусора в поколении 0.
- Когда заполнено поколение 2, происходит полная сборка мусора. Сперва очищается поколение 2, а затем 1 и 0. Если после этого недостаточно места для новых объектов — происходит исключение OutOfMemory.
- В самом конце происходит фаза сжатия, в которой сборщик мусора перемещает живые объекты так, чтобы они располагались в памяти непосредственно друг за другом.

🔄 Для чего нужно разделение на несколько поколений?
- Сборка мусора поколения 0 выполняется чаще и занимается удалением объектов, которые быстро выходят из области видимости.
- С увеличением поколения редкость запуска сборки позволяет более эффективно использовать ресурсы. Поколение 0 очищается чаще всего, поколение 2 очищается реже всего.

🌐 Ещё по теме:
- .NET Memory Management Concepts — очень кратко об основных концепциях сборщика мусора
- Поколения объектов — одна из очень подробного цикла статей о сборщике мусора

https://t.me/cherkashindev/117

Показать полностью 1
[моё] Кросспостинг Pikabu Publish Bot Csharp Dotnet Interview Текст Длиннопост
0
10
cherkalexander
cherkalexander
1 год назад
Типичный программист

Бинарная куча и приоритетная очередь⁠⁠


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

❓ Что это такое “Приоритетная очередь”

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

Приоритетная очередь поддерживает те же операции, что и обычная очередь.

❓ Что это такое “Бинарная (двоичная) куча”

Бинарная куча – структура данных, позволяющая быстро (за логарифмическое время) добавлять элементы и извлекать элемент с максимальным приоритетом.

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

Можно сказать, что приоритетная очередь — это интерфейс, а бинарная куча — одна из возможных реализаций интерфейса “приоритетной очереди”.

💡 О том, как происходит добавление и удаление элементов из бинарной кучи описано в статье на хабре Структуры данных: двоичная куча (binary heap)

🧑‍💻 Собеседования

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

Например:

- В .NET 6 появилась встроенная реализация приоритетной очереди, она так и называется PriorityQueue
- А вот в JavaScript из коробки в нет подобной реализации

В таком случае можно быстро реализовать приоритетную очередь с помощью динамического массива:

- Описать класс PriorityQueue, у которого под капотом используется динамический массив
- Метод Enqueue — добавляет элемент в конец динамического массива
- Метод Dequeue — извлекает элемент с наименьшим приоритетом

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

⌨️ Пример задачи с Leetcode

Чтобы понять как и зачем использовать приоритетную очередь можно порешать следующие задачи на Leetcode

1. Top K Frequent Words
2. Top K Frequent Elements

Еще по теме:

- .NET 6: PriorityQueue
- Top K Frequent Words - Priority Queue Approach (LeetCode)

#algorithms #interview

https://t.me/cherkashindev/115

Показать полностью
[моё] Кросспостинг Pikabu Publish Bot Interview Программирование Алгоритм Интервью IT Программист Собеседование Текст
2
6
cherkalexander
cherkalexander
2 года назад
Лига программистов

Задача на знание замыканий в JavaScript⁠⁠


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

Задача на знание замыканий в JavaScript Кросспостинг, Pikabu Publish Bot, Javascript, Interview, Текст



/**
* Нужно написать функцию, которая принимает число N и возвращает функцию,
* вызов которой первые N раз возвращает 'yes', а потом – 'no'.
*/
function canGetCount(n) {
// code here
}

const getOne = canGetCount(2);

getOne() === 'yes'
getOne() === 'yes'
getOne() === 'no'


#javascript #interview

Показать полностью
[моё] Кросспостинг Pikabu Publish Bot Javascript Interview Текст
30
11
cherkalexander
cherkalexander
2 года назад
Web-технологии

Задачи на собеседовании JavaScript разработчика⁠⁠

Задачи на собеседовании JavaScript разработчика Кросспостинг, Pikabu Publish Bot, Interview, Кодирование, Текст, Собеседование, Длиннопост

1. Напишите функция вычисления последовательности фибоначи
function fib(n) {
// TODO: implement
}

fib(5); // [0, 1, 1, 2, 3]
fib(7); // [0, 1, 1, 2, 3, 5, 8]
fib(11);// [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

2. Напишите функцию, которая будет проверять на “глубокое” равенство 2 входящих параметра
function deepEqual(a, b) {
// TODO: implement
}

const source = {a: 1, b: {c: 1}}

const test1 = {a: 1, b: {c: 1}}
const test2 = {a: 1, b: {c: 2}}
const test3 = {a: 1, c: {b: 1}}
const test4 = {a: 1, c: 2}
const test5 = {c: 2, a: 1}
const test6 = {a: 1, b: {c: {d: 5}}}

console.log(deepEqual(source, test1)) // -> true
console.log(deepEqual(source, test2)) // -> false
console.log(deepEqual(source, test3)) // -> false
console.log(deepEqual(source, test4)) // -> false
console.log(deepEqual(source, test5)) // -> false
console.log(deepEqual(source, test6)) // -> false

3. Напишите функцию, которая принимает два аргумента:
- Массив из ЦЕЛЫХ ПОЛОЖИТЕЛЬНЫХ ЧИСЕЛ и сумму в виде целого числа.
- Функция должна вернуть все ПОДПОСЛЕДОВАТЕЛЬНОСТИ чисел массива из аргумента, сумма которых равна числу, которое приходит вторым аргументом.
- Если решения нет, вернуть пустой массив.

function findSum(array, targetSum) {
//TODO: implement
}

array = [1, 5, 4, 1, 11, 1, 10, 9, 1, 9, 6, 4, 10]
targetSum = 10

findSum(array, targetSum)
// [ [ 1, 5, 4 ], [ 5, 4, 1 ], [ 10 ], [ 9, 1 ], [ 1, 9 ], [ 6, 4 ], [ 10 ]]

https://t.me/+vXaKdcP7YFY0NGMy

Показать полностью 1
[моё] Кросспостинг Pikabu Publish Bot Interview Кодирование Текст Собеседование Длиннопост
20
28
DELETED
3 года назад

Давайте кандидатам задачи⁠⁠

Когда только начинал собеседовать - знания проверялись только через тестовые задания. Но на проверку уходило много времени, да и не все хотели их делать. Поэтому на их место пришли вопросы наподобие типов данных в js или что такое замыкание?


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

Это не были какие-то умные задачи на алгоритмы - печально известный FizzBuzz не мог потянуть каждый 2-ой.


Именно поэтому я пришел к выводу, что такие задачи давать надо!

Если у кандидата не получается их решить, то скорее всего со своей работой он справляться не будет. Это не всегда так, но корреляция высокая.


Также важно понимать, что это не способ найти хорошего программиста.

Это нужно для того, чтобы отсечь потенциально слабого.

[моё] Программирование IT Программист Собеседование Разработка Задача Софт Interview Javascript Текст
36
yuliabramovaa
yuliabramovaa
3 года назад

ELLE BLINK, БУЗОВА И БЭКХЕМ, ДЕНЬГИ vs УЗНАВАЕМОСТЬ, THE VOICE OF CHINA | КТО ЭТИ ЛЮДИ⁠⁠

Китай - крупнейший рынок музыкальной индустрии с капитализацией в 50 млрд долларов в год практически полностью принадлежит компании Tencent.

Мой гость певица Elle Blink, с которой мы поговорили о музыке в Китае, о том, сколько стоит выступление иностранного ноу-нейм артиста на китайской сцене, зачем Бузова собиралась в Шанхай и каким артистам закрыт въезд в Китай.

Ведущая @yuliabramovaa

Гость @elle_blink

[моё] Интервью Музыка Китай Ольга Бузова Interview Дэвид Бекхэм Singer Певцы Музыкальный конкурс Голос Видео
9
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии