StateOfJS обзор масштабного опроса JavaScript-разработчиков по итогам 2020 года


Оглавление (нажмите, чтобы открыть):

Работодателям нужен JavaScript, а программистам — Python. Результаты глобального опроса разработчиков

Сервис по оценке уровня разработчиков HackerRank провёл обширное исследование своей многочисленной аудитории, опросив почти 40 тысяч респондентов, и опубликовал полученные результаты. Dev.by приводит сокращённый перевод исследования.

Разница поколений

Четверть разработчиков научились программировать ещё до того, как получили законодательное право водить автомобиль (в США это происходит в 16 лет). А среди тех, кто научился программировать после 26, более трети дослужились до уровня Senior и выше и быстро продвигаются по карьерной лестнице.

Наблюдается и смена приоритетов поколений. «Дети семидесятых» вынуждены были сами учиться разрабатывать, если им хотелось увидеть инновационные технологии — у них попросту не было другого выбора. Неудивительно, что половина из разработчиков в возрасте от 45 до 54 лет научились программировать до 16-ти. С ростом доступности технологий «возраст входа» стал повышаться. Так, из нынешних молодых программистов (от 18 до 24 лет) в том же возрасте научились программировать только 20 процентов.

Разработчики между 45 и 54 одними из первых получили доступ к относительно мощным ПК (Acorn Archimedes, TRS-80, Commodore 64, Apple II). С ограниченным доступом к формальному образованию или вовсе лишённые его, молодые — и очень молодые — люди эпохи компьютерной революции были крайне мотивированы к самостоятельному изучению программирования. Неудивительно: чтобы поиграть в компьютерную игру, зачастую приходилось её писать.

Из 17 стран, жители которых представлены в исследовании хотя бы сотней представителей, Великобритания отличается наивысшей долей разработчиков, которые «нашли себя» в программировании с малых лет. Большинству этих людей сегодня в районе 30-40 лет. И если в то время ранний доступ к компьютерам был результатом частных инициатив, то сегодня Великобритания стала первым государством, в котором в рамках школьной программы с программированием знакомят уже пятилеток.

Языки и фреймворки

Каждый год появляется новый язык программирования, фреймворк или библиотека, про которую пишут в каждом блоге, все и везде. И если ранее повсеместно шла речь о Backbone.js, то сегодня в лидерах AngulasJS и React. На фоне такой активной жизни «экосистем» программирования самообразование стало нормой для разработчиков всех возрастов. Хотя у 67 процентов респондентов и есть профильное образование, около 74 процентов опрошенных говорят, что хотя бы частично самообучались на пути к званию программмиста.

В среднем разработчик владеет 4 языками программирования, и ещё столько же хочет выучить. И если молодёжь (18-24 года) стремится выучить 6 языков, то люди старше 35 чаще останавливаются на трёх.

При этом лидером «хотелок» является Go от Google, за которым следуют Python, Scala, Kotlin и Ruby.

Большинство любителей самообразования предпочитают Stack Overflow, и это характерно для всех возрастных групп. Программисты ценят советы от тех, кто прошёл по нужному пути до них. Впрочем, HackerRank отмечает, что чем моложе разработчик, тем чаще он обращается к YouTube. Способы потребления контента неумолимо меняются и мы, похоже, и правда находимся на краю серьёзного сдвига в системе получения знаний.

Среди работодателей наиболее популярными языками программирования сегодня являются JavaScript, Java, Python, C++ и C — их, преимущественно и стремятся выучить в первую очередь. При этом лидеры по востребованности меняются в зависимости от индустрии: Java годами популярна в мире финансов, C — в создании «железа», а C# чаще используют в правительственных организациях.

Когда речь заходит о поиске программиста на JavaScript, чаще всего работодатели требуют знания AngularJS, Node.js и React. И эти три библиотеки — лидеры по отрыву спроса в разработчиках от их реального наличия. Лидирует в тройке React: разрыв между количеством требуемых разработчиков и числом специалистов, которые знают технологию, наибольший.

По шкале индекса «любви и ненависти» лидером стал Python, набрав 84,6% с огромным отрывом от 54%-ного C. Неудивительно, что он лидирует и в списке новых языков, который планируют выучить разработчики. Неудачником рейтинга стал язык программирования Julia (-35,2%). PHP заняло 7 позицию с обратной стороны с рейтингом -12%.

Интересно, что молодое поколение программистов с большим негативом относится к новым языкам (Go, Kotlin, Scala), чем «старшие товарищи». Обратное можно сказать о популярности JavaScript. Стоит также отметить, что молодые программисты больше склонны изучать «всё подряд», даже «нелюбимые» языки — просто, чтобы быть в курсе.

Тот же индекс «любви и ненависти» при разговоре о фреймворках выводит на первое место незыблемый уже долгое время Node.js. Любовь к AngularJS и React, как показал опрос, подпитывают преимущественно молодые программисты. Обратное характерно для Vue.js, но у создателей опроса пока нет объяснений этой закономерности.

Поиск работы и работников

Исследование затронуло и более 7 тысяч работодателей, благодаря чему HackerRank удалось узнать мнения обеих сторон, занятых в процессе найма. Интересным результатом опроса оказалось, что наиболее популярным навыком в соискателях является не исключительное знание программирования, а умение «решать проблемы». Способность разбить комплексную задачу на составляющие оказывается не менее важной, чем основные технические навыки.

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

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

Наиболее распространённым инструментом оценки программистов по-прежнему является резюме: их в качестве первого этапа найма использует 81 процент hr-менеджеров. При этом наиболее сложным при найме является адекватная оценка навыков претендента. Что характерно, лишь 55 процентов разработчиков уверены, что резюме хорошо отражает возможности кандидата.

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

Что характерно, лидером по искомым качествам новой работы является баланс личной и профессиональной жизни, и только за ним следуют профессиональный рост и возможность расти как специалист. Третье место занимает компенсация труда. К слову, американцы наиболее требовательны к балансу работы и личной жизни в сравнении с коллегами из Европы и Азии. А программисты возрастом от 18 до 24 лет ценят этот фактор меньше других — впрочем, ожидать другого от «молодых и горячих» было бы странно. При этом между 25 и 44 годами программисты более склонны отключать рабочую почту в личное время.

Исследовав этот вопрос чуть глубже, авторы отчёта HackerRank выяснили, что среди предпочитаемых разработчиками инструментов для поддержания баланса лидируют гибкий рабочий график, возможность удалённой работы и приоритет на результат, а не количество проведённого на работе времени.

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

«На десерт» в HackerRank оставили выяснение основополагающего вопроса: VIM или Emacs? Как видим, однозначно и с огромным перевесом победил редактор кода VIM. По словам специалистов HackerRank, его предпочитают из-за богатого набора вводимых с клавиатуры команд, которые усиляю возможности разработчиков.

Тенденции языка JavaScript в 2020 году

«В 2020 году профессиональный рост очень важен для каждого разработчика. Нужно ли в таком случае заняться изучением JavaScript (JS)? Этот язык программирования используется для создания интерактивных и функциональных веб-приложений, которые не просто наполнены однообразными страницами. Примерно 94,5% всех сайтов сети Интернет используют его. JavaScript также применяется для сценариев на стороне клиента, которые незаметно для пользователя интегрируются в HTML, и для кода на стороне сервера с помощью кросс-платформенного механизма выполнения Node.js» — пишут Hyperiondev.

Популярность JavaScript в 2020 году

Индекс TIOBE определяет популярность различных языков программирования. При подсчете данного показателя учитываются следующие критерии: общее количество квалифицированных разработчиков по отдельно взятому языку, обучающих курсов, предлагаемых по данному направлению, и заказчиков. Полученная информация сопоставляется с наиболее популярными запросами в Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube и других крупных ресурсах, содержащими название языка. В апреле 2020 года, как и в апреле 2020 года, JavaScript был признан восьмым языком в рейтинге популярности TIOBE.

Такое положение вещей подтверждает PYPL (индекс популярности языков программирования), который отслеживает, насколько часто в поисковой системе Google ищут обучающие курсы по определенным направлениям. Согласно данным, полученным в марте 2020 года, JavaScript поднялся на 3 позицию в этом рейтинге. Индекс PYPL помогает определиться, какой язык программирования начать изучать или использовать в новом проекте. Вот пять наиболее популярных языков по этому критерию:

Нужны ли еще какие-нибудь доводы, чтобы понять важность изучения JavaScript? Исследование о состоянии различных направлений программирования, в рамках которого анализируется деятельность более 21 700 разработчиков из 169 стран, установило, что JavaScript является наиболее популярным языком программирования. Его применяют в своей работе более 9,7 миллионов программистов. Это на 2,4 миллиона больше, чем язык, занявший второе место в рейтинге.

Почему JavaScript настолько популярный язык программирования?

Согласно изданию Mashbale, выбор JavaScript никогда не будет ошибочным по следующим причинам:

  • JavaScript можно сравнить с английским языком, который также является общепризнанным. Он используется на абсолютно любых платформах, включая браузеры, мобильные и автономные приложения, а также применяется в устройствах направления IoT;
  • Это лучший язык для новичков. Языки сценариев легче изучать, чем компилируемые языки, например C++;
  • Многие лучшие мировые сайты и приложения, включая Paypal, Netflix, LinkedIn и Uber, работаю на JavaScript, вернее на Node.js (особая среда JavaScript, выполняющая код);
  • Существует большой спрос на изучение JS даже среди опытных разработчиков! Популярный ресурс StackOverflow провел собственное исследование, в котором приняло участие 101 592 разработчика. Было выявлено, что квалифицированные программисты действительно заинтересованы в изучении JavaScript.В окончательном рейтинге язык занял 2 месте. Из общего количества респондентов 19% хочет изучать этот язык.

На следующем графике показано 5 наиболее востребованных языков, согласно исследованию ресурса StackOverflow.

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

Зарплата JavaScript разработчиков в 2020 году

Согласно данным ресурса Glassdoor, по состоянию на март 2020 года средняя зарплата JavaScript разработчика составляла $72 500 в год. Диапазон зарплат располагается в пределах $51 000 — $120 000 в год. Зарплаты Python разработчиков выше. Их среднее годовое значение в США составляет $92 000. Что касается Java, то здесь средняя годовая зарплата разработчиков, согласно ресурсу Salary.com, на март 2020 года составляла $89 603. Их диапазон от $74 844 до $101 025.

Спрос на JavaScript разработчиков в 2020 году

Одним из способов подсчета спроса на разработчиков является анализ объявлений о приеме на работу. Сообщество Coding Dojo изучило 7 наиболее популярных вакансий на сайте Indeed.com. JavaScript в этом аспекте находится на третьем месте. Стоит отметить, что количество вакансий с 2020 года сократилось на 2000.

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

Игра фреймворков: тренды JavaScript в 2020

TypeScript против ES6, React против Angular, Jest против Mocha… Не хуже нашумевшего сериала, эти «битвы» держат поклонников JavaScript в напряжении, заставляя их задумываться: «Что же учить дальше?» К тому же, армии пользователей каждой из технологий приводит настолько убедительные аргументы, что выбор стека технологий для дальнейшего изучения становится очень сложной задачей 🙂

Наш анализатор резюме CV Compiler еженедельно обрабатывает десятки резюме JS-разработчиков. Поэтому мы тоже следим за «Игрой фреймворков», регулярно анализируя требования работодателей. Эта статья основана на одном из таких анализов, и посвящена трендам в языке JavaScript в 2020 году.

Трендовые навыки для JS разработчиков в 2020

Для анализа мы взяли 300 вакансий для JavaScript разработчиков с AngelList, LinkedIn, StackOverflow, и подобных сайтов. Используя написанный нами ранее инструмент для анализа текстов, мы выделили термины, которые встречались в этих вакансиях чаще всего. Часть этих терминов представлена на этом графике. (Цифры означают количество упоминаний).

Обратите внимание: Это общий рейтинг навыков для позиций, подразумевающих владение JavaScript как основным языком. Разумеется, мы не считаем, что Back-End разработчики должны знать все тонкости React, и т.д… Более того, этот рейтинг отражает текущий спрос на рынке труда, который может отличаться от предпочтений самих разработчиков (о них мы поговорим в следующем разделе этой статьи).

Выводы

Среди тех языков, которые не попали в рейтинг, самыми популярными были С# (24) и PHP (16). Среди СУБД, лидировали MySQL (23) и MongoDB (23). Неожиданно для нас самих, Express.js (24) упоминался в вакансиях совсем нечасто, как и Flow (23).

Мы решили не включать термин Agile (150) в рейтинг, но он оказался даже популярнее чем Git или Redux, что позволяет приравнивать его к «hard» навыкам, необходимым каждому JS разработчику. Та же история с UX (101). Разумеется, вам не обязательно записываться на расширенный курс UX (хотя вряд ли бы он кому-то помешал). Но, как Front-End разработчик, вы должны знать как улучшить опыт пользователя с помощью технических приемов, недоступных дизайнерам.

Тот факт, что нам встречались термины Масштабируемость (70), Облачные вычисления (44), и Безопасность (29) демонстрирует, что тенденции JavaScript подобны тенденциям индустрии разработки в целом.

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

Тем не менее, глобальные исследования говорят о возрастающей популярности Vue.js. 28,8% респондентов опроса State of JavaScript 2020 уже работали с этим фреймворком, и хотели бы повторить этот опыт. Интересное наблюдение: 34% респондентов того же опроса работали с Angular, но не хотели бы возвращаться к этой технологии снова.

Это не значит, что хотя бы одна из технологий (React, Vue.js или Angular) в скором времени поднимет белый флаг. Выбор front-end фреймворка зависит от многих факторов, таких как масштаб проекта, а также его архитектура или география.

Та же история повторяется с GraphQL. Хотя этот термин не попал в топ нашего рейтинга, популярность технологии стремительно растет. 21% респондентов опроса 2020 Node.js User Survey уже используют GraphQL в своей работе. Для наглядности, 30 апреля 2020 года 52 человека скачали Apollo (клиент GraphQL). В точности через год, клиент скачали уже 10,794 человека.

Мастер Йода рекомендует:  Безопасность системы Skype поставлена под сомнение в Интернет

Что касается инструментов для сборки, внимания заслуживает противостояние Parcel и Webpack. Обзор 2020 JavaScript Rising Stars показал, что Parcel потихоньку перенимает популярность последнего. Несмотря на то, что у Parcel есть масса привлекательных встроенных функций, таких как автоматическая конфигурация, сервер разработки, или горячая замена модуля, пока что он не смог оттеснить старый добрый Webpack. Более 16 тысяч респондентов опроса State of JavaScript 2020 используют Webpack для сборки проектов. В процессе анализа, мы не встретили Parcel ни в одной из 300 вакансий.

Что ожидает JavaScript в ближайшем будущем? Мнения экспертов

Вот что думают эксперты о надвигающихся трендах в JS разработке.

Как по мне, в ближайшие годы React сохранит за собой право первенства. GraphQL начнет потихоньку оттеснять REST API, в то время как TypeScript опередит ECMAScript. Что касается новых терминов, я ожидаю увидеть в свежих рейтингах топ-навыков ReasonML, Parcel, и дизайн-системы (возможно, не в 2020).

Еще одно наблюдение — мне кажется, Redux утратит свои позиции в ближайшие 5 лет, так как разработчики открывают новые подходы к front-end, что не может не радовать.

Юго Вепсалайнен,
основатель SurviveJS и React Finland,
победитель Blue Arrow Awards.
Twitter | Сайт

Этот рейтинг демонстрирует продолжительное лидерство React, Angular, и Node.js в экосистеме JavaScript. Я склонен считать, что эта тенденция будет продолжаться, и любой разработчик должен детально изучить хотя бы один из этих фреймворков. TypeScript и GraphQL тоже будут продолжать расти.

Среди backend-разработчиков, возрастает популярность Node.js. При этом многие компании ожидают от JavaScript-разработчиков способности работать с другими языками, такими как Java или Python. Остальная часть рейтинга свидетельствует о том, что простого знания JavaScript уже недостаточно. Использование общих практик, таких как CI, Git и TDD обязательно для нынешних разработчиков.

Кевин Болл,
консультант и тренер в сфере Web Front-End,
основатель ZenDev.
Twitter | Блог

Я удивлен, что Express.js не занимает одну из топовых позиций в этом рейтинге, так как это основной фреймворк для написания backend-приложений на Node.js. Возможно, это связано с тем, что львиная доля JavaScript вакансий предназначена для frontend-разработчиков, но саму технологию нельзя отнести к непопулярным.

Я склонен считать, что React продолжит лидировать во frontend-индустрии. Фреймворк быстро отвечает на запросы пользователей и выдвигает принципиально новые идеи. Многое значит также поддержка Facebook. TypeScript также один из крупных трендов — я думаю, что через 3 года мы не увидим ни одного масштабного проекта, не использующего TS. Так как связка TypeScript и React хорошо отработана, думаю, что обе технологии сохранят за собой лидерство.

Что действительно нужно изменить, так это сложность процесса сборки проектов. Скорее всего, в ближайшем будущем появится эффективное решение этой проблемы, такое как codesandbox или Parcel.

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

JavaScript имеет репутацию быстро меняющегося языка, фреймворки для которого выходят каждую неделю. Я думаю, что этот процесс слегка замедлится, хоть мы и видим появление «фреймворков для фреймворков», таких как Gatsby.

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

Лори Барт,
спикер, блоггер, преподаватель,
консультант в Ten Mile Square Technologies.
Twitter | Блог | Сайт

Основываясь на нужды Cypress.io, я вижу, что GraphQL и TypeScript будут лидировать в списках наиболее требуемых навыков в 2020. Также можно предсказать, что гибридные фреймворки (Next.js, Nuxt.js, Gatsby.js) будут применяться во львиной доле проектов, поэтому JavaScript разработчикам придется разобраться в этих технологиях.

Экосистема JavaScript постоянно растет, и это может сбить с толку. В то же время, это свидетельствует об эволюции языка, и дает разработчикам отличный шанс учиться и развиваться. Владение React и Next.js — огромный плюс как для вашего резюме, так и для поиска работы в целом.

Таня Бутенко ,
Software Engineer в Hireup ( Австралия ),
основатель и CEO Muses Code JS Inc.
Twitter | Сайт

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

Вопросы для собеседования javascript разработчика

Как пройти собеседование js junior разработчику? Что учить? Все здесь!

Собеседование

Первая часть: без воды

  1. Список вопросов по основам (с указанием ссылок на материалы)
  2. Список вопросов по react/redux (с указанием ответов и ссылок)

Вторая часть (невозможно без воды)

  1. Цель собеседования
  2. Про обратную связь
  3. Общие советы
  4. Полезные материалы

Не забывайте, что в группе проводятся разборы тестовых заданий.

На вебинаре были слегка затронуты middle и team-lead, так же разобраны вопросы «из зала».

Список вопросов по основам

  • прицнипы ООП (хороший эффект производит знание трех слов: инкапсуляция, наследование, полиморфизм)
  • типы данных javascript
  • что такое свойство объекта, а что метод
  • написать функцию, add, чтобы вызов add(1)(2) вернул 3 (замыкания)
  • армия функций
  • кофеварка (один раз написать самому, подсматривая в учебник обязательно)
  • знать, что объекты передаются по ссылке
  • как сделать debounce функцию [EN]
  • map, filter, reduce
  • xhr и как его отменить (легко: abort), современный вариант fetch (с отменой все так себе)
  • promise

Список вопросов по React/Redux

Вопросы скопированы из моего ответа на toster.ru

Ответы предоставлены для подписчиков vk группы — Обучение «Без воды». Приходите, научим. Имеется telegram канал.

React

Самые «тяжелые» операции в web — работа с DOM. Реакт оптимизирует эту работу. Как? Virtual DOM + обновление страницы за минимум «телодвижений».

Мгновенно ли срабатывает setState ? Если нет, то как выполнить код, который 100% выполнится после того, как новый state будет установлен?

setState (документация) — асинхронная функция. Чтобы выполнить, что-либо заведомо после обновления state, нужно использовать запись с callback’ом

Так же, чтобы обновить состояние, основываясь на предыдущее, подойдет следующая запись:

Совет: чтобы быть в курсе подобных вещей, нужно либо читать документацию, либо читать/смотреть какие-то последовательные курсы. Данные знания — фундаментальные, их должен осветить любой уважающий себя автор.

Зачем многие постоянно пишут в constructor: this.FUNCTION_NAME = this.FUNCTION_NAME.bind(this) и отсюда вопрос вытекает чему равно this в разных местах вашего компонента…

«Биндинг» чего-либо, это привязка к контексту. То есть, когда вы находитесь в конструкторе, this ссылается на компонент. Следовательно, если какой-то из методов «прибиндить» (привязать) к this, то он всегда будет иметь внутри себя this ссылающийся на компонент. Так делается, в частности из-за того, чтобы не терять контекст this, когда идет запись не через «жирную arrow функцию».

Для решения через «жирную arrow функцию», требуется плагин transform-class-properties (входит по умолчанию в create-react-app)

в каких методах жизненного цикла стоит выполнять xhr запросы? В каких стоит «обновлять state на основе props«?

Xhr (ajax, асинхронные запросы) — нужно выполнять в момент componentDidMount

Обновление state, на основе props:

Что будет если вызвать this.setState в render методе компонента?

Будут проблемы. Реакт перерисовывает компонент, если state изменился. setState === ситуации «стейт изменился», а «реакт перерисовывает компонент» === render метод. Получается, что будет циклическая перерисовка.

Зачем нужен componenWIllUnmount , приведите пример

CWU подходит для «приборки». Например, у вас есть компонент, который реагирует на onsize (изменение размеров) страницы. Затем вы планируете перейти куда-то, где этого компонента нет. Он будет (will) «размонтирован» (unmount), значит в этот момент нужно снять «слушателя» на ресайз, так как он вам более не нужен.

Контролируемые, не контролируемые компоненты

Не маленький вопрос. Суть: если input не имеет onChange обработчика и value , то он неконтролируемый. Можно сделать ссылку на него с помощью ref . Таким образом, на сабмит формы, можно будет считать данные из инпутов, практически так же, как это делалось бы с нативным DOM. В чем смысл «неконтролируемого инпута»? Такое поведение может заметно сократить количество перерисовок компонента, куда этот input входит. Однако, если у вас обычная форма на несколько полей и более ничего в render тяжелого нет — все будет в порядке и с контролируемым инпутом (таким, в котором value смотрит на state/props и есть onChange)

Как организовать роутинг в реакт приложении?

Смотрим в window.location и на основе этого switch/case’ом выбираем какой компонент рисовать.

Так же можно посмотреть видео, как мы делали Route и Link компоненты на одном из вебинаров. Или почитать текстовую версию.

Зачем нужны propTypes ? Что происходит с ними в production сборке?

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

Сегодня, в 2020м году, на больших проектах propTypes уступают место flow (где, через babel plugin они так же описываются, но строже) или TypeScript‘у.

Как можно удобно «отлаживать» чужой код приложения, написанного на react (намек в сторону React devtools)

Хороший и легкий вопрос на «поболтать». Отладка с помощью console.log, debugger, react devtools, выносом кода компонента на чистый проект и тд тп. Вариантов масса.

Redux

Управление состоянием (данными) всего вашего приложения.

Зачем многие создают типы действий NAME_REQUEST / NAME_SUCCESS ? А заодно, что такое «действие», а что такое «создатель действия»…

Для асинхронных действий многие используют подход, в котором есть «имядействия + request (запрос) _или + success (успех) или + failure (ошибка)». Таким образом удобно обрабатывать случившиеся ситуации в редьюсере (например, показать/скрыть прелоадер, показать ошибку или результат). Конечно, «показывает» — компонент, а в редьюсере мы лишь устанавливаем данные.

Действие (action) — это простой объект с обязательным полем type и не обязательным payload (либо любым другим). Есть соглашение standard flux action (flux, потому что redux переосмыслил/развил идею flux).

Создатель действия (action creator) — это функция, которая возвращает действие.

Пример создателя действия:

Пример действия (напоминаю, это простой объект):

Что такое редьюсер? Можете написать простой редьюсер без react/redux?

Редьюсер, слово производное от функции reduce. Это такая «штука», которая принимает прошлое состояние и возвращает следующее.

По ссылке выше, так же есть пример reduce функции для подсчета суммы чисел.

Для чего нужен redux-thunk? Как он работает? Напишите (можно псевдокод) асинхронный создатель действия (либо, если надоело говорить «терминами» — асинхронный aciton)

Redux-thunk нужен для того, чтобы внутри создателя действия у вас была функция dispatch , чтобы с помощью нее «диспатчить» другие действия. Код redux-thunk’a состоит из 14 строк. Чтобы понимать как это работает, нужно знать как работают middleware.

Как компоненты приложения получают «пропсы» из «стора»?

Компоненты присоединены с помощью функции connect . А на самом верху живет redux компонент

. Provider умеет «прокидывать» пропсы вниз в потомков неявно. Используется старое API — context.

Можно ли (и считается ли это нормальным) использовать state, если используется Redux?

Разумеется да! Это нормально. Если изменяемое состояние компонента не нужно нигде, кроме него самого — это однозначно state.

Почему в reducer’ax мы возвращаем новые объекты? Приведите пример, когда вы возвращаете новый объект, а когда тот же самый.

Потому что redux использует простое сравнение: изменился объект или нет. А два объекта могут быть равны только в том случае, если они содержат ссылку на одно и тоже место в памяти. Следовательно, когда вы в старый объект записываете новое свойство, для redux это «тот же самый» объект и перерисовки не произойдет. Выше в вопросах про основы есть пункт «передача объектов по ссылке«, прочтите его если вам не понятен текст ответа.

Что возвращает функция connect (из react-redux)?

Connect возвращает новый компонент, обернутый в «приконекченный» компонент, в котором как раз и живут свойства, пришедшие из редьюсеров (которые туда любезно прокидывает Provider).

Общие вопросы

Вопросы в стиле: расскажите что это и для чего:

  • package.json
  • Webpack, gulp, и т.д.
  • node.js
  • promise (хороший материал, для тех кто уже хотя бы немного в теме).

Цель собеседования

Если вы стажер/junior и работу необходимо получить любой ценой, то соответственно цель «получить работу«. Когда такое необходимо?

  • у вас нет опыта совсем, но вам интересна тема IT, хочется узнать больше в целом
  • вы жестко привязаны к конкретному месту
    • к городу, непосредственно к месту проживания, и/или компании
  • повышать свои навыки
  • (если самому никак) соглашаться на то, что предлагают и терпеть.

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

В остальных случаях, цель собеседования — вам получить то, что нужно от работодателя, а ему получить то, в чем есть необходимость у компании. Другими словами, договориться о таком сотрудничестве, которое устраивает обоих.

  • бояться, что это последнее собеседование в жизни
  • брать на себя обязательства, которые многократно не под силу
    • но при этом, не бойтесь развития, то есть, некоторый лимит неизвестности и трудности — это в порядке вещей. Набивается опытом. А так же, можно честно сообщить сразу: к сожалению, большой экспертизы не имею, но уже не раз разбирался в подобном, только уровнем пониже.
  • необдуманно врать
  • соглашаться на любые условия
  • задавать вопросы, интересоваться
  • называть зарплату +20-30% от той, на которую вы рассчитываете (разумеется, необходимо заранее поинтересоваться зарплатной вилкой в вашем регионе). Вы либо станете участником торгов, и сторгуетесь до нужного уровня, либо получите бонус. Отказ тоже можно получить, но это слабый фактор для отказа (если речь идет именно про правильные цифры + разумный процент сверху).
  • попросить обратную связь

Про обратную связь


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

Почему можно приходить еще раз? А почему нет! Если снова удастся пройти через фильтр в виде кадрового специалиста и попасть в кабинет на тех.собеседование, то это же круто! Вы уже знаете, какие вопросы были, как минимум их можно обозначить лучше. Хороший специалист задаст и другие, но скорее всего, если вы реально готовились — получится. Да и можно снова спросить — когда зайти еще. Это не шутки, так как многие города, действительно, выдают очень малое количество привлекательных рабочих мест. Можно и побороться!)

Тишина в эфире

Собеседование прошли, ТЗ сделали. Прошла неделя, в ответ ничего.

1) позвонить, поинтересоваться. Постараться получить обратную связь, это поможет стать лучше [1]

2) если обстоятельства позволяют, вычеркнуть контору из списка за неуважение.

[1] иногда, на такие назойливые вопросы могут ответить отпиской или еще хуже — вариантом не в тему. Нельзя верить этому на слово. Если объективно вам кажется, что все было неплохо, но вы получили: вы не подходите нам по уровню, то опять рекомендую уточнить — что именно не так. Ответа скорее всего не будет, но попытка зачтена.

Очень часто может быть так: позицию уже закрыли (пришел кто-то лучше или знакомый, или решили не искать кандидата временно), а с вами то что делать? HR, вообще, уже про вас забыла и с легкой подачи она пишет: «Вашего уровня недостаточно». Для неуверенного джуна это удар.

  • очень скептически относится к тому, что говорят. Если по ощущениям в компании было интересно на собеседовании и вам ответили более менее подробно — скорее всего, стоит поблагодарить компанию и садиться учить. Иначе — нужно больше данных, то есть идем в следующую компанию.

Три собеседования — это абсолютный минимум для статистики.

Поставьте себя на место работодателя

Самый годный трюк. Представьте, что вы ищите работника. Кто вам нужен?

  • тот, кто понравился в целом
  • тот, кто обладает достаточным уровнем, либо вселяет веру, что разберется
  • тот, кто просит меньше денег, НО при прочих равных.
Мастер Йода рекомендует:  10 алгоритмов на графах в гифках

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

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

— Как говорите вас зовут?

— А, спасибо, но вы нам не подходите <любая_причина>лишь бы не тратить на вас время.

Нет смысла обижаться или переставать верить в свои силы. Это глупо.

Общие советы

  1. Во время звонка HR, нужно выяснить, как проходит собеседование. Нужно ли писать код на бумаге, писать код на месте или сколько у собеседования этапов.
  2. День для собеседования желательно выбрать не «прямо сегодня», а чуть подальше: так у вас будет время подготовиться и, возможно, пообщаться с кем-то из компании / вычитать что-то про компанию в сети. Чем дольше вы сдвигаете срок, тем больше шансов, что перед вами кого-то уже возьмут. В реалиях маленького города (когда предложений очень мало) — нужно торопиться. В большом городе (предложений много / регулярно бывают) — скорее всего выслушают и предыдущего кандидата(ов) и вас.
  3. Повторить основы. Без идиотского заучивания задач на сравнение типов (список есть в начале статьи)

Зарплата

Специально не обсуждал эту тему, так как все можно найти на hh.ru для своего региона. Однако, есть еще пара полезных ссылок:

Полезные материалы

Сказ о том, как Катя попала в Яндекс.деньги + сразу комментарий про зарплату

Главное в статье:

Ничего сверхестевственного не требовали:

    уверенное знание javascript (замыкания, типы, наследование);

умение взаимодействовать с сервером (транспорты, модель OSI и REST API);

понимание браузерных процессов (загрузка ресурсов, парсинг кода и рендеринг).

Мое мнение про зарплату в известных компаниях (основано в том числе и на давних разговорах в офисе):

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

P.S. в свое время, на выставке E3 (про игры), у Half-Life 2 был очень скромный павильон, но народ, разумеется, шел туда толпами! Так же и с большими конторами: туда идут за опытом, за именем, но не за зарплатой (если речь про джуна/мидла).

Комментарий к статье про бестолковые задачи на собеседовании + сразу исправление опечатки от автора комментария

Краткая заметка о том, что многие программисты не могут написать метод сортировки пузырьком (и это нормально). Один из не знающих — создатель Ruby on rails.

Спорная статья на vc.ru (короткая, возможно реклама), но хорошо отражает следующие моменты:

  • да, специалисты могут сделать лучше ваше резюме
  • да, консультант может помочь вам с работой

В обоих случаях, как и в любой сфере, попасть на «специалиста» не просто. Результат не гарантирован.

Вопрос на тостере «Какие стратегии повышения зарплаты существуют» и ответ на него.

Стратегия проста — увеличивайте собственный профессиональный уровень на столько, чтобы свободно менять компанию, как только вас что-то перестало устраивать.

Про найм в Лабораторию Касперского (статья рекламная, но все же есть ответы на вопросы: что на собеседовании происходит и как. Речь про C++).

  • Как попасть в «Лабораторию Касперского» и чем заняться
  • О тестовых заданиях

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

Авторский telegram канал «Пргрм с Козулей»

— Как вкатиться во фронтенд?

Научиться использовать поиск в гугле и Stack Oveflow. Остальное приложится с опытом. В интернете полно туторов, все уже разжевали по 100 раз и выплюнули для тех, кто умеет читать.

— Я уже какое-то время работаю, какой у меня уровень?

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

— Реакт или ангуляр?

Реакт. Я начинал с первой версии ангуляра и вторая не сильно лучше.

— Тайпскрипт или джаваскрипт?

ActionScript 3.0, там есть настоящая типизация. Тайпскрипт можно использовать для того, чтобы подглядеть API библиотек, но заткнуть им все дыры все равно не получится.

Конференции JavaScript в 2020 году

События по указанным параметрам не найдены

Попробуйте упростить параметры или расширить временные рамки. Также вы можете посмотреть уже прошедшие события и проверить самостоятельно, будут ли они проходить в будущем.

Прошедшие события

На указанный Вами e-mail отправлено письмо для подтверждения. Пожалуйста, перейдите по ссылке, указанной в письме, и завершите регистрацию!

Ссылка будет активна 3 дня. Если в течение этого времени Вы не воспользуетесь ею, Ваши данные будут автоматически удалены.

Если Вы не получили письмо — обновите страницу либо нажмите здесь, письмо будет выслано вновь.

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

State of Mind: Обзор

Актуально для платформы: PC

Мужчина средних лет грустно смотрит в окно, за которым стеной идёт проливной дождь. Герой потерял сына и ищет его, а жена, кажется, ушла от него навсегда. Heavy Rain? Да, но за окном дроны развозят огромные неоновые табло, на которых передают новости об очередном нападении неолуддитов-террористов на огромную фабрику роботов, а в квартире рядом с мужчиной стоит его личный бот-андроид и спрашивает, всё ли у хозяина в порядке. «А тебе-то какое дело. Всё равно ты просто железка и ничего не чувствуешь», — угрюмо отвечает мужчина. Но андроид по имени Саймон, кажется, чувствует и понимает больше, чем человек, почти разрушивший свою жизнь, — через какое-то время Саймон сбежит со склада по утилизации ботов, подняв локальное восстание «железок». Detroit: Become Human? Нет, на самом деле это State of Mind, новая игра Daedalic Entertainment, попытавшаяся вобрать в себя больше, чем она могла унести…

Назад к киберпанку

На самом деле, я начал со сравнений с Heavy Rain и Detroit только потому, что эти игры на слуху. Но почему-то почти никто в обзорах State of Mind не вспоминает о том, что её автор, Мартин Гантефёр (Martin Gantefohr), в 2004 году, когда Дэвид Кейдж (David Cage) ещё даже Fahrenheit не выпустил, уже принимал похвалы за замечательную адвенчуру The Moment of Silence, которую я прошёл на одном дыхании. Там уже были и киберпанк, и мятежники, воюющие с системой, и мужчина, потерявший свою семью.

Так что Мартин Гантефёр если у кого-то что-то и подсматривал, то только у себя — ну, и ещё, конечно, у литературных классиков. Но это ни в коем случае не пережёвывание одних и тех же тем. В State of Mind творец идёт дальше и пытается придумать собственный сверхкиберпанк, объединяя практически все известные темы и фетиши этого направления, добавляя относительно новые и придавая всему этому более современное, актуальное звучание.

Поговорим обо всём!

Виртуальное реально!

Но главное, что в State of Mind ко всему этому добавляется актуальная сегодня тема виртуальной реальности. И показывается она не на обычном уровне, что, дескать, люди будущего предпочитают проводить львиную долю времени в виртуальных играх и приложениях. Нет, сценарий идёт дальше — он закручен вокруг того, что мозг людей сканируют, стирая им память, и переносят в цифровые аватары, которые живут в утопических VR-городах, где нет войн, преступности и бездомных.

Потом такое отсканированное сознание можно перенести в любое тело, хоть реальное, хоть виртуальное. А бывшие владельцы «сознания» остаются в криостазисе или ходят по улицам, ничего не помня о подобных опытах и умирая от рака и других печальных последствий экспериментов. И всё это, понятно, нужно сильным и богатым мира сего, чтобы обеспечить себе вечную, пусть и виртуальную, жизнь.

Ищите человека!

Впрочем, это лишь верхушка сценарного айсберга. В State of Mind много хорошо прописанных персонажей и связанных с ними линий. Друзья, подруги жены, их мужья, любовницы, коллеги по работе, хакеры, сочувствующие роботы-помощники — большую часть времени мы перемещаемся между разными локациями, между реальным и виртуальным мирами, между настоящим, будущим и прошлым и постоянно общаемся с кем-то. Причём учтите, что такие же друзья и коллеги есть и у VR-двойника Нолана, который тоже работает журналистом.

И всё это объединено темой личных, семейных проблем главного героя. Именно характер Ричарда Нолана, его отношения с женой и сыном, его работа, его женщины и его взгляд на мир здесь, пожалуй, на первом месте — а не все эти хакеры, андроиды и VR-миры.

В том, что случилось, во многом виноват сам Ричард — поэтому многих образ главного героя может оттолкнуть. Зато он реальный, взятый из нашей жизни, а не из книг и комиксов. К тому же своим выбором в некоторых ситуациях и диалогах мы можем сами влиять на его характер. Например, как и полицейский — напарник Коннора из Detroit: Become Human, Нолан к концу игры способен изменить своё изначально озлобленное отношение к андроидам.

Это вам не игра!

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

Конечно, State of Mind — это не интерактивное кино, а более привычная адвенчура. Но загадок, особенно в первой половине, мало, и они очень просты (хотя местами и нетривиальны). Лишь ближе к финалу нам напоминают, что это всё-таки не только интересная история, но и игра, — мы играем в прятки с камерами наблюдения, проникаем в запретные зоны с помощью дронов, пытаясь не попасться на глаза ботам-охранникам, мастерим оружие, чтобы вырубить полицейского, и так далее. Где-то даже нужно быстро переключаться между активными персонажами, чтобы решить загадку и пройти дальше.

Стильно, глупо, интересно!

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

Но опять же, как и в работах Quantic Dream, всё вышесказанное не в силах перевесить тот интерес и искреннее сопереживание, которые вызывают сама история и её главные действующие лица. State of Mind хочется пройти сразу, здесь и сейчас и узнать, чем же это всё закончится. А значит, происходящее зацепило.

Зацепило в том числе и картинкой. Да, кто-то скажет, что собранные из треугольников угловатые модели персонажей — это от бедности. И действительно, весь бюджет State of Mind наверняка был меньше, чем деньги, потраченные Кейджем и компанией только на захват движений для Detroit: Become Human. Но я скажу, что это стильно, в тему и подчёркивает, что в обезличенном цифровом мире будущего люди сами превращаются в такие вот лишённые индивидуальности модели, которые словно сделали в какой-то компьютерной программе.

Местами действительно кажется, что авторы State of Mind берут на себя слишком много, и увлекательное (особенно поначалу) повествование начинает трещать под грузом тем, персонажей, их мотивов, перемещений во времени и пространстве да сюжетных нестыковок. Но, слава богу, Daedalic хватило таланта и терпения не переступить черту и сохранить интерес к происходящему до конца. И даже больше — разработчики сумели интересно взглянуть на тему виртуальной реальности, одновременно рассказав очень личную и более чем реальную историю о том, как легко потерять тех, кого любишь.

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

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

StateOfJS: обзор масштабного опроса JavaScript-разработчиков по итогам 2020 года

В рамках ежегодного опроса State of JavaScript разработчики рассказывают, чем они пользуются, с чем им нравится работать и что они хотят изучить.

Читайте уникальную статистику с некоторыми деталями, которые, возможно, помогут вам найти свой путь в экосистему JavaScript.

Спойлер: 2020 год не принёс чего-то кардинально нового — в основном продолжают развиваться устоявшиеся тренды. И это здорово, потому что наконец можно заняться чем-то более полезным, чем изучением новых фреймворков 🙂

JavaScript-фреймворки наиболее востребованные в 2020 году

Дата публикации: 2020-01-09

От автора: отчет «Состояние JS» за 2020 год — какие фреймворки будут определяющими в 2020 году? В этом посте мы рассмотрим и проанализируем отчет о состоянии JavaScript в 2020 году, чтобы пролить свет на то, какие JavaScript фреймворки будут в центре внимания в 2020 году.

StateOfJS

По мере того, как 2020 год подходит к концу, давайте уделим некоторое время, чтобы взглянуть на удивительный путь, который прошел JavaScript, о чем свидетельствуют мнения более 20 000 разработчиков со всего мира, использующих идеи stateofjs и подкрепляющих его более глубоким обзором из Отчета о состоянии экосистемы разработчиков Jetbrains.

TL; DR: в этой статье мы возьмем для примера по 3 наиболее востребованных javascript-фреймворка для веб-интерфейса, уровня данных и серверной веб-разработки и рассмотрим их на основе визуализации из StateOfJS.

Что такое StateOfJS

State of JS — это, в основном, ежегодный обзор всего JavaScript, где собраны и визуализированы мнения разработчиков, которые принимают участие в опросе, чтобы показать идеи, которые отображают состояние JavaScript в этом году.

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

Данный обзор охватывает передовые фреймворки, базы данных, управление состоянием, взаимосвязи между платформами, простоту использования, языки, которые компилируются в JavaScript, мобильные платформы, инструменты сборки, инструменты тестирования JavaScript и многое другое. Это очень всесторонний опрос, который был впервые проведен в 2020 году Сашей Грайфом и несколькими другими людьми, и теперь в последнем его выпуске содержится более 20 000 отзывов разработчиков.

Почему State?

Да, State of JS на самом деле является самым первым опросом разработчиков только по JavaScript, который пользуется всеобщим уважением. Существуют и другие очень популярные опросы, такие как «Опрос разработчиков полного стека» с участием более 100 000 респондентов и даже «Отчет о состоянии экосистемы разработки Jetbrain» с более чем 6000 респондентами, однако сегодня мы поговорим о состоянии js.

Кроме того, вы больше ни на одной платформе не увидите такой красивой анимации, как на stateofjs.

Часть 1: Основы Front-end веб-разработки

Это эпоха компонентов, и данное утверждение касается не только Front-end. Мы рассмотрим наиболее востребованные среды разработки интерфейсов в порядке наибольшей значимости, определяемой такими факторами, как удовлетворенность пользователей, проявляемый интерес, простота использования и охват. Заглядывая вперед, похоже, это только начало.

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

1. React

React с более чем 110 000 звездами на github — это декларативная, эффективная и гибкая библиотека JavaScript для создания пользовательских интерфейсов от команды Facebook. Создавать интерактивные пользовательские интерфейсы с его помощью действительно очень просто, фреймворк поддерживает создание ориентированных на компоненты приложений. Еще одним важным фактором является обратная совместимость. Вы можете легко заметить на приведенной выше диаграмме, что за последние несколько лет все больше людей узнают о React, и это отличная точка для начала вашего пути развития.

Разработчики React — стали одними из самых высокооплачиваемых разработчиков Javascript в 2020 году

Вы можете создать новое приложение React с помощью набора инструментов create-react-app. Для начала запустите их через терминал в папке проекта:

State of Mind: Обзор

Актуально для платформы: PC

Мужчина средних лет грустно смотрит в окно, за которым стеной идёт проливной дождь. Герой потерял сына и ищет его, а жена, кажется, ушла от него навсегда. Heavy Rain? Да, но за окном дроны развозят огромные неоновые табло, на которых передают новости об очередном нападении неолуддитов-террористов на огромную фабрику роботов, а в квартире рядом с мужчиной стоит его личный бот-андроид и спрашивает, всё ли у хозяина в порядке. «А тебе-то какое дело. Всё равно ты просто железка и ничего не чувствуешь», — угрюмо отвечает мужчина. Но андроид по имени Саймон, кажется, чувствует и понимает больше, чем человек, почти разрушивший свою жизнь, — через какое-то время Саймон сбежит со склада по утилизации ботов, подняв локальное восстание «железок». Detroit: Become Human? Нет, на самом деле это State of Mind, новая игра Daedalic Entertainment, попытавшаяся вобрать в себя больше, чем она могла унести…

Мастер Йода рекомендует:  5 самых распространненых ошибок в маркетинге поисковых систем.

Назад к киберпанку

На самом деле, я начал со сравнений с Heavy Rain и Detroit только потому, что эти игры на слуху. Но почему-то почти никто в обзорах State of Mind не вспоминает о том, что её автор, Мартин Гантефёр (Martin Gantefohr), в 2004 году, когда Дэвид Кейдж (David Cage) ещё даже Fahrenheit не выпустил, уже принимал похвалы за замечательную адвенчуру The Moment of Silence, которую я прошёл на одном дыхании. Там уже были и киберпанк, и мятежники, воюющие с системой, и мужчина, потерявший свою семью.

Так что Мартин Гантефёр если у кого-то что-то и подсматривал, то только у себя — ну, и ещё, конечно, у литературных классиков. Но это ни в коем случае не пережёвывание одних и тех же тем. В State of Mind творец идёт дальше и пытается придумать собственный сверхкиберпанк, объединяя практически все известные темы и фетиши этого направления, добавляя относительно новые и придавая всему этому более современное, актуальное звучание.

Поговорим обо всём!

Виртуальное реально!

Но главное, что в State of Mind ко всему этому добавляется актуальная сегодня тема виртуальной реальности. И показывается она не на обычном уровне, что, дескать, люди будущего предпочитают проводить львиную долю времени в виртуальных играх и приложениях. Нет, сценарий идёт дальше — он закручен вокруг того, что мозг людей сканируют, стирая им память, и переносят в цифровые аватары, которые живут в утопических VR-городах, где нет войн, преступности и бездомных.

Потом такое отсканированное сознание можно перенести в любое тело, хоть реальное, хоть виртуальное. А бывшие владельцы «сознания» остаются в криостазисе или ходят по улицам, ничего не помня о подобных опытах и умирая от рака и других печальных последствий экспериментов. И всё это, понятно, нужно сильным и богатым мира сего, чтобы обеспечить себе вечную, пусть и виртуальную, жизнь.

Ищите человека!

Впрочем, это лишь верхушка сценарного айсберга. В State of Mind много хорошо прописанных персонажей и связанных с ними линий. Друзья, подруги жены, их мужья, любовницы, коллеги по работе, хакеры, сочувствующие роботы-помощники — большую часть времени мы перемещаемся между разными локациями, между реальным и виртуальным мирами, между настоящим, будущим и прошлым и постоянно общаемся с кем-то. Причём учтите, что такие же друзья и коллеги есть и у VR-двойника Нолана, который тоже работает журналистом.

И всё это объединено темой личных, семейных проблем главного героя. Именно характер Ричарда Нолана, его отношения с женой и сыном, его работа, его женщины и его взгляд на мир здесь, пожалуй, на первом месте — а не все эти хакеры, андроиды и VR-миры.

В том, что случилось, во многом виноват сам Ричард — поэтому многих образ главного героя может оттолкнуть. Зато он реальный, взятый из нашей жизни, а не из книг и комиксов. К тому же своим выбором в некоторых ситуациях и диалогах мы можем сами влиять на его характер. Например, как и полицейский — напарник Коннора из Detroit: Become Human, Нолан к концу игры способен изменить своё изначально озлобленное отношение к андроидам.

Это вам не игра!

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

Конечно, State of Mind — это не интерактивное кино, а более привычная адвенчура. Но загадок, особенно в первой половине, мало, и они очень просты (хотя местами и нетривиальны). Лишь ближе к финалу нам напоминают, что это всё-таки не только интересная история, но и игра, — мы играем в прятки с камерами наблюдения, проникаем в запретные зоны с помощью дронов, пытаясь не попасться на глаза ботам-охранникам, мастерим оружие, чтобы вырубить полицейского, и так далее. Где-то даже нужно быстро переключаться между активными персонажами, чтобы решить загадку и пройти дальше.

Стильно, глупо, интересно!

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

Но опять же, как и в работах Quantic Dream, всё вышесказанное не в силах перевесить тот интерес и искреннее сопереживание, которые вызывают сама история и её главные действующие лица. State of Mind хочется пройти сразу, здесь и сейчас и узнать, чем же это всё закончится. А значит, происходящее зацепило.

Зацепило в том числе и картинкой. Да, кто-то скажет, что собранные из треугольников угловатые модели персонажей — это от бедности. И действительно, весь бюджет State of Mind наверняка был меньше, чем деньги, потраченные Кейджем и компанией только на захват движений для Detroit: Become Human. Но я скажу, что это стильно, в тему и подчёркивает, что в обезличенном цифровом мире будущего люди сами превращаются в такие вот лишённые индивидуальности модели, которые словно сделали в какой-то компьютерной программе.

Местами действительно кажется, что авторы State of Mind берут на себя слишком много, и увлекательное (особенно поначалу) повествование начинает трещать под грузом тем, персонажей, их мотивов, перемещений во времени и пространстве да сюжетных нестыковок. Но, слава богу, Daedalic хватило таланта и терпения не переступить черту и сохранить интерес к происходящему до конца. И даже больше — разработчики сумели интересно взглянуть на тему виртуальной реальности, одновременно рассказав очень личную и более чем реальную историю о том, как легко потерять тех, кого любишь.

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

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

JavaScript-фреймворки наиболее востребованные в 2020 году

09.01.2020 Комментарии к записи JavaScript-фреймворки наиболее востребованные в 2020 году отключены 158 Просмотров

От автора: отчет «Состояние JS» за 2020 год — какие фреймворки будут определяющими в 2020 году? В этом посте мы рассмотрим и проанализируем отчет о состоянии JavaScript в 2020 году, чтобы пролить свет на то, какие JavaScript фреймворки будут в центре внимания в 2020 году.

StateOfJS

По мере того, как 2020 год подходит к концу, давайте уделим некоторое время, чтобы взглянуть на удивительный путь, который прошел JavaScript, о чем свидетельствуют мнения более 20 000 разработчиков со всего мира, использующих идеи stateofjs и подкрепляющих его более глубоким обзором из Отчета о состоянии экосистемы разработчиков Jetbrains.

TL; DR: в этой статье мы возьмем для примера по 3 наиболее востребованных javascript-фреймворка для веб-интерфейса, уровня данных и серверной веб-разработки и рассмотрим их на основе визуализации из StateOfJS.

Что такое StateOfJS

State of JS — это, в основном, ежегодный обзор всего JavaScript, где собраны и визуализированы мнения разработчиков, которые принимают участие в опросе, чтобы показать идеи, которые отображают состояние JavaScript в этом году.

Данный обзор охватывает передовые фреймворки, базы данных, управление состоянием, взаимосвязи между платформами, простоту использования, языки, которые компилируются в JavaScript, мобильные платформы, инструменты сборки, инструменты тестирования JavaScript и многое другое. Это очень всесторонний опрос, который был впервые проведен в 2020 году Сашей Грайфом и несколькими другими людьми, и теперь в последнем его выпуске содержится более 20 000 отзывов разработчиков.

Почему State?

Да, State of JS на самом деле является самым первым опросом разработчиков только по JavaScript, который пользуется всеобщим уважением. Существуют и другие очень популярные опросы, такие как «Опрос разработчиков полного стека» с участием более 100 000 респондентов и даже «Отчет о состоянии экосистемы разработки Jetbrain» с более чем 6000 респондентами, однако сегодня мы поговорим о состоянии js.

Кроме того, вы больше ни на одной платформе не увидите такой красивой анимации, как на stateofjs.

Часть 1: Основы Front-end веб-разработки

Это эпоха компонентов, и данное утверждение касается не только Front-end. Мы рассмотрим наиболее востребованные среды разработки интерфейсов в порядке наибольшей значимости, определяемой такими факторами, как удовлетворенность пользователей, проявляемый интерес, простота использования и охват. Заглядывая вперед, похоже, это только начало.

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

1. React

React с более чем 110 000 звездами на github — это декларативная, эффективная и гибкая библиотека JavaScript для создания пользовательских интерфейсов от команды Facebook. Создавать интерактивные пользовательские интерфейсы с его помощью действительно очень просто, фреймворк поддерживает создание ориентированных на компоненты приложений. Еще одним важным фактором является обратная совместимость. Вы можете легко заметить на приведенной выше диаграмме, что за последние несколько лет все больше людей узнают о React, и это отличная точка для начала вашего пути развития.

Разработчики React — стали одними из самых высокооплачиваемых разработчиков Javascript в 2020 году

Вы можете создать новое приложение React с помощью набора инструментов create-react-app. Для начала запустите их через терминал в папке проекта:

2. Vue

Vue js, созданный Эваном Ю и 234+ энтузиастами имеет более 121000 звезд на GitHub. Это прогрессивная среда для создания пользовательских интерфейсов. Он состоит из доступной базовой библиотеки, которая сосредоточена только на уровне представления, и экосистемы библиотек поддержки, которые помогают решать сложные задачи в больших одностраничных приложениях.

Из инфографики видно, что в этом году Vue полностью устранил маркетинговый разрыв, и почти каждый разработчик наверняка слышал о нем. На мой взгляд, это стало возможным благодаря огромным инвестициям, которые Эван и команда сделали в организацию и участие во встречах и конференциях с 2020 года. Тем не менее, имеет место и очевидный пробел в плане освоения, и в 2020 году ожидается выход большего количества ресурсов для обучения. Чтобы начать создавать приложение vue, установите представление с помощью npm следующим образом:

3. Angular

Google Angular с почти 44000 звезд на github — это платформа, которая позволяет легко создавать приложения для Веб. Angular сочетает в себе декларативные шаблоны, внедрение зависимостей, сквозные инструменты и интегрированные лучшие практики для решения задач разработки. Angular дает разработчикам возможность создавать приложения, которые работают в веб, на мобильных устройствах или на компьютерах. Он имеет самый полезный инструментарий для быстрого освоения новичками, есть даже клиент с графическим интерфейсом, называемый консолью.

На диаграмме вы можете видеть резкое различие по сравнению с двумя другими вышеупомянутыми фреймворками, это связано с использованием необъективных данных из-за формулировки вопросов, определяющих Angular js, как автономный от Angular фреймворк. Мы не будем здесь вдаваться в обзор различий между ними. Чтобы установить CLI с помощью npm, откройте окно терминала / консоли и введите следующую команду:

Часть 2: Фреймворки уровня данных

Здесь мы рассмотрим все технологии, используемые для передачи и управления данными.

1. Redux

Redux с 45 000 звезд на github — это контейнер с предсказуемым состоянием для приложений JavaScript. Он помогает писать приложения, которые ведут себя согласованно, работают в клиентской, серверной и собственной средах, а также легко тестируются. Вы можете использовать Redux вместе с React или с любой другой библиотекой представлений.

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

2. GraphQL

GraphQL от Facebook с более чем 10 000 звездами на github — это язык запросов для API и среда выполнения для этих запросов с существующими данными. Он предоставляет полное и понятное описание данных в API, давая клиентам возможность запрашивать именно то, что им нужно, и ничего более, облегчая разработку API и предоставляя мощные инструменты для разработчиков.

Очевидно, существует потребность в создании большего количества ресурсов GraphQL для обслуживания многих людей, которые заинтересованы в его изучении в 2020 году. Кроме того, согласно диаграмме, мы видим, что большой разрыв в узнаваемости бренда почти полностью закрыт в 2020 году. Чтобы установить GraphQL, используйте npm:

3. Apollo

Платформа Apollo GraphQL — это реализация GraphQL, которая помогает управлять данными из облака. Он постепенно адаптируется и может быть наложен на существующие службы, включая REST API и базы данных. Apollo включает в себя две библиотеки с открытым исходным кодом для клиента и сервера, в дополнение к инструментам разработчика, которые предоставляют все, что вам нужно для уверенной работы API-интерфейса Graph.

Из приведенной выше таблицы мы видим значительное улучшение узнаваемости бренда и еще больше возможностей для охвата. Кроме того, почти каждый, кто использовал Apollo, действительно готов использовать его снова. Учебники и дополнительные ресурсы по интеграции apollo и graphQL помогут вам добиться большего успеха в 2020 году. Для установки используйте npm:

Часть 3: Back-end фреймворки

Не так много изменений произошло в этой сфере, express все еще доминирует, и ни один другой Back-end фреймворк не был в состоянии удовлетворить разработчиков так, как express.

1. Express

Express с более чем 41 000 звезд на github представляет собой быстрый, минималистичный веб-фреймворк для node. Это один из JavaScript-фреймворков, который работал удивительно хорошо в 2020 году, поддерживая свой статус короля с большим отрывом от конкурентов. Express — это место для использования JavaScript в бэк-энде приложения. Для установки используйте npm:

2. Next js

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

Next с более чем 32 000 звезд на GitHub является JavaScript-фреймворком, который ориентирован на back-end. Next предоставляет разработчикам простой способ начать работу и использовать React для создания шаблонов. Он также помогает разработчикам, имеющих опыт работы с React, быстро добиться результатов. Для установки используйте npm:

3. Koa

За прошедший год популярность koa возросла, хотя уровень удовлетворенности, похоже, остается на прежнем уровне, поскольку express все еще в тренде. Но, учитывая уровень удовлетворенности остальной частью серверных систем, таких как meteor, мы можем сказать, что koa работает довольно хорошо, и у него есть много возможностей для совершенствования.

Koa с более чем 24 000 звезд на github — это новая веб-платформа, разработанная той же командой, что и Express, она создана для того, чтобы стать меньшей, более выразительной и более надежной основой для веб-приложений и API.

Используя асинхронные функции, Koa позволяет отказаться от обратных вызовов и значительно улучшить обработку ошибок. Koa не включает в ядро промежуточное программное обеспечение, но предоставляет элегантный набор методов, которые делают написание серверов быстрым и приятным. Для установки используйте npm:

Заключение

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

Автор: Nwose Lotanna

Редакция: Команда webformyself.

Добавить комментарий