Мне нужны упражнения для начинающих на усвоение и правильное применение базовых конструкций JavaScript, от простого к сложному. Искал в гугле, стэковерфлоу, амазоне, но не нашёл ничего подходящего.
Просьба не давать советы в духе «начни делать свой проект с нуля» — уже делаю. Просто после чтения Фланегана и Крокфорда хочется практического закрепления в виде небольших задачек.
Ещё уточнения, на всякий случай:
— у меня нет формального computer science образования,
— пишу на CoffeeScript
— интересует в первую очередь Core JavaScript, а не фронтенд
Спасибо, я уже пользовался этим ресурсом. Перестал, когда нашел пару багов и опечаток. Да и уровень там совсем-совсем для начинающих :-( Есть ещё похожий , но он платный. Я прошёл там треть курсов, этого оказалось мало.
А я посоветую взять методичку по программированию для 1го курса (паскаль, си — неважно) и делать лабораторные работы по порядку — математические вычисления, ветвления, циклы, массивы, объекты и так далее — уверен, выполнение пары-тройки десятков типовых задач здорово помогут.
Удачи!
jazzbird я учился когда-то в универе и долбил тоже всякие упражнения на турбо паскале 7 и Си 3.0, и сейчас также учу JS, не вижу как эти знания могут помочь. Так что не тратьте время
jazzbird, выслал, проверяйте. pomeo, я бы не был столь категоричен — знаю немало примеров, когда некоторые «лабы» осаждали заносчивых начинающих.
В любом случае, вреда от выполнения вызывающих затруднения задач не будет.
вред будет, потому что на JS, а именно как я вижу автор пишет под node.js стиль написание совсем другой. Вы попробуйте, мозги после callback'ов ломаются хорошо и опыт с паскалем будет только мешать. Да и задачки в методичках к реальности имеют мало отношения.
Зачем при решении абстрактной задачи с алгоритмами вообще привязываться к языку? Берете задание лабораторной и пишите на JS. Понимание построения алгоритмов у программиста должно быть обязательно.
Согласен с Fesor'ом. pomeo, так уж сложилось что я долгое время писал именно на паскале, а сейчас именно на node.js. Если хотите, вышлю методичку и вам — посмотрите — для тех задач (ну кроме, разве что, работы с файлами) асинхронность не нужна.
Fesor когда вы последний раз делали, возьмем самое простое, сортировку пузырьком? оно в реальной жизни не встречается совсем, если человек реализует это руками вместо использования встроенного функционала языка, он бесполезно тратит время. Если вдруг понадобится придумать алгоритм, опыт с методичками не поможет. У меня на полке стоит «Алгоритмы. Построение и анализ. Томас Кормен и т.д.» университетские методички которые я прошел по уровню очень сильно отстают от этой книги.
Сортировка пузырьком может и не нужна, но вот какие-нибудь хитрые перемножения матриц, или же еще чего… Смысл не в том что бы заучить конкретную реализацию конкретного алгоритма, а понять, как они строятся.
Начни использовать библиотеки типа Backbone, Underscore, SugarJS. Если используешь Rails, то посмотри Joosy.
После них я могу уверенно говорить, что хорошо знаю JavaScript. В какой-то момент книги закончатся и останется только читать исходный код хороших проектов.
В том и дело, что я хочу разобраться лучше с логикой самого языка, потому что мне с трудом даётся понимание скоупа, прототипного наследования, биндиндинга функций и т. д. Underscore полезная, а Backbone взорвал мозг, даже по урокам на Codeschool.com.
Помоему то, что вы назвали, это вещи, которые могут быть либо понятыми, либо нет. Если вы их с трудом понимаете, значит не понимаете совсем. Это как быть немножко беременной. Советую разобраться нормально или вообще отложить в сторону пока, не такие это и важные вещи для начала.
А я вот с этим не согласен. Знание библиотек !== знание языка. Сколько народа юзает jquery и не знает, что такое прототип? Все эти библиотеки действительно хороши, кстати, с joosy познакомился буквально на днях, но для того, чтобы разобраться с языком, нужно покопаться в их внутренностях и полностью разобраться как они работают, а не просто использовать.
У меня «JS: подробное руководство» является подпоркой к монитору тимлида. Сомневаюсь что у вас не осталось вопросов по этому языку только после прочтения книги. Что бы вопросов на самом деле не осталось, каждую фишку языка нужно опробовать на собственном опыте.
А вообще JS — очень простой и элегантный язык, сложности обычно возникают с концепцией прототипного наследования и с типизацией (бывают странности в поведении).
Какая-то на javascript.ru странная система, начал один из естов, первый вопрос — выбрал ответ, нажал «Отправить», вижу тот же вопрос. Нажал «Отправить» несколько раз, опять первый. Нажал Ctrl+F5 — 6ой. В общем страница обновляется только по Ctrl+F5. В хроме.
learn.javascript.ru/ — есть и задачки, как раз от простого к сложному, и курс изложен очень даже хорошо.
Прокрути чуть ниже до оглавления и там справа будет кнопка «Показать/Спрятать задачи».