Как изучать JavaScript на практике?
В списке ниже заголовками выделены темы, которые нужно разобрать, чтобы перейти к реакту. Раздел ООП для реакта не нужен, но у вас будут спрашивать его на собеседовании. Подробное описание, для чего нужна каждая тема.
Как изучать программирование и джаваскрипт
Знать программирование значит уметь писать код. Можно долго смотреть видеоуроки и читать учебники, но не научиться программировать. Я составил план практического обучения на основе задачек с сайта codewars.com. По опыту, чтобы выучить язык, нужно нарешать примрно 150 задач.
Для того, чтобы писать код правильно (то есть как принято на работе), нужен наставник. Это человек, который будет проводить код-ревью, то есть разбирать ваши решения. Без этого есть шанс затянуть обучение и приучить сябя к плохим практикам.
Список задач с codewars.com
Всего задач в списке: ≈150.
Асинхронное программирование
На codewars нет задач на промисы и асинхронное программирование, поэтому будем решать мои задачи. Список задач в отдельном разделе.
React и TypeScript
После изучения джаваскрипта мы переходим к изучению фреймворка React. Далее опциинально можно разобрать TypeScript.
Обучаю веб-программированию с целью трудоустройства. Готовлю к позиции Junior Frontend Developer: изучаем верстку, Javascript и React, решаем тестовые с собеседований и пишем проект.
Codewars: Как развивать навыки программирования и мышление через решение задач
В мире программирования существует множество способов развивать свои навыки, но одним из самых увлекательных и эффективных является решение задач на платформе Codewars.

В этой статье мы рассмотрим, почему решение задач на Codewars полезно для вашего профессионального роста, и раскроем несколько ключевых заметок о том, как правильно мыслить, читать и решать задачи. Готовы погрузиться в захватывающий мир кодирования и развить свои навыки до нового уровня? Тогда начнем!
Развитие мышления через задачи на Codewars
Codewars предлагает огромное разнообразие задач разной сложности, от простых до сложных. Этот подход позволяет вам развивать свою алгоритмическую и логическую мысль, а также улучшать способность к анализу проблем и поиску эффективных решений.

Вот несколько ключевых заметок, которые помогут вам максимально использовать потенциал Codewars для развития вашего мышления:
- Читайте и понимайте задачу внимательно: Важно уделить достаточно времени на чтение и понимание условий задачи. Изучите примеры входных данных и ожидаемых результатов. Разбейте задачу на более мелкие подзадачи, чтобы увидеть ее структуру и логику.
- Разрабатывайте план решения: Прежде чем приступить к написанию кода, разработайте план решения. Разберитесь, какие шаги или алгоритмы могут помочь вам достичь желаемого результата. Это поможет вам сосредоточиться на решении проблемы, а не на бесконечном исправлении ошибок в коде.
- Используйте принцип «Разделяй и властвуй»: Если задача кажется сложной, разбейте ее на более простые подзадачи и решайте их по отдельности. Затем объедините решения, чтобы получить окончательный результат. Этот подход помогает разделить сложную задачу на более управляемые части и упростить процесс решения.
- Тестируйте свои решения: После написания кода важно провести тестирование, чтобы убедиться в его корректности. Используйте как предоставленные тестовые случаи, так и собственные, чтобы проверить, что ваше решение работает правильно в разных ситуациях. Это поможет выявить возможные ошибки и улучшить ваше понимание задачи.
Как правильно читать задачи на Codewars
Важной частью успешного решения задач на Codewars является умение читать задачи и понимать их требования.

Вот несколько советов, которые помогут вам стать более эффективным читателем задач:
- Обратите внимание на входные и выходные данные: При чтении задачи обратите внимание на типы входных данных и ожидаемые результаты. Это поможет вам понять, какие аргументы должна принимать ваша функция и какой должен быть ее вывод.
- Ищите ключевые слова и фразы: В задачах на Codewars обычно присутствуют ключевые слова и фразы, которые указывают на специфические требования или условия задачи. Они могут помочь вам определить необходимые шаги для решения и выбрать подходящий алгоритм.
- Разберите примеры: Часто задачи сопровождаются примерами входных данных и ожидаемых результатов. Изучите эти примеры, чтобы лучше понять, как должно работать ваше решение. Решите примеры вручную, чтобы убедиться, что вы понимаете логику и требования задачи.
Эффективное решение задач на Codewars:
Разработка эффективных решений является ключевым навыком для программиста.

Вот несколько советов, которые помогут вам создавать более эффективные и оптимальные решения на Codewars:
- Используйте подходящие алгоритмы и структуры данных: При решении задач выбирайте алгоритмы и структуры данных, которые наиболее подходят для данной ситуации. Например, для поиска или сортировки данных могут быть лучше подходящие алгоритмы, чем простой перебор.
- Обратите внимание на производительность: Оценивайте производительность своих решений и оптимизируйте их при необходимости. Избегайте излишних циклов или рекурсивных вызовов, которые могут снизить производительность вашего кода. Используйте инструменты для измерения времени выполнения кода, чтобы оценить эффективность ваших решений.
- Пользуйтесь уже существующими функциями и библиотеками: Не пытайтесь решать все с нуля. Используйте уже существующие функции и библиотеки, которые предоставляются в выбранном вами языке программирования. Они могут содержать оптимизированный код, который поможет вам сэкономить время и ресурсы.
- Обратите внимание на алгоритмическую сложность: При решении задач на Codewars имейте в виду алгоритмическую сложность вашего решения. Определите, является ли задача линейной, квадратичной, логарифмической и т.д. Стремитесь к использованию более эффективных алгоритмов, особенно для задач с большими объемами данных.
Заключение
Codewars — это потрясающая платформа, которая помогает развивать навыки программирования и улучшать способность мышления. Решение задач на Codewars позволяет развивать вашу алгоритмическую и логическую мысль, улучшать понимание задач и эффективность решений. Помните о важности внимательного чтения задач, разработке плана решения и тестировании кода. Используйте эти заметки, чтобы максимально использовать свой потенциал и достичь новых высот в программировании. Приготовьтесь к захватывающим вызовам на Codewars и продолжайте совершенствоваться!
- Развитие навыков программирования
- Мышление и логика
- Чтение задач и понимание требований
- Эффективное решение задач
- Алгоритмическая сложность
- Алгоритмы
- Занимательные задачки
- Карьера в IT-индустрии
- Программирование
- Промышленное программирование
Первый опыт на Codewars

На данный момент я прошла 2 курса по Python: Сode Basics и самые основы на Хекслете. Это дало мне базовое знание синтаксиса, знакомство с тремя типами данных (строковые, числовые и кортежи) и с некоторыми видами циклов. Все эти базовые вещи, мне казалось, я хорошо поняла и усвоила.
После этого я переключилась на изучение настройки окружения и работы с Git. Но чтобы Python не забывался, я зарегистрировалась на Codewars — англоязычном сервисе с задачами по программированию.
Общие впечатления
За пару часов я решила 6 задач и перешла с последнего восьмого ранга на седьмой (самым крутым считается первый ранг). Но это не единственное достижение. Всего 6 задач сильно скорректировали мои представления о том, что я уже успела освоить в Python.
Первые задачки я решала за 5-10 минут каждую. Но даже знакомые конструкции я не сразу могла воспроизвести по памяти. Хотя изучение синтаксиса я старалась растягивать во времени и проходила параллельно с другими курсами. Это нужно, чтобы изучаемое забывалось и его приходилось припоминать. Такой способ считается эффективным для долгосрочного запоминания. Но видимо нужно было еще и просто больше практиковаться.
Сложная задача
Одну из 6 задач я решала около часа. Решила при помощи кортежей (единственный составной тип данных, который я знала в Python на тот момент) и двух циклов в одной функции. Выглядело громоздко, но все работало, и тесты проходили успешно. После часа сражений я была определенно горда собой. Оставалось только окончательно отправить решение. Но при попытке сабмита Codewars стал ругаться, что выполнение кода занимает слишком много времени и нужно его оптимизировать.
Надо сказать, что моим первым языком программирования был R. И я его выбрала после довольно обширного чтения на тему, что лучше R или Python. И R победил тогда в том числе и за свою хорошую работу с векторами как базовым типом данных. Когда данные помещаются в оперативной памяти, векторным вычислениям нет равных по скорости.
При решении первых задач на Codewars мне случилось узнать, что в Python для работы с векторами существуют специальные библиотеки, которые нужно импортировать. А также, что вместо векторов можно использовать списки. В тему я не углублялась, но решила попробовать списки для оптимизации и посмотреть, что будет.
Я заменила кортеж в своем решении на список, сделала необходимые правки с переводом строковых и числовых данных и, вуаля, Codewars понравилась моя оптимизация — решение прошло. Я стала еще больше гордиться собой, чем просто после зеленых тестов: как же, соединила прошлые знания с новыми. Но снова сюрприз.
После отправки моего решения мне стали доступны решения других людей для этой задачи. И я увидела, что вместо громоздкой функции с двумя циклами в лучших решениях была всего одна(!) строка с арифметическим действием. Я не заметила элементарную закономерность в исходных данных задачи! Вот это был урок.
Итог
Обязательно попробуйте свои силы на Codewars или аналогичных сервисах. Сильные эмоции гарантированы. Плюс, вы сможете отработать синтаксис вашего нового языка и алгоритмы решения задач. И прочувствуете ограничения тех конструкций языка, которые знаете на данный момент. Ну и конечно, сможете сравнить свое решение с сотнями и тысячами других — и с лучшими, и с худшими (решения имеют рейтинг и сортировку). Все это поможет лучше понять ваш текущий уровень в программировании и конкретном языке и замотивирует узнавать больше и глубже.
PS. У Хекслета на Codewars есть собственный клан. Если в него вступить, то можно соревноваться не только со всем миром, но и в пределах клана.
Проблема с решением задач на codewars [закрыт]
Закрыт. На этот вопрос невозможно дать объективный ответ. Ответы на него в данный момент не принимаются.
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах.
Закрыт 2 года назад .
У меня проблема с решением задач на codewars. Не могу решать задачи меньше, чем 7 кю. Вроде все темы по js понимаю, но не могу найти алгоритм на первый взгляд простой задачи. Нет мышления для выполнения задач. Как можно это «ликвидировать». Есть ещё 1 вопрос какой уровень «кю» нужно уметь решать junior, middle, senior.
Отслеживать
задан 7 мар 2021 в 7:46
Евгений Краев Евгений Краев
21 2 2 бронзовых знака
Берёте любую задачу, того же 6 уровня и просто пишите псевдокод. Пишите максимально неоптимизировано, но понятно для себя, шаг за шагом. Например задача — найти анаграммы. Ну и думаете как можно проверить, что две строки содержат одинаковые буквы. Первый вариант пройтись по каждой букве в каждом слове и посчитать их кол-во. После того как вы сделаете это, подумаете: «Ага. выглядит не очень» и придумаете отсортировать строку (как массив) и сравнить два слова.. Вот, короче не бойтесь писать плохой код.. Если 7 уровень делаете.
7 мар 2021 в 9:09
то 5 тем более сделаете, потому что 5 это по сути несколько 7)))
7 мар 2021 в 9:09
Из 6 кю пока смог только её осилить codewars.com/kata/5526fc09a1bbd946250002dc/train/javascript Вот таким плохим способом function findOutlier(integers) < let a = integers.filter((num) =>num % 2 === 0) let b = integers.filter((num) => < if (num < 0) < return num % 2 === -1 >return num % 2 === 1 >) return a.length === 1 ? a[0] : b[0] >
7 мар 2021 в 9:30
Сам чуть-чуть озадачился)) function findOutlier(integer) < const arr=integer.reduce((a,c)=>(a[Math.abs(c)%2+2]+=1,a[Math.abs(c)%2]=c,a),[0,0,0,0]); return arr[2] > arr[3] ? arr[1] : arr[0]; >
7 мар 2021 в 10:16
7 мар 2021 в 10:21
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Вы пытаетесь получить ответ на непростой вопрос хотя как вам кажется он очевидно простым. Начнем по порядку. Как ликвидировать — терпение и труд. Вам необходимо решать побольше задач начиная от простых вещей по типу сложить разделить присвоить поменять, дабы все отложилось в памяти. Затем задачи по сложнее, иначе никак. Это по типу вы хотите обучить ребенка писать стихи, а он понятие не имеет о чем это вы. Соответственно чтоб узнать его уровень вы будите упрощать вплоть до букв. Тут также если вам не понятен уровень спускайтесь на уровень меньше . По поводу уровня для решения задач, это чисто субъективно. Вы можете классно решать задачи по меркам одного и совсем ничего по меркам другого.
Отслеживать
ответ дан 7 мар 2021 в 8:29
Aziz Umarov Aziz Umarov
22.5k 2 2 золотых знака 10 10 серебряных знаков 33 33 бронзовых знака
- javascript
- алгоритм
-
Важное на Мете
Похожие
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.