Каков путь к овладению JavaScript? [закрыто]


18

Я знаю, как мы начинаем с JavaScript, мы вырезали и вставляли фрагмент кода, чтобы получить немного функциональности или проверки на стороне клиента.

Но если вы пойдете по этому пути, пытаясь реализовать богатое интерактивное поведение, вам не понадобится много времени, чтобы осознать, что вы создаете Большой Шар Грязи.

Так каков путь к опыту в программировании уровня взаимодействия? Какие книги, учебные пособия, упражнения и процессы способствуют программированию надежного, поддерживаемого JavaScript?

Мы все знаем, что практика важна в любом начинании, но я ищу путь, похожий на ответ здесь: /programming/2573135/


«Уровень взаимодействия?»
Роберт Харви

1
Должен быть новый тег по моему мнению: P
Mike

1
Другой вопрос, где ответом является практика, как и любая другая область, которую вы хотите освоить. Практикуйтесь, учитесь у своих сверстников (тех, кто более опытен), и я уже упоминал о практике. Процесс освоения языка программирования x такой же, как и для языка программирования y, который аналогичен овладению скульптурой, вязанием крючком или любой другой профессией.
Крис

1
@johnny: Когда вы можете выхватить исключение из трассировки стека ...
TMN

1
@Chris - если вы перейдете по ссылке, которую я включил, вы увидите, что на такой вопрос можно с пользой ответить. Сказать «ответ - практика» не полезно. Укажите на некоторые ориентиры вдоль полезного пути, не говорите мне начать ходить.
Эрик Уилсон

Ответы:


15

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

Читайте книги, учебники, статьи, блоги, RSS-каналы и т. Д.

Создайте какой-нибудь проект для работы в свободное время. Если вы не можете придумать что-то, найдите проект с открытым исходным кодом, над которым вы можете быть заинтересованы.

Кроме того, не падайте духом и, самое главное, помните, что «мастерство» - это не пункт назначения, а путешествие - путешествуйте в своем собственном темпе, развлекайтесь и наслаждайтесь пейзажем. Если вы отнеситесь к этому слишком серьезно, вы сгорете, и это никому не поможет.


7
Я хотел бы, чтобы это автоматически отвечало, когда кто-то спрашивает «как научиться / освоить Х». Очень похоже на то, как вы справляетесь с математическим доказательством или совершенствуете роман. Посмотреть другие работы X, попрактиковаться в X самостоятельно, промыть, повторить -> Мастер в X.
Крис

@ Крис, Ага. Это в значительной степени мой стандартный ответ.
Муад Диб

Хотя я могу сказать, что вопросы о том, где получить хорошие ссылки / книги / материалы - это вопросы, которые мне нравятся. Недавно взялся за python, и у нас был вопрос programmers.stackexchange.com/questions/12189/… Я нашел себя звездным, чтобы поднять меня с ног и запустить.
Крис

@ Крис, да, этот ответ - скорее общий совет, и в нем отсутствуют конкретные шаги, которые, на мой взгляд, могут быть очень объективными. Мне тоже нравится видеть ссылки. Но для этого и нужен Google, верно?
Muad'Dib

Правильно, но Google не может предоставить какую-либо реакцию / впечатление от материала. Google делает добро, но не все. Договорились независимо. т
Крис

9

Несколько ссылок для мастерства JS


3

Прежде всего, вы должны знать, какова будет ваша цель в изучении JavaScript. Если вы просто хотите провести некоторую проверку ввода и немного упростить пользовательский интерфейс для пользователя, вам не нужно иметь глубокое понимание языка, если вы используете такие фреймворки, как jQuery .

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

Что касается книг и других ресурсов, я не очень много слышал о полезных книгах, и в целом я выучил язык, пытаясь решить проблемы и проверяя, чтобы мой код был чистым в соответствии с JSLint . Сочетание интересной проблемы (например, расширение фреймворка), JSLint и достаточного количества времени для усердной практики, вероятно, станет лучшим выбором для изучения языка.


2

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

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

Научитесь использовать интерактивную консоль в своем браузере (в Chromium вы можете получить к ней доступ, нажав Ctrl+ Shift+ J), что похоже на такие инструменты, как IRB и интерактивный интерпретатор Python. Это полезно для тестирования языковых функций и отладки.

Используйте JSLint для проверки качества вашего кода.

Когда вы начнете заниматься «реальной» разработкой с использованием DHTML, упростите свою жизнь с помощью фреймворка, такого как JQuery , для решения проблем с различными браузерами.


1

Здесь можно применить множество методов, которые делают программиста экспертом в заданном языке, хотя в javascript есть пара жемчужин, которые позволяют использовать его необычайно эффективно. Возможно, одним из самых больших препятствий, которые мне пришлось преодолеть с помощью javascript, было устранение моего менталитета программирования на «С», то есть тысячи крошечных функций, помещенных в один файл js.

Некоторые общие советы - абстрагироваться всякий раз, когда вы можете, и пытаться формировать классы, когда вы можете организовать общее поведение. Создайте новые js-файлы для любой функциональности, которая может быть использована для других ваших js-файлов (в пределах разумного) и избегайте глобальных переменных, если это вообще возможно. Я очень рекомендую вам изучить jQuery, если вы еще этого не сделали. Это инструмент, который я полюбил, и теперь без него я бы не справился. Это чрезвычайно гибкое расширение javascript, которое позволяет значительно упростить ваш код, что хорошо для простоты и возможности быстрого и эффективного кодирования. jQuery поставляется с большой библиотекой плагинов, которая позволяет вам делать много вещей, которые не могли бы быть более впечатляющими, если бы вы делали это во флэш-памяти. Проверьте jQuery UIдля всей системы тем для вашего сайта, что позволяет вам эффективно изменять весь макет вашего сайта, ничего не делая вообще. Поставляется со множеством анимационных эффектов и удобных элементов управления, обычно используемых на веб-сайтах (выбор даты, кнопка, индикатор выполнения и т. Д.), Большинство из которых можно активировать с помощью одной строки JavaScript.

Надеюсь, это поможет!


1

Многое из того, что вы делаете в JavaScript, по сути, тесно связано с совместимостью с DOM, CSS и браузером, поэтому понимание DOM является одним из основных требований к овладению JavaScript.

Изучение основных функций языка, таких как ориентация объектов на основе прототипа, анонимные функции и более общие функции языка, такие как циклы, условия и т. Д., Является ключом к пониманию любого кода, который вы читаете, который не взаимодействует с DOM / CSS. ,

Вам также нужно будет изучить стандартную библиотеку языка, например, String and Math и другие основные функции объекта.

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


1

Прочитайте код библиотек, которые вы используете. Чтение исходного кода jQuery или Prototype научит вас тому, что на самом деле происходит в javascript и dom. Исследуйте методы, которые используют библиотеки, чтобы вы могли их понять. Не стесняйтесь начинать с чтения микро-фреймворков на http://microjs.com/ . Убедитесь, что вы смотрите на фактический источник, а не только на распределенные файлы. (jQuery имеет около десятка исходных файлов, но они собираются в процессе сборки.)


0

Javascript применяется во многих областях разработки прямо сейчас.

  • Это единственный язык в современном браузере.
  • Он может работать на сервере благодаря node.js и движку V8.
  • Он может работать встроенным в мобильные устройства через PhoneGap или другие альтернативы.
  • Он может быть использован для создания приложений Windows 8.

Поэтому я считаю, что есть больше мастерства javascript. Это зависит от того, с чего вы хотите начать, но будьте уверены, каждый из этих 4 пунктов, упомянутых выше, создаст вам разные проблемы - хорошо, может быть, окна 8 и поля телефонной пропасти могут быть похожими, но остальные поля разные.

Если мы говорим о браузерной среде, изучение того, как почти каждое веб-приложение должно быть организовано, может быть одним из путей, по которым вы можете пойти. Я иду по этому пути и экспериментирую с собственными идеями, проверяя git-репозитории популярных библиотек организации кода, таких как dojo, backbone, ember и т. Д.

Если мы говорим об окружении node js, это другая история. Мы не занимаемся минимизацией и размером файла. Создание целых приложений в узле, сборка систем, сайтов, REST API, есть много вещей, которые можно обнаружить там.

Если мы говорим о мире мобильных устройств, на ум приходит чрезмерная оптимизация. CSS3-ускоренные свойства, анимация, сенсорные события и попытки использовать ту же архитектуру, что и в Интернете с более специализированными компонентами пользовательского интерфейса, - это отличные вещи для начала.

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

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


-1

Я ненавидел JavaScript, пока не обнаружил JQuery. Теперь я люблю это и использую это все время. Наверное, слишком много.


Вы ненавидели DOM и кросс-браузерную совместимость, а не EcmaScript.
Рэйнос

JQuery делает Javascript забавным! +1
Динамичный
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.