Пожалуйста больше уроков по реализации алгоритмов и структур данных. Это было бы очень полезно для понимание того как работают языки программирования. С меня лайк, спасибо!
зашло, я, конечно, не любитель поглощать тех инфу таким образом, но под завтрак оч даже для простых концепций В принципе ты можешь сделать целую рубрику, взять какой нибудь крекинг кодинг интервью и реализовывать на жсе эти задачки. Правда в том, что такие видео будут вряд ли популярны, но зато они несут ценность, в отличие от " а нужен ли английский, татарский, а как джуну какать"
Первый курс универа Пишешь экзамен по алгоритмам Реализация хеш-таблицы с проверкой коллизий Из инструментов: ручка, листочек Отладка: долгий пристальный взгляд Проходит 6 лет, и реализация хеш-таблиц пригождается только для того, чтобы написать в комментарии о том, что я её знаю 🤷🏼♂️
Обнаружил баг. При вызовах getElement, setElement ты не учёл что matchingIndex может равняться нулевому индексу, соответственно проверка на if(matchingIndex) проходить не будет, но индекс существует Реализовал на TypeScript с исправлением github.com/antpv/js-hash-table/blob/master/index.ts P.s.: С тебя звездочка 😏
В языках со статистикой типизацией, от безысходности, в таких функциях возвращают -1, т.е. позиция может быть от 0 до + бесконечности, если не найдено -1. Из плюсов, ты не разводишь null, NaN, undefined а делаешь проверку, что возвращаемое больше минус одного)
Спасибо за ролик, заметил одну ошибку когда переписывал код: в функции getElement(key) в ее конечной реализации в конце проверка if (matchingIndex). Беда в том что частенько matchingIndex равен нулю, но из за такой проверки вместо значения возвращается undefined. следовательно if (matchingIndex || matchingIndex === 0)
В моём понимании, хеш используется для хранения паролей. То есть, приходит пароль суём его в хеш-функцию, получаем значение, из которого НЕЛЬЗЯ получит пароль(Конечно, стараемся сделать хорошую функцию и т.д.) и храним уже именно это значение, а не пароль. Получается так, что даже если смогут украсть базу с сервера, внутри неё будут лежать значения, из которых нельзя получить пароль, только если ты не знаешь саму Хеш-функцию. А вы храните пароль вместе с значением хеш-функции, вопрос, в чём смысл? Если не прав, поправьте пж.
Хеш-таблица это просто словарь. Вот прямо как англо-руссктй словарь. Английское слово ключ - русский перевод - искомое значение. Хеш функция, про которую ты говоришь, может быть использована для необратимого шифрования паролей, но это только одно из применений и к хеш-таблицам оно отношения не имеет
Прочитал недавно "Грокаем алгоритмы". Имеет ли смысл копать в этом направлении дальше фронтенд-разработчику, или основных структур данных и базовых алгоритмов достаточно для прохождения собеседований и повседневных задач во фронте?
ну что, спустя 10 месяцев можешь ответить на этот вопрос? Я тоже полез в эти дебри после хеш-таблиц в этой книге, просмотрел 11 минут видео, нихуя не понял, и пошёл в комментарии)))
@@vladk3111 Вообще нихрена не пригодилось из CS :D На собесах и близко ни о чём подобном не спрашивали, в основном интересуются чем-то более практичным и повседневным. Учи вебпак, нативный JS, Flux-архитектуру, почитывай всякие фишечки-бест практисы по фронту, ну и освой хотя бы одну библиотеку компонентов под свой фреймворк. Например, Vuetify для Vue.
@@divocean4085 подскажи, пжлста, на собесах просят предоставить какую-то работу на гитхабе?? Типа ты прошёл какие-то курсы, сделал реальное что-то, залей на гитхаб и показывай всем на собесах. На видосах в ютубе много разных собесов, кто-то просит, кто-то нет, ну и основной вопрос, если ты самоучка, не станет ли это стопом для собеса?) потому что обычно самоучки не имеют опыта на реальных проектах, как это в школах или на курсах
@@vladk3111 100% спросят о предыдущих проектах. Какие были задачи, что делал, над чем работал. Если нет опыта вообще, то либо тестовое дадут, либо попросят код посмотреть. В идеале что бы был какой-нибудь мини проект залитый на хостинг и выложенный на гитхабе в свободном доступе. Что бы можно было посмотреть код и зайти потыкать сам проект. Вот мой первый для примера) dictionaryapp-v1ktork.appspot.com/ Логин/пароль: test
@@divocean4085 прикольный словарик) потыкал, оч интересно. И такая работа типа покажет твои условные навыки и опыт практической вёрстки и знания JS, + на гит хабе смогут посмотреть код и оценить примерно, что и как. Верно??
"Я не хочу использовать классы потому, что в javascript'e внутри используют функции. Так почему не использовать функции?" Встречный вопрос - если нет разницы, то почему бы не использовать классы? ))))
Я не знаю точно на самом деле. Думаю, что внутри хеш таблица, просто чтобы отношения ключа и значений хранить. Сверху же ещё куча разных свойств и функций. При этом объект можно использовать как хеш-таблицу и не переживать.
@@TheVellymo python тоже динамический, но так нельзя. Более правильный ответ звучит так: функции в js принимают любое количество параметров, если переданных параметров больше, чем объявлено аргументов, то лишние проигнорируются. Если переданных меньше, недостающим присвоится undefined, либо default значение, если оно указано, вроде того, как мы передаем size (size = 13) в саму функцию HashTable(). Также в каждой функции во время ее исполнения доступен массив arguments (технически это не совсем массив, но для простоты), в котором лежат все переданные ей аргументы, но уже не по именам, а просто по порядку. Т.е. внутри setElement есть некая нигде не объявленная переменная arguments, в которой arguments[0] - это key, а arguments[1] - значение.
кстати коллизии в хэштаблицах было видно вживую в сотовых нокиях - там имена показывало не те для номеров иногда)) ну и сейчас в мобильном ютубе комментарии иногда показывает совсем не те - писал в одном месте, а потом он тебе его показывает совсем под другим видео, хотя корни этой проблемы могут расти из другого места
Не подписываюсь потому что ты не делаешь видосы для разработчиков чуть выше уровнем. Я бы хотел посмотреть видосы такие: 1. Замыкание - взгляд изнутри 2. Ключевое слово new взгляд изнутри 3. Javascript контексты - apply, bind, call, стрелочные функции Почему я хочу эти видосы: Я каждый день пользуюсь этим но не нахожу в себе силы прошерстить информацию и разобраться как это работает. Если уж ты занимаешься соданием контента то я был бы не проч чтобы ты прошерстил эту информацию за меня чтоб я пришел и не напрягаясь разобрался в некоторых внутренних особенностях JS. Проще говоря: мне лень разбираться, разберись за меня =)
Честно, но такого контента же миллион? Владилен Минин ещё не разбирал? А вот хеш таблицу на джаваскрипт никто не писал. Уникальный контент, подписываемся и ставим колокольчик :)
@@d_shorkin Что-то ты для программиста слишком ленивый. В тех вещах не хочешь разбираться, которые юзаешь каждый день. Лень даже гуглить. Ума не приложу))) тебя самого не раздражает это? Что ты юзаешь и сам не понимаешь что юзаешь? Такие люди, обычно, вечно в джунах ходят. А потом везде в ютубах коменты оставляют, что меня нигде сеньором не берут, а у меня уже 10 лет опыта работы :(
Какой смысл лицемерить и делать вид что ты не понимаешь, почему люди не подписаны? Потому что это нахуй не надо - видосы можно смотреть и так. Нет, серьёзно, подписка в большинстве случаев нужна автору канала, а не зрителям. У меня не горит жопа от того, что я не посмотрел видео спустя 5 минут от его выхода. Написание хеш-таблиц на JS это не подробности расследования катастрофы - оно еще долго будет актуально, я посмотрю когда мне будет удобно. p.s. Грубо говоря, если бы доступ к твоим видосам был ТОЛЬКО для подписчиков(донаторов usw.) - тогда бы я сел и подумал о подписке/колокольчиках/оплате usw.
@@SeniorSoftwareVlogger Ну ты же не идиот, ты и сам прекрасно понимаешь, почему люди не подписываются. Просто не пытайся подражать всяким блогерам. У тебя другая специфика и другая аудитория. Люди любят тебя за профессиональные качества, а не за то, как ты весело кривляешься, например. Проанализируй канал "ИТ-видео", и напиши в ответ своё мнение по поводу формата, подачи, стиля и т.д. Мне было бы очень интересно и есть что обсудить.
Я понял почему ты не подписываешься. То что нужно только автору и автор не получает в итоге выпиливает с ютуба контент, который ты смотришь. Или прячет контент за платные стены. Почему другие не подписываются я почитаю у них.
Нужно БОЛЬШЕ ПРАКТИКИ. Благодарю за урок!
Пожалуйста больше уроков по реализации алгоритмов и структур данных. Это было бы очень полезно для понимание того как работают языки программирования. С меня лайк, спасибо!
Примеры доставили :) Дима красавчик!)
Интересный формат, мне бы было интересно посмотреть различные примеры решения тех или иных не тривиальных задач
А вот это топовый подгон с утра. Спасибо большое!
Больше таких видео! Большое спасибо!
зашло, я, конечно, не любитель поглощать тех инфу таким образом, но под завтрак оч даже для простых концепций
В принципе ты можешь сделать целую рубрику, взять какой нибудь крекинг кодинг интервью и реализовывать на жсе эти задачки.
Правда в том, что такие видео будут вряд ли популярны, но зато они несут ценность, в отличие от " а нужен ли английский, татарский, а как джуну какать"
> а как джуну какать
ты понимаешь в хайпе! :) Спасибо за отзыв!
Большое спасибо. Такого контента не хватало!
Пишем хеш-таблицу, чтобы достать Соера :DDD
Побольше вот таких вот серьезных видео, про алгоритмы и структуры данных, и прочее серьезные штуки из мира кодерства лойс за видео
Спасибо за видео, было очень интересно послушать и поразбираться!
Первый курс универа
Пишешь экзамен по алгоритмам
Реализация хеш-таблицы с проверкой коллизий
Из инструментов: ручка, листочек
Отладка: долгий пристальный взгляд
Проходит 6 лет, и реализация хеш-таблиц пригождается только для того, чтобы написать в комментарии о том, что я её знаю 🤷🏼♂️
Ну еще давай похвалю,
Ох, Молодец какой! Хэш таблицу знает!!!
;)
Спасибо за видео! Очень познавательно.
Классный формат, очень зашло. Было бы интересно в таком формате рассмотреть более сложные вещи.
например?
Спасибо за урок! очень полезно
Лучший. Всякие хаудихо нервно курят в сторонке. Больше такой практики :D
Спасибо за урок!
интересный способ создать объект в javaScript
с интерфейсом
попытались добавить Soer-а и у нас возникла колизия😀, убило😂😅
по хардкору на for'ах рубимся :))))
😆
лучше for, чем ([].slice.call(document.getElementsByClassName("sub")).forEach((e)=>{e.addEventListener})
Крутой видос, зашло))
Резюме в конце видео достойно лайка ='D
Искал на экране его резюме :)
Класс
Делай дальше такой контент
Thank you, More of a such content
Мне кажется нужно звук глушить когда видео ускоряется
- Где оно вам понадобится?
- А хрен его знает
Скажем так /or/null
Ох уж эта точка над креслом, все видео не давала покоя
Отлично!
полезный видос
Обнаружил баг. При вызовах getElement, setElement ты не учёл что matchingIndex может равняться нулевому индексу, соответственно проверка на if(matchingIndex) проходить не будет, но индекс существует
Реализовал на TypeScript с исправлением github.com/antpv/js-hash-table/blob/master/index.ts
P.s.: С тебя звездочка 😏
⭐️
В языках со статистикой типизацией, от безысходности, в таких функциях возвращают -1, т.е. позиция может быть от 0 до + бесконечности, если не найдено -1.
Из плюсов, ты не разводишь null, NaN, undefined а делаешь проверку, что возвращаемое больше минус одного)
Александр Территория Соглашусь, не подумал об этом. Спасибо.
Соера достали, но без бороды. if(matchingIndex) - matchingIndex может быть 0
шикарное превью 🤣
Спасибо за ролик, заметил одну ошибку когда переписывал код:
в функции getElement(key) в ее конечной реализации в конце проверка if (matchingIndex).
Беда в том что частенько matchingIndex равен нулю, но из за такой проверки вместо значения возвращается undefined.
следовательно if (matchingIndex || matchingIndex === 0)
2:56 Ну мы то поняли... 😃
Блин, это вы про мапы что ли тут?))
Ничего непонятно,но очень интересно
Только сейчас понял, что не подписан. т.к ютуб кидал видео в рекомендации, и я не задумывался о подписке
Привет. На каких языках ты пишешь кроме JS? Что изучаешь сейчас? С меня как всегда лайк 👌
Привет, FAQ на первой странице seniorsoftwarevlogger.com/
В моём понимании, хеш используется для хранения паролей. То есть, приходит пароль суём его в хеш-функцию, получаем значение, из которого НЕЛЬЗЯ получит пароль(Конечно, стараемся сделать хорошую функцию и т.д.) и храним уже именно это значение, а не пароль. Получается так, что даже если смогут украсть базу с сервера, внутри неё будут лежать значения, из которых нельзя получить пароль, только если ты не знаешь саму Хеш-функцию. А вы храните пароль вместе с значением хеш-функции, вопрос, в чём смысл? Если не прав, поправьте пж.
Хеш-таблица это просто словарь. Вот прямо как англо-руссктй словарь. Английское слово ключ - русский перевод - искомое значение. Хеш функция, про которую ты говоришь, может быть использована для необратимого шифрования паролей, но это только одно из применений и к хеш-таблицам оно отношения не имеет
@@SeniorSoftwareVlogger Спасибо
Осилил, норм заруба была)
Привет Дима! Что за сайт в котором пишешь код? Очень минималистичный интерфейс) очень нравится)
В описании
Геттер ищет только один элемент из массива но не все,есть вариант решения?
Прочитал недавно "Грокаем алгоритмы". Имеет ли смысл копать в этом направлении дальше фронтенд-разработчику, или основных структур данных и базовых алгоритмов достаточно для прохождения собеседований и повседневных задач во фронте?
ну что, спустя 10 месяцев можешь ответить на этот вопрос? Я тоже полез в эти дебри после хеш-таблиц в этой книге, просмотрел 11 минут видео, нихуя не понял, и пошёл в комментарии)))
@@vladk3111 Вообще нихрена не пригодилось из CS :D На собесах и близко ни о чём подобном не спрашивали, в основном интересуются чем-то более практичным и повседневным. Учи вебпак, нативный JS, Flux-архитектуру, почитывай всякие фишечки-бест практисы по фронту, ну и освой хотя бы одну библиотеку компонентов под свой фреймворк. Например, Vuetify для Vue.
@@divocean4085 подскажи, пжлста, на собесах просят предоставить какую-то работу на гитхабе?? Типа ты прошёл какие-то курсы, сделал реальное что-то, залей на гитхаб и показывай всем на собесах. На видосах в ютубе много разных собесов, кто-то просит, кто-то нет, ну и основной вопрос, если ты самоучка, не станет ли это стопом для собеса?) потому что обычно самоучки не имеют опыта на реальных проектах, как это в школах или на курсах
@@vladk3111 100% спросят о предыдущих проектах. Какие были задачи, что делал, над чем работал. Если нет опыта вообще, то либо тестовое дадут, либо попросят код посмотреть. В идеале что бы был какой-нибудь мини проект залитый на хостинг и выложенный на гитхабе в свободном доступе. Что бы можно было посмотреть код и зайти потыкать сам проект. Вот мой первый для примера) dictionaryapp-v1ktork.appspot.com/ Логин/пароль: test
@@divocean4085 прикольный словарик) потыкал, оч интересно. И такая работа типа покажет твои условные навыки и опыт практической вёрстки и знания JS, + на гит хабе смогут посмотреть код и оценить примерно, что и как. Верно??
Подскажите пожалуйста модель монитора! Спасибо за видео :)
В описании "рекомендую"
@@SeniorSoftwareVlogger спасибо, не заметил!
Я думал ты сейчас энигму в 2к19 напишешь 😂
спасибо
В чем был смысл писать на js? Там массивы динамические.
Как я и сказал - демонстрация принципа не больше.
"Я не хочу использовать классы потому, что в javascript'e внутри используют функции. Так почему не использовать функции?"
Встречный вопрос - если нет разницы, то почему бы не использовать классы? ))))
😊
А сам object не хэш таблица ?
Я не знаю точно на самом деле. Думаю, что внутри хеш таблица, просто чтобы отношения ключа и значений хранить. Сверху же ещё куча разных свойств и функций. При этом объект можно использовать как хеш-таблицу и не переживать.
давай вёрстку под ie в твоём исполнении)
😼 а, ты знаешь толк! (засучивает рукава)
Превьюшка топ
Извините, а почему на восьмой минуте getElement() принимает два параметра, если написано что он должен принимать только ключ???
copy-paste
@@SeniorSoftwareVlogger а почему нет ошибки? или в js так можно?
JS динамический язык, так можно
@@TheVellymo python тоже динамический, но так нельзя. Более правильный ответ звучит так: функции в js принимают любое количество параметров, если переданных параметров больше, чем объявлено аргументов, то лишние проигнорируются. Если переданных меньше, недостающим присвоится undefined, либо default значение, если оно указано, вроде того, как мы передаем size (size = 13) в саму функцию HashTable(). Также в каждой функции во время ее исполнения доступен массив arguments (технически это не совсем массив, но для простоты), в котором лежат все переданные ей аргументы, но уже не по именам, а просто по порядку. Т.е. внутри setElement есть некая нигде не объявленная переменная arguments, в которой arguments[0] - это key, а arguments[1] - значение.
@@aquavitale3551 подписчики SSV - динамические люди, так можно
Object.keys ECMA5 и простая итерация for (var keys in obj) работает, но лайк поставил)
Ты про то, что по хешу нельзя циклом пройти? Object в джаваскрипте не совсем хеш-тейбл в прямом понимании, он немного покруче.
@@SeniorSoftwareVlogger да, но инструмент есть) а где можно почитать чем он отличается? в смысле "крутости"
кстати коллизии в хэштаблицах было видно вживую в сотовых нокиях - там имена показывало не те для номеров иногда)) ну и сейчас в мобильном ютубе комментарии иногда показывает совсем не те - писал в одном месте, а потом он тебе его показывает совсем под другим видео, хотя корни этой проблемы могут расти из другого места
32 line
if (matchingIndex !== undefined) { ...
Дима, твой контент не надо улучшать - он и так о*уительный.
Спасибо! Я помню про открытку, просто временно перестал печатать 😫
@@SeniorSoftwareVlogger и я её вспоминаю часто. я хочу повесить её на стену себе очень.
на телефоне невозможно смотреть
Какой телефон? Код можно было чуть крупнее, согласен.
10:41 строка 8 ... написать ++i не судьба ?
@Алексей Иванов о - оптимизация
Это приведет к другому результату. I будет лишний раз увеличиваться на единицу.
Другими словами i++ - это не то же самое что i+1
Эмммм, ты же в курсе, что i+1 и i++ это не одно и то же?
@@mrmarkovniktgv3058 ++i
жду коммент от "бороды" под видео :)
Надо было размерность и хеш функцию подобрать чтобы борода и вин в одну ячейку попали 😳
Ой лол))
Больше хейтеров в комментарии
Це ти окулярами захищаєш зір чи він у тебе просто поганий?
Не говорю по-украински
@@SeniorSoftwareVlogger "Ты очками защищаешь зрение или оно у тебя просто плохое", говорит преводчик)
судя по искажению в очках, немного неидеальное. если не ошибаюсь небольшая дальнозоркость, плюсовое зрение?
@@dimeliora Все так, дякую))))
Земляки вызывают испанский стыд, ты ещё по-украински под китайским видосом спроси, может дадут ответ...
Не подписываюсь потому что ты не делаешь видосы для разработчиков чуть выше уровнем.
Я бы хотел посмотреть видосы такие:
1. Замыкание - взгляд изнутри
2. Ключевое слово new взгляд изнутри
3. Javascript контексты - apply, bind, call, стрелочные функции
Почему я хочу эти видосы:
Я каждый день пользуюсь этим но не нахожу в себе силы прошерстить информацию и разобраться как это работает. Если уж ты занимаешься соданием контента то я был бы не проч чтобы ты прошерстил эту информацию за меня чтоб я пришел и не напрягаясь разобрался в некоторых внутренних особенностях JS.
Проще говоря: мне лень разбираться, разберись за меня =)
Ух а видос то древний, я и не заметил
Честно, но такого контента же миллион? Владилен Минин ещё не разбирал? А вот хеш таблицу на джаваскрипт никто не писал. Уникальный контент, подписываемся и ставим колокольчик :)
@@SeniorSoftwareVlogger Хм... я такого чувака даж не знал - почекаю его. Спасибо за инфу.
@@SeniorSoftwareVlogger Не успел видос кстати даже досмотреть а ты уже ответил, It's a kind of magic!
@@d_shorkin Что-то ты для программиста слишком ленивый. В тех вещах не хочешь разбираться, которые юзаешь каждый день. Лень даже гуглить. Ума не приложу))) тебя самого не раздражает это? Что ты юзаешь и сам не понимаешь что юзаешь?
Такие люди, обычно, вечно в джунах ходят. А потом везде в ютубах коменты оставляют, что меня нигде сеньором не берут, а у меня уже 10 лет опыта работы :(
Какой смысл лицемерить и делать вид что ты не понимаешь, почему люди не подписаны? Потому что это нахуй не надо - видосы можно смотреть и так. Нет, серьёзно, подписка в большинстве случаев нужна автору канала, а не зрителям.
У меня не горит жопа от того, что я не посмотрел видео спустя 5 минут от его выхода. Написание хеш-таблиц на JS это не подробности расследования катастрофы - оно еще долго будет актуально, я посмотрю когда мне будет удобно.
p.s. Грубо говоря, если бы доступ к твоим видосам был ТОЛЬКО для подписчиков(донаторов usw.) - тогда бы я сел и подумал о подписке/колокольчиках/оплате usw.
лицемерить?!
@@SeniorSoftwareVlogger Ну ты же не идиот, ты и сам прекрасно понимаешь, почему люди не подписываются.
Просто не пытайся подражать всяким блогерам. У тебя другая специфика и другая аудитория.
Люди любят тебя за профессиональные качества, а не за то, как ты весело кривляешься, например.
Проанализируй канал "ИТ-видео", и напиши в ответ своё мнение по поводу формата, подачи, стиля и т.д. Мне было бы очень интересно и есть что обсудить.
Я понял почему ты не подписываешься. То что нужно только автору и автор не получает в итоге выпиливает с ютуба контент, который ты смотришь. Или прячет контент за платные стены.
Почему другие не подписываются я почитаю у них.
им нужна мотивация. например конкурсы с условиями в которых будет включена подписка на канал