Обучение программированию требует ОГРОМНЫХ затрат времени и энергии. Новичкам также сложно понять, с чего начать, потому что есть из чего выбирать. Через мой аккаунт в Instagram меня часто спрашивают:

«Какой язык программирования мне следует изучить?»

Я хотел иметь возможность дать лучший ответ, чем «это зависит от обстоятельств», поэтому с помощью этой серии статей Изучение языка я надеюсь создать ресурс, который поможет людям самим решить, на каком языке им следует потратить свое время на обучение!

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

В этой статье мои хорошие друзья Раф и Марти, также известные как @codingcouple, дают обзор JavaScript!

Как долго вы работаете с JavaScript?

Мы профессионально работаем с JS уже больше года. До этого мы изучали его чуть меньше года.

Что заставило вас выбрать работу с JavaScript?

Когда мы начали учиться программировать, мы оба очень интересовались всем, что связано с Интернетом, поэтому JavaScript как язык Интернета казался естественным выбором. С ним также довольно интересно работать - он присутствует в каждом популярном браузере, и вы можете сразу начать кодирование - без довольно запутанных (для новичков) процессов настройки и установки.

Для чего лучше всего подходит JavaScript? Когда кому-то следует подумать об использовании JavaScript для своего проекта?

Как упоминалось выше, JavaScript - это язык Интернета, который чаще всего используется в качестве языка сценариев на стороне клиента для добавления сложных функций в веб-приложения, таких как отображение обновлений контента, интерактивных карт, анимации, графики, видео и т. Д. третий слой веб-торта, великолепно лежащий под HTML и CSS. 😊

Однако с ростом популярности JavaScript люди разработали ряд инструментов и технологий для работы не только с Интернетом. С помощью JavaScript теперь мы также можем создавать серверный код, разрабатывать собственные мобильные приложения (как для iOS, так и для Android!), Создавать кроссплатформенное программное обеспечение для настольных ПК, экспериментировать с VR и AR и многое, многое другое!

Если вы знаете и другие языки, как JavaScript сравнится с ними?

JavaScript относится к синтаксической традиции, заимствованной из языков программирования B, точно так же, как Java, C, C ++, C # и т. Д., И в этом смысле он похож на эти языки.

С точки зрения дизайна и структуры JavaScript было бы лучше всего взглянуть на языки, которые либо повлияли на сам JavaScript, например Scheme с его лексической областью видимости, вложенными процедурами первого и более высокого порядка, либо Self, который дал идею использования прототипа. на основе объектной модели, которая может быть самой мощной функцией JavaScript, или языков, на которые повлиял JavaScript, таких как TypeScript, CoffeeScript или немного более строгий ActionScript.

Есть ли типы проектов / задач, для которых JavaScript не подходит?

Со всеми мощными инструментами, библиотеками, фреймворками и т. Д. JavaScript может стать хорошим решением практически любой проблемы, которую вы можете найти как профессиональный разработчик. На самом деле, дело не в том, что JavaScript не является хорошим выбором, а скорее в том, что некоторые другие инструменты могут быть лучшим решением для конкретных задач. Например, вы можете использовать TensorFlow.js, библиотеку JavaScript, которая позволяет вам определять, обучать и запускать модели машинного обучения, но Python может быть просто лучшим инструментом для этого конкретного набора проблем. Так что, если это ваша область внимания, вам, вероятно, будет лучше с Python. Но если вы веб-разработчик и хотите заняться машинным обучением - что ж, для этого есть инструменты JavaScript!

Что вам особенно нравится в кодировании на JavaScript?

Так много вещей! Это очень, очень универсальный язык, фактически единственный, который можно использовать как полноценный язык полного стека для веб-разработки. Это также мультипарадигмальный язык, что означает, что он может быть тем, чем вы хотите, будь то объектно-ориентированным, функциональным, императивным, декларативным и т. Д.

Хотя некоторые люди это не рекомендуют, вы действительно можете создать целое сложное веб-приложение, используя только один язык. И вдобавок ко всему - JS в ближайшее время никуда не денется. Если вы еще не решили, какой язык изучать в первую очередь, самым безопасным вариантом может быть JavaScript.

Что вас расстраивает при работе с JavaScript? Какие возможные источники боли или разочарования (если таковые имеются!) Должны знать люди, прежде чем они начнут изучать JavaScript?

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

Как бы обидно это ни звучало, в этом есть польза. Как только вы овладеете общими концепциями, подходами и мышлением в программировании, освоение новых инструментов и приемов станет несложным. Это также, в конечном итоге, сделает вас лучшим программистом (если вы будете следовать лучшим стандартам и практикам, что вы, очевидно, делаете!).

Рынок вакансий тоже кажется сумасшедшим. Просматривая предложения о работе, особенно новичок, вы можете легко запутаться во всей терминологии: компании ищут разработчиков Vue, разработчика React, разработчика Angular, разработчика Node, разработчика Electron, список можно продолжать ... просто означает: «мы ищем достойного JS-разработчика», кандидаты могут чувствовать себя отталкивающими из-за технологий, с которыми они еще не знакомы.

Какие инструменты разработчика вы используете при работе с JavaScript? Какие еще инструменты также популярны?

Наши фавориты:

  • IDE: Код Visual Studio
  • отладчик: Chrome Dev Tools
  • менеджер пакетов: npm
  • сборщик модулей: webpack
  • фреймворк для тестирования: Mocha
  • BrowserStack - чтобы проверить, как ваше приложение выглядит и ведет себя в разных операционных системах и на разных устройствах;

Плагины Chrome:

  • Заполнитель форм - автоматически заполняет формы веб-приложений (отлично, если вы работаете над регистрационной частью своего приложения и вам нужно тестировать и не хотите заполнять формы более 20 раз в день)
  • Wappalyzer - проверить, какие технологии используются на понравившихся нам сайтах.
  • Ghostery - для идентификации вызовов API с сайта
  • WAVE, axe и Accessibility Developer Tools - для тестирования доступности.
  • Симулятор зрения NoCoffee - чтобы проверить, как наше веб-приложение выглядит для пользователей с проблемами зрения.
  • Redux DevTools - для отладки изменений состояния приложения при использовании библиотеки Redux.

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

  • Лучшим ресурсом, безусловно, является Mozilla Development Network (MDN). У них есть все - легко читаемая документация, руководства и множество реальных руководств. Не могу порекомендовать больше.
  • Free Code Camp - это бесплатный онлайн-курс для всех уровней, включает не только все основы, но и алгоритмику, структуры данных, отладку и т. Д., Не говоря уже о том, что вы можете получить бесплатную сертификацию!
  • Проект Odin - бесплатные онлайн-курсы веб-разработки с полным стеком, с пошаговыми инструкциями и рекомендациями для многих других бесплатных ресурсов в каждой главе, здесь есть курс JavaScript: https://www.theodinproject.com/courses/ javascript
  • Egghead - набор потрясающих руководств по наиболее популярным фреймворкам, библиотекам и инструментам JavaScript.
  • Udemy - платный, но видеокурсы по разумной цене и очень хорошо структурированы. Из всех интересных курсов JavaScript, которые они предлагают, мы особенно рекомендуем этот: https://www.udemy.com/the-complete-javascript-course/
  • Платформа Google Maps - включает в себя набор очень полезных руководств и лекций, объясняющих, как работает геолокация, службы направления и все остальное. Следуя их предложениям и советам, вы можете создавать множество классных JS-проектов с помощью Google Maps API;
  • Статьи, видео и учебные пособия Wes Bos. Он объясняет и проводит через большинство популярных инструментов, технологий, фреймворков и концепций JS. Мы настоятельно рекомендуем его серию ES6, JS30 Challenge и Learn Node!
  • You Don’t Know JS - серия книг, глубоко погружающихся в основной механизм языка JavaScript. Обязательно к прочтению каждому разработчику JS! Бесплатная онлайн-версия здесь: https://github.com/getify/You-Dont-Know-JS

Какие популярные библиотеки или фреймворки следует учитывать при изучении с помощью JavaScript и что они делают?

  • React + Redux - на данный момент самая популярная комбинация для веб-приложений;
  • Vue.js - JavaScript UI-фреймворк, который, кажется, набирает популярность со скоростью света;
  • Angular 6 - сверхмощная JS MVC платформа. Хотя по умолчанию он использует TypeScript (не JS), мы решили включить его сюда, поскольку мы большие энтузиасты TypeScript!
  • Electron - очень интересный фреймворк для создания нативных кроссплатформенных настольных приложений!
  • React Native - фреймворк, использующий архитектуру библиотеки React для создания нативных мобильных приложений;
  • RxJS - библиотека, позволяющая легко использовать парадигму реактивного программирования с JS, чрезвычайно полезна при работе с архитектурой MVC.
  • Node.js - механизм выполнения для выполнения кода JavaScript вне браузера (сценарии на стороне сервера в отличие от более традиционных сценариев на стороне клиента, упомянутых выше)
  • Express.js - серверный фреймворк для среды Node.js;
  • Mocha и Jasmine - фреймворки для модульного тестирования, удобные для новичков с отличной документацией;
  • TensorFlow.js - библиотека для программирования потоков данных; можно использовать для создания приложений машинного обучения!
  • Synaptic.js - библиотека нейронной сети JavaScript;
  • Платформа Google Maps со всеми ее инструментами, очень удобный стек для разработчиков веб-приложений, очень удобный для новичков, очень мощный, с отличной документацией и поддержкой сообщества;
  • GSAP (GreenSock) - библиотека для JavaScript-анимации (помните ActionScript? Это намного лучше!);
  • CreateJS suite - поддерживаемый Adobe набор библиотек для создания интерактивного контента для веб-приложений. Может заниматься анимацией, анимацией, звуковой инженерией и многим другим!

Что еще вы хотите сказать о JavaScript?

JavaScript - очень мощный и очень универсальный язык, который также очень дружелюбен к новичкам, и у него может быть самое большое и самое полезное сообщество. Очень легко ознакомиться со всеми замечательными (и довольно часто бесплатными) учебными пособиями, доступными в Интернете.

JavaScript также используется большинством компаний по всему миру, и, вероятно, он останется таким еще некоторое время, поэтому, если вы не уверены, какой язык выбрать, и хотите работать с Интернетом ... это будет правильным выбор!

Большое спасибо, Раф и Марти! Где люди могут найти вас в Интернете?

Большое спасибо за чтение! Надеюсь, эта статья оказалась для вас полезной!

Если вы знаете JavaScript и у вас есть предложения по другим ресурсам, о которых следует знать новичкам, не стесняйтесь оставлять их в комментариях!

Скоро появятся и другие языки!

Вы можете найти меня:

Instagram: @martinsoft

Онлайн: https://martinsoft.net

Я также являюсь соведущим @meetupandcode, регулярной встречи в Лондоне для разработчиков с любым уровнем опыта. "Присоединяйтесь к нам!"