Найти тему
Глеб Кудес

JavaScript. Эксурс в дело. Реальный опыт.

Оглавление

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

JavaScript - язык программирования, основной функцией которого, и по сей день, является UI на сайтах. Так же на JS ставят сервера, делают десктоп и мобильные приложения, боты. Язык появился с внедрением веба в нашу жизнь. Сайты тех времен не могли похвастаться интерактивностью. Тогда было решено создать язык, который помог решить это проблему. Склепали его на коленке за пол месяца.

Язык получился, скажем так, не очень. Но это было временным решением.

Нет ничего более постоянного, чем временное.

Так и началась история самого популярного на данный момент языка программирования.

Когда же началась взрывная популярность языка?

Точно сказать не могу. По моему мнению, пиковым моментом можно считать выход стандарта ES6 в 2015 году. Именно тогда язык получил фишки, которые закрепили его позицию в лидерстве языка веба. До этого были (а может и сейчас есть) попытки заменить язык на другой. Не трудно догадаться, чем они закончились. Про ES6 есть множество статей, которые популярным языком объяснят лучше что и как, чем я, так что не будем углубляться в это.

Стоит ли учить язык в 2020?

С точки зрения конкуренции, я должен сказать - нет :)

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

Статистика популярности запросов на Stack Overflow в 2019 году.

-2

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

Оу май, я сделал калькулятор. Я просто бог, так, что тут у нас по резюме на хх...

Новички, которые добились минимальных успехов в JS думают, что этого достаточно, чтобы устроится на работу (И я таким был, не скрываю) Не знаю, настолько ли это плохо. Как минимум стыдно вспоминать это в будущем.

Вот мой опыт: Мне было 19 и JS, к тому времени, я изучал около года. Было много энергии, первый курс. Я сходил на хакатон и курсы от одной компании. Обещали, что лучшие получат оффер (таким я себя и расценивал). Однако... я не прошел собеседование в и дико этим возмутился и раздосадовался. Я буквально был в шоке, потому что считал что собеседование прошло хорошо. Не буду скрывать, уже похвастался паре друзей и родителям, в общем поставил все и облажался. Через полтора месяца мне предложили выполнить тестовое задание и еще раз попробовать пройти. Саксесс! Здесь я работаю до сих пор. В первые 2 месяца я хотел спросить своего наставника (aka Человека, который меня собеседовал), поему меня не взяли с первого раза? Но не спросил. Почему? Через 2 месяца и сам понял, что был слишком уж слабым кандидатом.

Что не так с JS?

Пожалуй начну с цитаты.

«Существует только два вида языков: те, на которые жалуются и те, которыми никто не пользуется»
Бьёрн Страуструп, создатель C++

Ох, если бы вы знали, как часто я слышу шуточки по типу: 2+2=22 и тому подобное. Корни этой шутки, я понимаю и не понимаю одновременно. Конкатенация существует и в других ЯП, очевидно вся суть насмешки состоит в том, что JS нетипизирован. Естественно в нормальной среде такое не встречается, я не знаю насколько нужно быть далеким от реального мира, чтобы у тебя получилась ситуация описанная выше. (На самом деле есть множество более интересных особенностей и фишек, которыми можно удивить, в скором времени я опишу их с другой статье)

Основная претензия, кстати, и состоит в том, что JS нетипизированный ЯП. Согласен, не всегда на руку, что язык предоставляет тебе такую свободу. Однако с этой проблемой справляется TypeScript, диалект, призванный улучшить нативный JavaScript. Кроме строгой типизации, в TypeScript еще до ES6 присутствовала реализация ООП и множество других фич. Как это работает? TypeScript компилируется в JS код, который попадает на сайт. Но как же так, почему вещи, которых нет в JS, но присутствуют в TS работают? А никак. То что переменная типа String нужно только при разработке, в самом интерфейсе пользователя это использоваться не будет.

Где же учить JS?

Только ленивый не найдет материалы. Но от себя хочу посоветовать некоторые каналы, которые помогли лично мне:

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

2. CodeDojo. Прекрасный курс для новичков. Начав с него, вы можете продвигаться все дальше и дальше, ведь сложность материала растет с каждым следующим видео.

2. Monster Lessons. Вот тут отдельное спасибо этому человеку, т.к. именно он помог разобраться в свое время с работой Redux у фреймворка React. Подойдет тем, кто решил изучать именно его. (Очень советую именно React)

На этом все, спасибо за внимание, надеюсь статья получилось весьма интересной, а главное познавательной для вас. До новых встреч!