• Где найти много задач по Javascript?

    mbelskiy
    @mbelskiy
    Software Developer
    Русскоязычный сборник задач с автоматической системой проверки решений: https://github.com/mbelsky/js-problems
    Ответ написан
    Комментировать
  • Как правильно составить план самообучения?

    @CasperIsNotAGoodGhost
    Не тратьте время на составление плана. Если в ходе обучения, каких то знаний будет не хватать, подтянете при необходимости. Вообщем не парьтесь и делайте.
    Ответ написан
    Комментировать
  • Как правильно самому себе накидать ТЗ и план работ?

    Sanes
    @Sanes
    Задачи стявятся для какой-то определенной цели. Сначала опишите приложение, которое хотите получить в итоге. И потом уже разбивайте на задачи.
    Ответ написан
    Комментировать
  • Можно-ли скачать видео с YouTube используя DevTools?

    Есть такая «секретная» ссылка: www.youtube.com/get_video_info?video_id=XXXXXX
    Вместо XXXXXX подставьте хэш видео, который в ссылке на ролик, типа youtu.be/BWCiWZtrWXU после слеша.

    По этой (первой) ссылке вернутся URL-encoded данные. Распакуйте их и возьмите параметр url_encoded_fmt_stream_map. Его значение опять надо распаковать как URL-параметры. И из результата вытащить параметр url – это ссылка на единый скачивабельный видеофайл.

    Например, в консоли браузера:
    function getUrlParams(search) {
        let hashes = search.slice(search.indexOf('?') + 1).split('&')
        let params = {}
        hashes.map(hash => {
            let [key, val] = hash.split('=')
            params[key] = decodeURIComponent(val)
        })
    
        return params
    }
    var s = '------'; // здесь длиннющая строка из ответа /get_video_info
    var a = getUrlParams(s);
    var b = getUrlParams(a.url_encoded_fmt_stream_map);
    console.log(b.url); // эту ссылку открываем в браузере - это скачиваемый видеофайл


    Очень надеюсь, что вы покопаетесь в этих данных более подробно, разберётесь, как получать прямые ссылки на скачиваемые файлы во всех форматах и размерах, которые предлагает YouTube, и напишете короткий материал на Хабр по результатам, а также опубликуете gist с рабочим кодом для консоли браузера.
    Ответ написан
    3 комментария
  • Где найти много задач по Javascript?

    @McBernar
    Codewars, конечно. И тесты и решения и лучшие практики.
    Ответ написан
    Комментировать
  • Объясните что такое полиморфизм простыми словами ?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Я в шоке, если честно... Вот как ни начинаются вопросы про ООП в Javascript, так руки в ноги и понеслось... Кто Java, кто C# примеры приводит. да ещё портянками суровыми. И каждый приписку делает — дескать в Javascript не так наглядно.

    То есть человек, изучающий Javascript, и никогда не видевший других языков, тут же радостно закивает от вида незнакомого синтаксиса? Вы и взаправду преисполнены веры в такой светлый финал?

    Спрошу всех отвечающих:
    1. Number.prototype.toString() и Object.prototype.toString() — это полиморфизм или нет?
    2. Date.prototype.hasOwnProperty() и Object.prototype.hasOwnProperty() — это наследование или нет?
    3. В чём тогда между ними разница?

    ПыСы. И ещё хочу спросить всех знатоков любых языков, кроме указанного в вопросе — если в темах с тэгами Python, Ruby, PHP, C# я начну строчить куски кода на Javascript, потому мне кажется, что так понятнее, как скоро подписанные на эти тэги попросят меня забанить?
    Ответ написан
    7 комментариев
  • Объясните что такое полиморфизм простыми словами ?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Да ладно, парни. Ну хватит уже, к чему такие сложности? Берём и читаем. Вообще совсем не обязательно читать про архитектуру и абстракции именно по своему языку, хотя javascript в этом плане родился уродом.

    Ок. Полиморфизм ни в коем случае нельзя рассматривать отдельно от других фундаментальных понятий - абстракция, инкапсуляция и наследование. Объект и подобные прилагаются из аксиом (хотя это-то тоже аксиомы).

    Собственно, представим себе рядом стакан, кружку, чайник, кофемашину, велосипед и скейт. Что между ними всеми общего? Ну как минимум то, что они есть. То есть это - объекты, которые были созданы. Но как они были созданы? Скорее всего на заводе производителя по чертежам. Ок, чертежём назовём конструктор. Ну а класс? А что это такое? А его нет в нашей вселенной - эта сущность есть абстракция, что живёт лишь в наших мыслях. В реальном мире её нет и никогда не будет, такова уж физика - ей по барабану, что птицы и млекопитающие имеют дальних родственников - она лишь обеспечивает возможность естесственного отбора. А уж родственников друг другу находим мы, люди.

    С объектами и классами разобрались, а что же там с нашими стаканами и велосипедами. Мы уже поняли, что всё это объект, то есть грубо можно все объекты наследовать от какого-нибудь суперпредка, суперкласса, что и реализовано в некоторых языках. Но что другого общего между скейтом и стаканом, например? Конечно, можно углубляться и считать, что они все из молекул, и они все из твёрдых веществ. Однако это всё бред и СПГС, так что ответ прост - да ничего. То есть это совершенно разные объекты с совершенно разным функционалом. Более того - естесственно компьютерные модели и иерархии будут сильно отличатся от физик и химий. И это нормально, вопрос об адекватностях моделей ставиться лишь когда модель неадекватна, а до тех пор пилить можно что угодно, лишь бы работало.

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

    Однако что с остальным? У нас ещё абстракция, инкапсуляция и наследование. Ок, начнём с наследования, так оно наиболее близко. Вот что у нас общего между стаканом и кружкой? Ну в оба можно налить воду, но у кружки есть ручка чтобы держаться. То есть можно придумать некий общий класс - ёмкость. Однако что это за класс? Можно например за этот класс взять стакан, тогда все ёмкости по дефолту стаканы, а всё остальное - видоизменённые стаканы. Но кому-то больше нравяться кувшины, например некоторые чики насят их на голове, считая что это удобно. Ну и пусть носят, но как-то же решить надо, что главнее и идеальнее. Так вот - недостяжимый идеал и есть главный - это называется абстрактный класс. То есть ёмкость, что невозможно создать, для которого нет полного чертежа. А все чертежи, что дополнили до полного - есть наследованные классы от класса ёмкость.

    Тут мы подошли к абстракции. Вот такое иерархическое наследование приводит нас к, возможно главной, идее ООП. Вот мы взяли и выделили всё, куда можно налить воду в отдельный класс, нарисовали общий чертёж, но специально не доделали его, оставив зазор для будущих творцов, и назвали чертёж - ёмкость. Тысячи лет изобретатили всех миров создают свои ёмкости, одна лучше другой. Для разных людей - по разному, конечно. Но каждый раз группировать молекулы стекла определённым образом - непростая задача. Поэтому ремесленники пошли на хитрость, они создали тайный совет ремесленников мира и решили делиться друг с другом своими наработками. То есть создавать мелкие чертежи и объявлять классом, например, извлистой ручки в форме ленты Мёбиуса, например. Возможно такая ручка удобно только инопланетным существам, но чертёж создан и к нему можно ссылаться при создании своего чертежа. Таким образом мы абстрагируемся от низкоуровневой задачи "формирования ёмкостей посредством перемещения молекул" к "конструированию ёмкости посредством совмещения деталей, элементов". Это и есть абстракция.

    Но мы подошли к последнему пункту - инкапсуляция. Она неразрывна с абстракцией, и по сути благодаря ей она и работает. Инкапсуляция - это своеборазный клей (или синяя изолента), которым склеивают разные чертежи в один. То есть совмещение деталей для создания своей - это и есть инкапсуляция. Причём при совмещении мы можем не описывать детали этого совмещения (то есть члены класса могут быть приватными), таким образом помогая абстрагироваться тем, кто этот чертёж использует. Вот посмотрим на чайник - что это такое? Это стакан (или кружка) к которому снизу (а может внутри по середине?) приклеен нагревательный элемент. Пустив по нему ток, согласно инкапсулированному в нагревательный элемент закону Ома, будет выделяться тепло и нагреваться вода. А кофемашина? Это куда более сложное устройство, с множеством насосов, ёмкостей, шлюзов, измельчителей и чайников. И всё склееное клеем. А может синей изолентой. Это снова инкапсуляция.

    Таким образом, абстракция невозможна без инкапсуляции и наследовании, как невозможен полиморфизм без, собственно, наследования. Ну а полиморфизм невозможен ещё и без инкапсуляции, которая банально бесполезна без наследования и полиморфизма. Вот такие тут треугольники с пирогами. Жаль только про пирог наврали. И про день рожденье.
    Ответ написан
    3 комментария
  • Где найти много задач по Javascript?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Тут много задач на разные сложности https://leetcode.com/ Это если чисто алгоритмические задачи. А так, на https://learn.javascript.ru есть задачки к каждой главе, тоже полезно порешать.
    Еще мне нравится вот этот раздел https://leetcode.com/explore/interview/card/top-in... тут список вопросов по разным темам, которые задают на собеседовании. Но нельзя просто в лоб это решать, нужно иметь алгоритмическую базу.
    Ответ написан
    Комментировать
  • В чем отличие процедурного от функционального программирования?

    daruvayc0
    @daruvayc0
    В декларативном программировании, Вы разъясняете: я хочу, чтобы факториал n был n раз факториалом n-1(как в определении факториала в математике). 061936c90772779b902414ec897902cc4b61ca06Декларативное - это что.
    const factorial = (n) => {
      return (n === 0) ? 1 : n * factorial(n-1);
    }


    В императивном, Вы приказываете четко передвигаться по шагам - умножать это на это, пока идет отсчет и запоминаются какие-то числа.
    const factorial = (n) => {
      const iter = (counter, acc) => {
        return (counter === 0) ? acc : iter(counter - 1, counter * acc);
      }
      return iter (n, 1);
    }

    Императивное - это как.
    Ответ написан
    Комментировать
  • В чем отличие процедурного от функционального программирования?

    @EvgeniiR
    https://github.com/EvgeniiR
    ФП не предполагает наличия изменяемого состояния.
    Процедуры же меняют какое-то общее состояние.
    Ответ написан
    1 комментарий
  • В чем отличие процедурного от функционального программирования?

    rockon404
    @rockon404
    Frontend Developer
    Пример в контексте JavaScript:

    Процедурный стиль:
    const array = ['first', 'second'];
    
    let output;
    
    function allOdd(words) {
      let result = true;
    
      for (let i = 0; i < words.length; ++i) {
        const len = words[i].length;
    
        if (len % 2 !== 0) {
          result = false;
          break;
        }
      }
    
      return result;
    }
    
    output = allOdd(array);
    
    alert(output);

    Функциональный стиль:
    function length(string) {
      return prop('length', string);
    }
    
    function odd(number) {
      return equals(modulus(number, 2), 0); 
    }
    
    function allOdd(...words) {
      return every(compose(odd, length), words);
    }
    
    alert(allOdd('first', 'second'));

    Реализации prop, modulus, equals, every и compose оставлены за кадром. Думаю, из их названия легко понять какой результат они возвращают.
    Ответ написан
    3 комментария
  • Почему не стоит использовать for...in, for...of, for(airbnb linter)?

    xPomaHx
    @xPomaHx
    1vs9
    Потому что колбэк метода из прототипа массива проще тестировать. Лично для меня это не убедительный аргумент, чтобы отказаться от процедурных переборов полностью.
    Ответ написан
  • Где порешать задания на асинхронщину?

    mtix
    @mtix
    Front-end developer
    Могу посоветовать хороший курс по асинхронному программированию https://habr.com/ru/post/452974/ . Пройдите и у Вас не должно остаться вопросов.
    Ответ написан
    Комментировать
  • Как расшифровать обфусцированный JavaScript код средствами?

    T_y_l_e_r
    @T_y_l_e_r
    Вот как вариант
    ddecode.com/hexdecoder
    Все остальное ручками
    Ответ написан
    Комментировать
  • Как расшифровать обфусцированный JavaScript код средствами?

    Rou1997
    @Rou1997
    С помощью различных онлайн-сервисов. Различных, Карл. Это так же, как и декомпиляция компилируемых языков, у меня на один язык по девять декомпиляторов (несколько месяцев собирал в интернете) и тем не менее есть небольшая вероятность найти код, который ни один из декомпиляторов не сможет избавить от "ошметков", и придется разбирать вручную - с помощью отладки , документирования в Блокноте и в комментариях, и постепенного приведения "ошметков" в удобный вид.
    Обфускаторы (шифровальщики) используются разные, например p,a,c,k,e,d довольно хорошо поддается и определению и расшифрованию, но все равно далеко не каждый онлайн сервис включает алгоритм его определения и де-обфускации, тем более наивно ожидать такого от Chrome DevTools.
    Ответ написан
    Комментировать
  • Что делать если youtube занимает слишком много времени?

    Kadzi
    @Kadzi
    Ом
    Тут речь о мягких навыках, в частности про управление собой и концентрацию.

    Как вариант, использовать эту привычку во благо. Посещать ютуб стало привычкой, теперь нужно культивировать просмотр нужного контента.

    Начать стоит с коротких полезных видео по тематике профессии или что-нибудь про софт-скилы. Уверен, что никаких резких изменений не последует, но, культ полезного контента даст плоды.

    Вот например, чтобы изучить что-то основательно, нужно курить 3-4 часовые видео + практика, но в реалиях такого энтузиазма мало у кого есть, поэтому, как вариант начать с 5-15 минутных видео. Просто начать.

    У меня была точно такая же история, только вместо ютуба я читал тостер)))) Понимая, что не могу с собой ничего поделать, я начал просматривать по 300-400 советов из разных тематик ежедневно в том числе рубрики в которых я полный ноль. А позже я культивировал полезный поиск + сбор полезных материалов, в том числе из комментариев.

    Я купил ежедневник, где что-то зарисовываю или записываю о том, что я смотрю и читаю, подстегивая себя к новым знаниям. Это своеобразная медитация. Скептически всегда относился к ежедневникам, но оказалось забавно, как такая штука может якорить и напоминать: не останавливайся, чувак!

    В один момент, я понял, что хочу углубляться по вопросам и перескочил с тостера на видео, книги и практику. Начинал так же, с банальных вещей, которые культивировал. Например, что такое цвет? И по 15-20 мин ежедневно что-то читал, смотрел изучал, пока не захотелось это делать по 30 мин в день. некоторые вещи я хочу делать теперь по 3-4 часа в день.

    Мой посыл в том, что резкой перемены не произойдет. А чтобы произошла перемена ты сам должен сказать себе: так, мне пора на следующий уровень. Чтобы попасть на следующий уровень окружи себя инфополем текущего, пока эта информация не покажется усвоенной.

    Повторюсь, если ты чувствуешь что жизнь идёт как у овоща, начни с примитивнейших вещей и самых простых ежедневных задач. Например, завтра делай всё тоже самое, только посмотри 10 минут видео, которое полезно, например про софт скилы. Завтра снова страдай херней, но снова посмотри 10 минут и так далее. Через месяц-полтора доза увеличиться, а свою привычку ты сможешь использовать во благо.

    Мягкие навыки 1
    мягкие навыки 2
    40 правил философии ответственности обрати внимание на 2 правило
    теория психики
    рекомендую его заметки

    Давай ещё разок: тебе не сжигать мосты нужно, а выжать полезное действие из привычки.

    0. Никаких резких перемен не будет.
    1. Почитать про софт скилы и что формирует их.
    2. Продолжить смотреть ютуб, разбавив ежедневной рубрикой "полезные 15 минут"
    3. Окружить себя инфополем текущего уровня, пока не захочется на следующий. А захочется, так как эти 15 минут превратятся рано или поздно в 20, а потом в 30. Культивация полезного действия.
    4. Попав на новый уровень, проделать тоже самое.

    Культ полезного действия применим к любым жизненным ситуациям. Учиться учиться, учиться правильно читать, искать, серфить, смотреть и слушать. Это тоже навык.
    Ответ написан
    Комментировать
  • Как сделать такой эфект при скролле?

    RAX7
    @RAX7
    Смотри на свойство stroke-dashoffset у .dots-outline
    https://svg-art.ru/?p=1253
    Ответ написан
    Комментировать
  • Как научиться понимать английский язык на слух? Это вообще возможно?

    Понимание речи на слух не более чем тренировка мозга. Это (конвертирование звука в понимаемые слова) рефлекс, его нужно тренировать.

    Начните с простых видео (Intermediate или ниже), смотрите с субтитрами, и когда не понимаете слово отматывайте назад и пробуйте распознать слово еще раз. С субтитрами вы поймете что примерно должны слышать (вы же понимаете как читается слово), и когда на слух его обнаружите, мозг обучится. В следующий раз когда вы его услышите, будет легче его распознать на слух. Когда очень много раз натренируете мозг на слова, тогда он сможет их распознавать сходу.

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

    Постепенно простые предложения вы сможете понимать, и можно будет повышать уровень. На сложную (быстрее, неразборчивее, акцент, проглоченные буквы, и так далее) речь тоже нужно обучать мозг, поэтому такие тренировки нужно проводить постоянно, и поднимать уровень сложности, пока не поймете что уже понимаете английский на слух.
    Ответ написан
    1 комментарий
  • Как научиться понимать английский язык на слух? Это вообще возможно?

    syryshka
    @syryshka
    Журналист. PR/SMM-менеджер. Фотограф
    Действенный способ научится воспринимать английский на слух и говорить легко

    Как научиться адекватно понимать английский язык на слух? Это вообще возможно?
    Чтение, письмо, говорение - это можно освоить на каком-то допустимом уровне, причем понятно, что для этого нужно делать конкретно.

    Чтение, письмо, говорение Вы освоите только на определенном уровне. Это может быть B1,B2,B3,B4 до B10.
    Вот например, что он сказал тут? _ https://images.puzzle-english.com/level-test/video...
    Ни одного слова не разобрал. Оказывается он сказал "Bring something to cheer him up" - что, как он смог сжать это в одно слово бкз единой паузы?!

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

    Вы можете научится английскому только читая и вникая(начните со сказок), прослушивая аудиокниги и вникая, просматривая англоязычные фильмы, сериалы. И только общаясь с хорошим носителем английского языка без смешения с более четким британским. Английский более раскрепощенный язык, но правильно подобрать носителя - это большая проблема. Если взять человека с улицы в Сан-Диего Вы станете разговаривать как обезьяна, извините. Поэтому слушайте больше спичей Клинтона, Дика Чейни, Линкольна.

    Breaking Bad
    Downton Abbey
    The best of TED

    В чем проблема? В русском языке можно свободно вальсировать словами и склонять слово, например работа:

    Именительный работа работы
    Родительный работы работ
    Дательный работе работам
    Винительный работу работы
    Творительный работой работами
    Предложный работе работах

    В английском языке есть слово work и это слово важно правильно применять во временах и частицах, например I have got some rather pressing work to do - мне нужно проделать важную работу;
    Ответ написан
    Комментировать
  • Как научиться понимать английский язык на слух? Это вообще возможно?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Много практики. Начинайте с простых вещей.
    Смотрите детские мультики, смотрите простые технические подкасты и презентации. Например у Стивена Джобса отличный и неторопливый английской - посмотрите его презентацию от 2007.
    Общение с носителями.

    Опять же, это просто много практики. Чем больше практики - тем быстрее.
    Ответ написан
    Комментировать