Front-end Science with Sergey Puzankov
Front-end Science with Sergey Puzankov
  • 142
  • 4 003 862
Для всех тех, кто пишет про 8 лет на Донбасе (цитата из видео Столицы мира)
Россияне! Разумные, адекватные и мыслящие россияне! Посмотрите это видео (мы взяли кусок из оригинального видео Анатолия Власова канал «Столица мира») и ОБЯЗАТЕЛЬНО ПЕРЕШЛИТЕ его вашим знакомым, соседям, родителям, бабушкам! И особенно тем, кто громче всех кричит про «8 лет на Донбасе»! Откройте им наконец глаза!
Мы лично знаем этих людей - коренных жителей Донецка. Это реальные люди, публичные, блогеры миллионники. Послушайте, что они говорят про то, кто и когда захватил Донецк, про обстрелы и прочее, свидетелями которых они лично были. Хватит прятать голову в песок и верить каждому дерьму, что вам толкает ваш президент!
Уже хватит!! Оглянитесь - ваша армия истребляет уже не 2 региона, а всю страну!! Если будете молчать - вам не отмыть от невинной крови вашу совесть!!!!
----
Впервые на канале мы закрываем комментарии под видео. Это не наше видео, - мы его позаимствовали, это фрагмент из видео Анатолия с канала Столица Мира.
Оригинальный полный ролик: ua-cam.com/video/ijlWpmjs_C8/v-deo.html
Переглядів: 473 620

Відео

The first interview of a self-taught frontender (30+). Solved more than 2000 problems on Codewars
Переглядів 146 тис.2 роки тому
Привет, друзья! Сегодняшнее собеседование будет в поддержку тем, кто свитчится после 30 лет из других сфер деятельности во фронтенд. Наш сегодняшний участник - Антон (32 года) долгое время работал SEO-оптимизатором, после чего решил попробовать себя в роли верстальщика. Хорошее, кстати, решение для тех, кто хочет как можно скорее начинать зарабатывать в новой профессии. На сейчас он проработал ...
Merge intervals - task from JS interview | Solving LeetCode problems
Переглядів 46 тис.2 роки тому
Привет, друзья! Продолжаем решать задачи с javascript собеседований. Сегодня у нас очень популярная задача про объединение интервалов (56. Merge Intervals). Это очень практическая задача, так как она часто встречается в электронных календарях. На LeetCode эта задача помечена средним уровнем сложности: leetcode.com/problems/merge-intervals/ Условия задачи следующие: на вход подается массив интер...
Linked List. Data Structures | Implementation in JS
Переглядів 30 тис.2 роки тому
Привет, друзья. Вы давно просили рассказать не только про алгоритмы, но и про структуры данных. И сегодняшним выпуском мы начинаем серию видео, посвященных именно теме Структур данных (Data Structures). И начнем мы с такой структуры данных, как Связный список. Связный список - одна из базовых структур данных, которая сейчас не часто встречается в повседневной жизни, особенно в работе фронтендер...
2 ways to deploy Node.js project in Heroku (free hosting)
Переглядів 12 тис.2 роки тому
Друзья, вы очень просили в прошлом видео снять ролик про Deploy Heroku. И сегодня мы как раз с вами разберем 2 различных способа развертывания Node.js приложения в сервисе Heroku: 1) сделаем деплой через Heroku Git 2) и с помощью GitHub. Приятного просмотра! Надеюсь после этого видео вы сможете выбрать для себя один из удобных способов деплоя ваших проектов. 👍Как всегда, жду ваши комментарии, в...
Task from JS Interview: The Best Time to Buy Stocks # 2
Переглядів 21 тис.2 роки тому
Привет, друзья! Продолжаем серию задач про акции. И сегодня условие таково: на вход подается массив с числами - цена акций в каждый конкретный день. Необходимо найти максимальную прибыль, которую можно заработать, продавая и покупая акции. В отличии от первой версии задачи (смотреть здесь: ua-cam.com/video/wm8hhQyIR9o/v-deo.html ) в этот раз мы можем покупать и продавать акции столько раз, скол...
Becoming a Frontender After 30: From Circus Arcobat to Front-End Developer
Переглядів 133 тис.2 роки тому
Друзья, привет! Ура, у нас новый выпуск фронтенд-собеседования! Сегодня у нас в гостях очень позитивный и вдохновляющий герой - Александр! Александр работает профессиональным акробатом в одном из самых известных цирков Лас-Вегаса. Ему 31 год, у него семья, постоянная работа из совершенно иной сферы - и он успевает учить и практиковать фронтенд и идти к своей цели - стать фронтенд-разработчиком ...
Materials for pet projects: a must have for a fresh frontender
Переглядів 40 тис.2 роки тому
Привет, друзья! Прошлое видео с идеями для проектов в портфолио получило большой отклик. И вы просили в комментариях подсказать, где же искать такие крутые материалы для быстрого создания ваших пэт-проектов. 💎Сегодня я делюсь с вами огромной (гигантской!) подборкой абсолютно БЕСПЛАТНЫХ ресурсов для разных этапов создания ваших проектов: 1) начиная от дизайна, 2) разработки шаблонов (верстки), 3...
Pet-projects. What projects must a beginner front-end developer do?
Переглядів 160 тис.2 роки тому
Друзья, привет! Наконец-то мы подошли к долгожданной теме пэт-проектов. В этом видео я собрал для вас 30 классных идей для ваших первых проектов в портфолио. Я также дал подсказки, как вы всегда можете проапргрейдить любой pet-project, где и какую функциональность доработать и какие фишки добавить, чтобы выделиться в глазах работодателя и впоследствии получить заветный офер. Мы также разберем с...
LeetCode task about collecting rainwater | JavaScript interview
Переглядів 19 тис.2 роки тому
Привет, друзья! Продолжаем решать задачи про воду с LeetCode. И сегодня мы разберем задачу про сбор дождевой воды - 42. Trapping Rain Water. Эта задача Hard уровня сложности - такие задают на собеседованиях миддлам и синьорам, поэтому, джуны, в комментах не бояться! 😉 По условиям: у нас на вход подается массив с высотой рельефа. Представим себе, что каждая "ячейка" рельефа у нас шириной 1 и выс...
Task from a front-end interview: Finding the largest container of water | JavaScript
Переглядів 22 тис.2 роки тому
Привет, друзья! Продолжаем решать задачки с собеседований! Сегодня у нас интересная задача про воду - нам необходимо найти контейнер, вмещающий максимальное количество воды (11. Container With Most Water). Эта задача помечена Medium уровнем сложности на Leetcode. На вход нам подается массив с числами. Каждое число представляет собой вертикальную линию заданной высоты. Все линии находятся друг о...
How to make changes in a file invisible to git
Переглядів 16 тис.2 роки тому
Ура, друзья, мы все СУПЕР молодцы - дошли до последнего видео в нашем недельном марафоне git week! Я нами горжусь!! 🎉 🎉🎉 Сегодня поговорим про "нереальную уличную магию", которую я вам обещал в предыдущих видео. А именно про git update-index assume-unchanged. Эта команда позволяет пометить проиндексированный гитом файл - как неменяющийся (даже если в нем существуют изменения). То есть с одной с...
How to fix the last commit in git
Переглядів 13 тис.2 роки тому
👍Ура! Шестой день нашего git week! Мы с вами молодцы! Сегодня будем разбирать,. как можно исправить последний коммит в git. В одном из наших предыдущих видео я уже рассказывал про такую команду, как git commit amend. Она позволяет внести изменения в последний сделанный коммит, при этом вы можете изменить как само содержание коммита, так и коммит сообщение. А сегодня мы рассмотрим более подробно...
Important git clone features you didn't know about!
Переглядів 6 тис.2 роки тому
Друзья, на очереди пятый день git week. Сегодняшнее видео будет про команду Git Clone. Я уверен, что вы все пользовались этой командой для клонирования репозитория с внешнего сервера. Но сегодня я хочу вам рассказать про менее популярные, но очень полезные возможности этой команды. Мы рассмотрим, как можно склонировать репозиторий из какой-то локальной папки, как склонировать только одну ветку ...
How to delete branches in git
Переглядів 14 тис.2 роки тому
Друзья, это наш четвёртый день недели git и сегодня поговорим про ветки. Дело в том, что в вашем репозитории хранятся, как локальные ветки, так и копии веток из удаленных репозиториев. И процесс работы с ними отличается. В этом видео мы рассмотрим с вами, как получить список локальных и внешних веток. Как удалить локальную или внешнюю ветку. Как почистить локальный репозиторий от уже удаленных ...
Git clean: cleaning the working directory from unnecessary files
Переглядів 10 тис.2 роки тому
Git clean: cleaning the working directory from unnecessary files
How to save temporarily changes in GIT using git stash (without committing)
Переглядів 14 тис.2 роки тому
How to save temporarily changes in GIT using git stash (without committing)
Git reset: difference between soft, mixed and hard
Переглядів 16 тис.2 роки тому
Git reset: difference between soft, mixed and hard
Frontend interview. Ilnura, the first job right after Yandex Practicum
Переглядів 166 тис.2 роки тому
Frontend interview. Ilnura, the first job right after Yandex Practicum
How to speed up the development process in WebStorm | Andrey Starovoit Team Lead of the WebStorm
Переглядів 41 тис.2 роки тому
How to speed up the development process in WebStorm | Andrey Starovoit Team Lead of the WebStorm
Solving the problem from JS interview - The valid sequence of brackets | LeetCode problems
Переглядів 38 тис.2 роки тому
Solving the problem from JS interview - The valid sequence of brackets | LeetCode problems
Task from JS Interview: The best time to buy stock #1 | Tasks from LeetCode
Переглядів 17 тис.2 роки тому
Task from JS Interview: The best time to buy stock #1 | Tasks from LeetCode
How to calculate the complexity of an algorithm by BIG O | The clearest explanation!
Переглядів 121 тис.2 роки тому
How to calculate the complexity of an algorithm by BIG O | The clearest explanation!
Interview Task: Brick Wall | JavaScript
Переглядів 22 тис.2 роки тому
Interview Task: Brick Wall | JavaScript
Task from JS interview - Find the intersection of two arrays | LeetCode
Переглядів 26 тис.3 роки тому
Task from JS interview - Find the intersection of two arrays | LeetCode
Frontend Interview of a Junior Developer. Freelancer, student, 20 years old
Переглядів 92 тис.3 роки тому
Frontend Interview of a Junior Developer. Freelancer, student, 20 years old
Problem from JS interview: The first unique character in a string.
Переглядів 16 тис.3 роки тому
Problem from JS interview: The first unique character in a string.
Task from JS interview: Count the number of islands in the matrix | Number of Islands
Переглядів 19 тис.3 роки тому
Task from JS interview: Count the number of islands in the matrix | Number of Islands
Required Soft Skills. What soft skills should have a developer in 2021
Переглядів 26 тис.3 роки тому
Required Soft Skills. What soft skills should have a developer in 2021
Interview of a Junior Frontend developer. Trainee frontender 19 years old from EPAM
Переглядів 405 тис.3 роки тому
Interview of a Junior Frontend developer. Trainee frontender 19 years old from EPAM

КОМЕНТАРІ

  • @marytwo8685
    @marytwo8685 8 годин тому

    🤩

  • @anton-trofimov
    @anton-trofimov 3 дні тому

    А зачем было удалять мой комментарий? Что-то плохое в нем? Я просил кого-то объяснить, почему при изменении tail меняется head (кстати, уже разобрался), в видео про это не было, так чем мой комментарий не устроил? Или мб ютуб удалил, хотя там не было ничего запрещенного

  • @user-mq3jq7ib9h
    @user-mq3jq7ib9h 7 днів тому

    Было все понятно до последнего примера

  • @tfmb2182
    @tfmb2182 7 днів тому

    Еще есть сценарий, когда нужно перенести конкретный коммит из другого репозитория

  • @freetimeproject7
    @freetimeproject7 9 днів тому

    два указателя. на 1-й и 2-й масив цикл ду вайл пока не дойдет один указатель до конца. сортируем массивы. указатели оба на 0-м елементе. если одинаковые- добавляем в результат. если разные - увеличиваем указатель того массива где значение меньше. итого. сортировка 2-х масивов и проход O(m+n)

  • @tnafSiseraMlecnafetS
    @tnafSiseraMlecnafetS 10 днів тому

    Решил поиграться и доьавить возможность игры на понижение. Получилось как-то так: function count (prices) { let profit = 0; for (let i = 0; i < prices.length; i++) { if(i > 0) { prices[i] > prices[i - 1] ? profit = profit + prices[i] : profit = profit - prices[i] } else { prices[0] > prices[1] ? profit = profit + prices[0] : profit = profit - prices[0] } } return profit } Обосрать мой код можете в реплаях

  • @ruslanragilo7079
    @ruslanragilo7079 13 днів тому

    У нас в команде появилась устойчивое выполнение... Черипикать свой коммит))

  • @VitalikLomakin-bt9oe
    @VitalikLomakin-bt9oe 13 днів тому

    function firstUnigEl(str) { const map = {}; for (let i = 0; i < str.length; i++) { const el = str[i]; map[el] ? map[el].push(i) : (map[el] = [i]); } const res = Object.values(map) .filter((el) => el.length == 1) .sort((a, b) => a - b) .shift(); return res !== undefined ? res[0] : -1; } вот мое решение они проще чутка. По поводу последнего .sort((a, b) => a - b) .shift(); sort нужен чтобы я могу гарантировать то что у меня будет отсортированный массив, так как влруг поменяю фишку у объектов, что ключи сортируются.

  • @user-Freeemasons
    @user-Freeemasons 17 днів тому

    Большое спасибо за видео! Владимир, вы огромный молодец!!! Вы очень смелый!!! Если бы можно было поставить 1000 лайков, я бы поставила, очень круто! Спасибо за вашу смелость, опыт и вопросы!

  • @sazonikv5086
    @sazonikv5086 26 днів тому

    А в чем разница между merge and rebase?

  • @user-oj7ln2nb9k
    @user-oj7ln2nb9k Місяць тому

    const anagram = (str1, str2) => { const sortedStr1 = str1.split('').sort().join(''); const sortedStr2 = str2.split('').sort().join(''); return sortedStr1 === sortedStr2; }

  • @miloman1995s
    @miloman1995s Місяць тому

    конч проукраинский

  • @user-fj4es6ij4n
    @user-fj4es6ij4n Місяць тому

    const checkIntervals = ([,a], [b]) => b <= a; const mergeInterval = (a, b = a) => [a[0], Math.max(...a, ...b)]; const merge = intervals => intervals .sort(([a], [b]) => a - b) .reduce((acc, value) => { const findedInterval = acc.find((interval) => checkIntervals(interval, value)) return [ ...acc.filter(interval => interval !== findedInterval), mergeInterval(value, findedInterval), ]; }, []);

  • @okelove9807
    @okelove9807 Місяць тому

    Очень круто спасибо.❤

  • @user-cn3zn4gi8o
    @user-cn3zn4gi8o Місяць тому

    Наконец-то)) спасибо вам, очень хорошо объяснили, я до этого читала. И никак не могла понять. У меня скопилось много разных версий. Так и жила несколько лет 😀. Документацию к гиту писал какой - то душнила, чтоб было максимально непонятно и запутанно.

  • @nk_77777
    @nk_77777 Місяць тому

    Классный ролик, спасибо)❤

  • @user-no7sl1yk3f
    @user-no7sl1yk3f Місяць тому

    По идеи у вашего решения сложность O(n + n), разве нет? Цикла же два. Предлагаю вариант O(n): function firstUniqChar(s: string) { const hashUniq = new Map(); s.split('').forEach((char, i) => { hashUniq.has(char) ? hashUniq.delete(char) : hashUniq.set(char, i); }) if (hashUniq.size === 0) return -1; return hashUniq.values().next().value; }

  • @user-uw8hy1lc4p
    @user-uw8hy1lc4p Місяць тому

    А если делать всегда merge, но в какой то момент в конце сделать сквош, получиться же один коммит на задачу

  • @user-no7sl1yk3f
    @user-no7sl1yk3f Місяць тому

    Не хотел делать O(n^2) и решил сделать O(n*log n) с помощью бинарной сортировки. Это пример того - что если не думать о структуре данных то алгоритмы мало полезны. Спасибо за решение function intersect(arr1: Array<number>, arr2: Array<number>) { arr1.sort((a, b) => a - b); arr2.sort((a, b) => a - b); const intersectArr = []; function binSearch(findValue: number, arr: Array<number>) { let left = 0; let right = arr.length - 1; while(left <= right) { const middle = Math.floor((left + right) / 2); const middleValue = arr[middle]; if (middleValue === findValue) { arr.splice(middle, 1); return true; } else if (middleValue > findValue) { right = middle - 1; } else { left = middle + 1; } } return false; } arr1.forEach((item) => { if (binSearch(item, arr2)) intersectArr.push(item); }) return intersectArr; };

  • @wbrframe
    @wbrframe Місяць тому

    Спасибо, качественная подача ✌

    • @wbrframe
      @wbrframe Місяць тому

      Отдельно добавлю, спасибо за видео о донбасе и то что там произошло на самом деле 🤝

  • @maksimdubinin
    @maksimdubinin Місяць тому

    Спасибо за объяснение!

  • @suspiciousgoose7904
    @suspiciousgoose7904 Місяць тому

    Полезно) спасибо за видео вам

  • @larisaplatova1644
    @larisaplatova1644 Місяць тому

    Спасибо за это видео

  • @voidcode2534
    @voidcode2534 Місяць тому

    kaef

  • @peacedets
    @peacedets Місяць тому

    Дай тебе Бог здоровья, хлопчик, наконец-то дошло до старика.

  • @svet0v
    @svet0v Місяць тому

    8:48 - начало

  • @VasiliyFominykh
    @VasiliyFominykh Місяць тому

    Смотрю такой - "Как удалить дубликаты из отсортированного массива? | Задача с Leetcode", о, думаю, дай гляну может чего кроме set предложат. И правда бла-бла-бла splice... О думаю, надо затестить, а потом смотрю - ёпт, это не питон а ява )))

    • @inoyakaigor
      @inoyakaigor Місяць тому

      Это не Ява)

    • @VasiliyFominykh
      @VasiliyFominykh Місяць тому

      @@inoyakaigor да? Ну ладно, но и питон тоже )

    • @inoyakaigor
      @inoyakaigor Місяць тому

      @@VasiliyFominykh это Яваскрипт =)

    • @VasiliyFominykh
      @VasiliyFominykh Місяць тому

      @@inoyakaigor ))) Ещёб их различать )

  • @user-no7sl1yk3f
    @user-no7sl1yk3f Місяць тому

    Первый решение схоже с вашим не подсматривая. Спасибо function isValid(staples: string) { const stack = []; const mapStaples = { "(": ")", "[": "]", "{": "}", } function isOpening(staple) { return [...Object.keys(mapStaples)].includes(staple); } function isValidClosure(value: string, stapleOpening: string) { if (value === mapStaples[stapleOpening]) return true; return false }; for (const staple of staples) { if (isOpening(staple)) { stack.push(staple); continue; } else if (isValidClosure(staple, stack.at(-1))) { stack.pop(); } else { return false; } } return true; }

  • @VolodymyrNazarenko-ox8ox
    @VolodymyrNazarenko-ox8ox Місяць тому

    Дякую!

  • @AlisaLisa-sx2te
    @AlisaLisa-sx2te 2 місяці тому

    Полезные видео, приятная подача. Спасибо!

  • @user-no7sl1yk3f
    @user-no7sl1yk3f 2 місяці тому

    Спасибо function checkPath(start, end) { const forbiddenCoordinates = {}; function isForbiddenCoordinates(y, x) { return forbiddenCoordinates[y]?.includes(x); } function isAvailableCoordinates(level, x) { return level?.[x] === 0; } function move(position) { const {x, y} = position; if (x === end.x && y === end.y) return true; const level = maze[y]; const nextLevel = maze?.[y + 1]; const availableCoordinates = []; if (isAvailableCoordinates(level, x - 1) && !isForbiddenCoordinates(y, x - 1)) availableCoordinates.push({x: x - 1, y}); if (isAvailableCoordinates(level, x + 1) && !isForbiddenCoordinates(y, x + 1)) availableCoordinates.push({x: x + 1, y}); if (isAvailableCoordinates(nextLevel, x) && !isForbiddenCoordinates(y + 1, x)) availableCoordinates.push({x: x, y: y + 1}); forbiddenCoordinates[y] ? forbiddenCoordinates[y].push(x) : forbiddenCoordinates[y] = [x]; if (availableCoordinates.length === 0) { return false; } for(let coordinate of availableCoordinates) { if (move(coordinate)) return true; } return false; } return move(start); }

  • @nikonlaw
    @nikonlaw 2 місяці тому

    Привет. Спасибо за видео. Я только начал изучать и у меня может странный вопрос. Если я находясь в ветке "фича" сделаю git merge main, то разве моя ветка "фича" не станет единственной и главной? Я думаю это не по православному и нужно мержить свою ветку в "мейн". Я ошибаюсь?

  • @user-sy2dd8do3t
    @user-sy2dd8do3t 2 місяці тому

    респект за имена с теории большого взрыва 😊

  • @boryskatowsky5190
    @boryskatowsky5190 2 місяці тому

    Очень полезное видео. А у Вас нет случайно урока где такую же функцию можно реализовать с использованием ts?

  • @extreametv3639
    @extreametv3639 2 місяці тому

    Не чего не понял что значит эвальвелено?

  • @user-mg4nn6gi5n
    @user-mg4nn6gi5n 2 місяці тому

    Походу в епам нифига не учат

  • @heybeachMIN
    @heybeachMIN 2 місяці тому

    Спасибо за видео! Очень полезное оказалось для меня)

  • @SchnippSchnappShnappi
    @SchnippSchnappShnappi 2 місяці тому

    Спасибо, мне сегодня она попалась в собесе

  • @cleverscript
    @cleverscript 2 місяці тому

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

  • @Rozalinaag
    @Rozalinaag 2 місяці тому

    такое себе, этот rebase... лучше старый добрый merge и никаких проблем

  • @asktosimon
    @asktosimon 2 місяці тому

    если проходить с конца массива то не надо заморачиваться над смещением

  • @user-bb6cs6wk6y
    @user-bb6cs6wk6y 2 місяці тому

    А что делать ,если команды git вообще не выполняются Пишу git add мой файл ,и не происходит ничего и файл не добавляется, при git commit ошибку выдает? Только недавно начал в эту тему погружаться, не судите строго

    • @thekiruhan2616
      @thekiruhan2616 Місяць тому

      У тебя создан репозиторий локальный? Гит есть на компе?

  • @moguha
    @moguha 3 місяці тому

    Огромное спасибо

  • @moguha
    @moguha 3 місяці тому

    Огромное спасибо! Мира вам....и нам

  • @EvgenyTalagaev
    @EvgenyTalagaev 3 місяці тому

    Спасибо, очень полезно

  • @user-cr3gf4mh2n
    @user-cr3gf4mh2n 3 місяці тому

    const trap = (heights) => { let result = 0; for(let i = 1; i < heights.length - 2; i++) { let maxLeft = Math.max(...heights.slice(0,i)) let maxRight = Math.max(...heights.slice(i + 1)) let minHeight = Math.min(maxLeft,maxRight) let quantity = minHeight - heights[i]; if(quantity > 0){ result += quantity } } return result }

  • @kemalgurbansahadow9631
    @kemalgurbansahadow9631 3 місяці тому

    Или я жескто туплю. Или эта тема действительно очень сложная для понимания!

  • @radiakendal5769
    @radiakendal5769 3 місяці тому

    Хорошее объяснение, спасибо

  • @Ramosok
    @Ramosok 3 місяці тому

  • @Ramosok
    @Ramosok 3 місяці тому