Задача максимально наркоманская. Особенно асинхронность на ровном месте. Выглядит так, будто чуваки забыли придумать задачу к собесу и сочиняли на ходу.
100%. Я ни разу такого потом подобного не встречал. Компания небольшая была. Чел который меня собесил закончил МФТИ, так что мне еще тогда повезло с заданием
условие первой задачи было вывести строку "лон ес" а у Вас в конце получился массив с элементами "лон" и "ес". Задание выполнено не доконца... Решение первой задачи одной строкой str.split(', ').filter((_, i) => i % 2).map(val => val.substr(1)).join(' ');
Не пойму зачем джуну знать про фибоначи? Разве это хоть когда то пригодится в реальных проектах? Почему не давать тестовые задания которые прямо связанны с реальными задачами? 🥸 Но объяснения хорошие 🙏
Сложно ответить. Знания Фибоначчи это специфические знания. В реальности применения не видел. Но я думаю задача была оценить как джун может выкрутиться из этой ситуации.
Фибоначи - это алгоритмы, если ты умеешь решать подобного рода задания, то тебе будет легче реализовывать какието фичи в работе, используя для этого оптимальные методы, а также эти задания показывают на сколько хорошо ты знаешь язык. А реальные задачи это в 80% повторяющийся код, поэтому любой дурачок сможет их зазубрить
Ага тут есть несколько вариантов, зависит от источника литературы. Мы опускаем F0 и счет ведем с F1. Цитата из Википедии: Правда, в некоторых книгах, особенно в старых, член F 0 F_{0}, равный нулю, опускается - тогда последовательность Фибоначчи начинается с F 1 = F 2 = 1 {\displaystyle F_{1}=F_{2}=1}[5][6].
@@vladislavstepanov7591 про async/await на собесе спросят в самую последнюю очередь, а вот new Promise - это почти всегда. Решая задачи на собесе, нужно давать интервьюеру то, что он хочет или ожидает от тебя - это залог успеха любого собеса
@@agaf89 Вы уверены про последнюю очередь? Мне попадалось.. Если задача звучала как "сделать асинхронность через new Promise", то всё ок, а если просто "сделать асинхронность", то можно и нужно решать задачу оптимальным в своем понимании способом. И async/await здесь бы смотрелся максимально уместно. Если интервьюер хочет какой-то конкретный способ решения, он скажет. А гадать что он там хотел - неблагодарное дело
Я бы лучше регуляркой слова вытащил, иначе если будут случайно двойные пробелы, без пробелов или вообще другие символы, то по пизде пойдёт ответ) ну и slice(1) можно просто написать) str.match(/[а-яa-z]+/gi) .reduce((acc, el, i) => { if (i % 2 > 0) { acc.push(el.slice(1)); } return acc; }, []) .join('');
С регуляркой идея интересная, но в коде всё же не учтён один граничный случай. При передаче пустой строки (или не содержащей букв) должна вернуться пустая строка.
Забыл в задаче указать в 11 строчке - вызови метод join(" ") после reduce - чтобы получить - 'лон ес'
Задача максимально наркоманская. Особенно асинхронность на ровном месте. Выглядит так, будто чуваки забыли придумать задачу к собесу и сочиняли на ходу.
100%. Я ни разу такого потом подобного не встречал. Компания небольшая была. Чел который меня собесил закончил МФТИ, так что мне еще тогда повезло с заданием
😄 точно
интересная задача, хорошо, что вы рассказали
Очень крутое видео продолжайте рубрику с тестовыми заданиями
Спасибо 🚀❤️
Для фибоначчи можно сделать так:
const fib = (num) => {
const rfib = (num, acc = 0, acc2 = 1) => {
if (num
Рекурсия потребляет больше ресурсов, поэтому лучше через цикл решать
условие первой задачи было вывести строку "лон ес" а у Вас в конце получился массив с элементами "лон" и "ес". Задание выполнено не доконца...
Решение первой задачи одной строкой
str.split(', ').filter((_, i) => i % 2).map(val => val.substr(1)).join(' ');
Отлично молодец 👍🏼
отличное видео
JavaScript-изеры вперед)
👏👍
Вместо промисов можно было async await, я думаю, использовать. Они тоже промис возвращают
Было бы интересно услышать историю как сменили профессию на fronted разработчика,как учились, сколько времени занял путь до 🍅
Ага, сделаю обязательно, но чуточку позже🫶
Произведение это умножение, а Фибоначчи это сумма двух чисел
Да я сделал правку в видео: *сумма
6:21 *сумма
Не пойму зачем джуну знать про фибоначи? Разве это хоть когда то пригодится в реальных проектах? Почему не давать тестовые задания которые прямо связанны с реальными задачами? 🥸 Но объяснения хорошие 🙏
Сложно ответить. Знания Фибоначчи это специфические знания. В реальности применения не видел. Но я думаю задача была оценить как джун может выкрутиться из этой ситуации.
Если бы, некоторые HR, сами были проф пригодными, для своей же должности, то и вопросы были из реальной жизни.
Фибоначи - это алгоритмы, если ты умеешь решать подобного рода задания, то тебе будет легче реализовывать какието фичи в работе, используя для этого оптимальные методы, а также эти задания показывают на сколько хорошо ты знаешь язык. А реальные задачи это в 80% повторяющийся код, поэтому любой дурачок сможет их зазубрить
Я немного не понял почему в числах Фибоначчи f1 = 1 и f2 = 1? Поидее первое число f1 должно равняться 0, а второе f2 равно 1
Ага тут есть несколько вариантов, зависит от источника литературы. Мы опускаем F0 и счет ведем с F1.
Цитата из Википедии:
Правда, в некоторых книгах, особенно в старых, член
F
0
F_{0}, равный нулю, опускается - тогда последовательность Фибоначчи начинается с
F
1
=
F
2
=
1
{\displaystyle F_{1}=F_{2}=1}[5][6].
подскажите плагин, который вам подсказывает, как называется ?
Tabnine
Насколько же это удобно…
Огромное спасибо.
а не проще ли было асинхронную часть сделать через asinc/await ?
Нет. Это собес. Там не спрашивают про async await
1/5 года опыта, могу ли теперь найти новый проект?
Да, в марте начнут активно набирать. Это ежегодный цикл, если не будет потрясений
если использовать рекурсию при вычислении числа Фибоначчи и использовать async await то всё решается буквально в 4 строки
const getSomeData = async (str, num) => [ await getStr(str), await fib(num)]
const getStr = async (str) => str.split(', ').reduce((acc, val, index) => index % 2 !== 0 ? [...acc, val.slice(1, val.length)] : acc, []).join(' ')
const fib = async (n) => n
Круто, молодец ❤️
753 вызова функции fib для того, чтобы вычислить 13 число фибоначи. Такое себе решение
Интересно, нужно было именно через промисы делать или async/await тоже засчитали бы?
Я думаю их интересовала тема промисов, понимание самой конструкции
async await это тоже промисы. Просто сахар над ними
@@vladislavstepanov7591 про async/await на собесе спросят в самую последнюю очередь, а вот new Promise - это почти всегда. Решая задачи на собесе, нужно давать интервьюеру то, что он хочет или ожидает от тебя - это залог успеха любого собеса
@@agaf89 Вы уверены про последнюю очередь? Мне попадалось.. Если задача звучала как "сделать асинхронность через new Promise", то всё ок, а если просто "сделать асинхронность", то можно и нужно решать задачу оптимальным в своем понимании способом. И async/await здесь бы смотрелся максимально уместно. Если интервьюер хочет какой-то конкретный способ решения, он скажет. А гадать что он там хотел - неблагодарное дело
Даже сеньер тут наделал ошибок, поэтому говорить что для Джуна это легко не стоит .
Оговорился. Не произведение, а сумма соседних чисел
Верно, я это указал в видео *Сумма 👍🏼
а как подобное можно было бы решить через async/await?
Навтыкать в двух функциях async - но надо быть готовым решить через промисы
Что за плагин, который код подсказввает серым?
Tabnine - нейронка обучается, если новый проект, то слабо подсказывает. Платная ПРО версия творит чудеса
@@agaf89 Как думаешь, новичку следует пользоваться такого рода инструментами или лучше пока набивать руку с обычными снипетами еммета?
@@user-mg1mu1sn7z сложно сказать. Я думаю все таки самому писать, только потом когда уже автоматизм появится, то можно юзать табнайн
вирішувати пошук чисел по фібоначі, за допомогою міліона змінних - точно рівень "сіньйора")
Типовий інфоциган
Не понимаю
лон ес можно было получить проще.
const sliced = string.split(', ').filter((el, i)=> i % 2 !== 0).map(el => [...el].slice(1).join('')).join(' ')
выглядить не проще)
глаза сломать можно !))
Это и нечитабельно и неоптимально, вы делаете два прохода по массиву вместо одного
Я бы лучше регуляркой слова вытащил, иначе если будут случайно двойные пробелы, без пробелов или вообще другие символы, то по пизде пойдёт ответ) ну и slice(1) можно просто написать)
str.match(/[а-яa-z]+/gi)
.reduce((acc, el, i) => {
if (i % 2 > 0) {
acc.push(el.slice(1));
}
return acc;
}, [])
.join('');
С регуляркой идея интересная, но в коде всё же не учтён один граничный случай. При передаче пустой строки (или не содержащей букв) должна вернуться пустая строка.