Долгожданное интервью с Senior JavaScript Developer – Макс Дикун. В выпуске раскрыто очень много вопросов о том, что такое JS, какие у него есть плюсы и минусы, как и куда развиваться в рамках этого языка и всего его технологического зоопарка вокруг него.
Заваривайте чай, будет интересно 😉
Аудио-версия выпуска: http://bit.ly/2We9oCm
Макс в LinkedIn: http://bit.ly/2WfMMBC
Блог Макса: http://bit.ly/2Mw6owF
Надежный Оператор Михон: http://bit.ly/mihon
Ссылки из выпуска:
Блог Дуалити: http://2ality.com
Гарри Поттер в озвучке Фрая: https://amzn.to/2CE2nlu
Курс по алгоритмам. Часть 1: http://bit.ly/2CLsy9M
Курс по алгоритмам. Часть 2: http://bit.ly/2Dvi9km
Курсы по JS от “GENESIS”: http://bit.ly/2NnwLFw
P.S. Спасибо коворкингу “Имагуру” за предоставление места для съемок: https://goo.gl/oAgR4n
_______________________________________
АЙТИБОРОДА В ИНТЕРНЕТЕ:
🔹 Сайт – https://itbeard.com
🔹 YouTube – https://www.youtube.com/itbeard
🔹 SoundCloud – https://soundcloud.com/itbeard
🔹 Discord – https://s.itbeard.com/discord
🔹 Telegram – https://t.me/itbeard
🔹 Instagram – https://instagram.com/itbeard
🔸 Стать спонсором – https://www.youtube.com/itbeard/join
_______________________________________
00:00 – Начало
01:02 – Как попал в IT и где работал
04:10 – Почему выбрал JS
06:42 – На чем пишут мобильные приложения на JS
07:04 – Десктопные приложения на JS
07:50 – Игры на JS
09:16 – Низкий порог – проблема?
10:04 – React vs Vue vs Angular vs Ember?
12:20 – Строгая типизация
12:40 – Про redux
14:37 – Что такое Node
16:05 – О Webpack
17:10 – Как писать backend на JS
19:22 – О нагруженных системах на JS
21:15 – Подробнее о cordova
22:38 – Про тесты
23:23 – Про минусы cordova, мобильные приложение и PWA
24:28 – О ServerWorkers
26:36 – О минусах JS (об отсутствии типизации)
28:55 – Об ООП
29:20 – О версионировании JS
30:13 – Что такое babel
31:17 – О use strict
33:07 – Классные штуки в JS
36:24 – Об asyncawait
37:45 – Идеальный стек и что если не JS
40:14 – Про специализации в JS (web developer VS js developer VS full-stack developer)
44:58 – О верстальщиках
47:49 – О JQuery
49:15 – Про необходимые навыки для джуниора
54:14 – Откуда брать инфу начинающим (сайты и книги для джунов)
57:57 – Как стать Senior
1:05:46 – Про профессиональные застои (или как развлекаться иммутабельным Red-Black деревом)
1:08:50 – Книжки для Senior’s
1:13:14 – БЛИЦ (по началу хардкорный)
#айтиборода #js #javascript
Таймлайн для тех, кто в теме:
01:02 – Как попал в IT и где работал
04:10 – Почему выбрал JS
06:42 – На чем пишут мобильные приложения на JS
07:04 – Десктопные приложения на JS
07:50 – Игры на JS
09:16 – Низкий порог – проблема?
10:04 – React vs Vue vs Angular vs Ember?
12:20 – Строгая типизация
12:40 – Про redux
14:37 – Что такое Node
16:05 – О Webpack
17:10 – Как писать backend на JS
19:22 – О нагруженных системах на JS
21:15 – Подробнее о cordova
22:38 – Про тесты
23:23 – Про минусы cordova, мобильные приложение и PWA
24:28 – О ServerWorkers
26:36 – О минусах JS (об отсутствии типизации)
28:55 – Об ООП
29:20 – О версионировании JS
30:13 – Что такое babel
31:17 – О use strict
33:07 – Классные штуки в JS
36:24 – Об asyncawait
37:45 – Идеальный стек и что если не JS
40:14 – Про специализации в JS (web developer VS js developer VS full-stack developer)
44:58 – О верстальщиках
47:49 – О JQuery
49:15 – Про необходимые навыки для джуниора
54:14 – Откуда брать инфу начинающим (сайты и книги для джунов)
57:57 – Как стать Senior
1:05:46 – Про профессиональные застои (или как развлекаться иммутабельным Red-Black деревом)
1:08:50 – Книжки для Senior's
1:13:14 – БЛИЦ (по началу хардкорный)
По классике вам лайк от СЕООНЛИ
А что на счёт webassembly?
Отличное интервью! Интересный собеседник и профи-ведущий, вопросы четкие! Спасибо!😀
Спасибо за видео. Даже спустя 3 года интересно было посмотреть.
Ну и доебался же за фулстэк🤦♀️
Очень приятный гость, крутой и афигенный
Redux, mobx, flux можно хоронить, есть отличнейшая альтернатива, без головной боли – Zustand
Шикарный собеседник, респект за конкретные ответы без воды!
Аплодирую стоя.
– У нас 150 человек и нет верстальщика
– повисшая неловкость ну этим тоже можно жить…
Есть-есть корреляция между лингвистикой и программированием. Есть книга известного лингвиста и философа Ноама Хомски "Синтаксические структуры", которая повлияла на научную картину в целом и на разработку языков программирования в частности. Я когда изучал немецкий и французский понял (так, для себя), что язык примерно на 70 процентов – математика.
почему такая превьюшка)))
Очень противоречивое ощущения от видео.
С одной стороны, заявлен Senior JavaScript Developer, с другой стороны
Макс Дикун не просто плавает в спецификации, но нередко ей прямо ей
противоречит. Часто, совершенно неправильно транслирует фундаментальные
основы языка.
Судите сами:
00:20:00 По тестам, JS в два три раза медленнее чем Си
Современный JavaScript состоит из двух фундаментальных вещей:
Ignition – это интерпретатор языка JS в внутренний байткод V8. Большинство JS кода,
выполняется в этом режиме. В этом режиме, совершенно очевидно, что сравнение
интерпретируемого языка с компилируемым отличается в десятки и сотни раз.
TurboFan – это оптимизирующий компилятор, который при выполнении некоторых условий,
части байткода преобразовывает в эффективный платформо-зависимый код.
Код, который генерирует оптимизирующий компилятор в большинстве случаев работает
с производительностью не хуже чем Си. А учитывая тот факт, что в случае Си, оптимизация
кода, лежит в основном на плечах программиста, нередки ситуации, когда аналогичный код
на JS может выполняться и в 10 раз быстрее – по одной простой причине: современная среда
выполнения кода стала настолько сложной, что далеко не каждый программист, который
программирует на низкоуровневом языке имеет представление о всех вариантах оптимизаций.
В отличии от программиста, в задачи которого входит только этим заниматься. В результате чего
TurboFan как оптизирущий компилятор, содержит в себе массу специально спроектированных
под конкретные платформы оптимизаций. И делать он это может эффективно еще и потому,
что JS обладает большим уровнем абстракции, позволяющих программисту,
планирующему оптимизации чувствовать себя намного свободнее.
В отличии от языка Си, где компилятор может себе позволить только низкоуровневые оптимизации,
без серьезных улучшений больших блоков кода.
Это не значит что язык Си хуже чем JS. Это значит, что есть целый ряд условий, когда
JS может оказаться быстрее чем код на Си в силу того, что Си может быть в любых
руках от которых и будет зависеть его производительность. В отличии от JS кода, где зависимость от
прямых рук JS программиста намного меньше.
00:20:22 Там же один поток всегда, там очередь событий
Макс Дикун очень давно не открывал спецификацию. Треть которой сейчас посвящена
тредам, хостам, shared memory между тредами, атомик операциям и так далее. Что как бы
намекает на то, что пора бы уже забыть миф про одно-поточность.
Это тем более забавно, что Макс упоминает Service Worker-ы. Которые работают всегда в отдельном
треде. Более того, работают без остановки даже в случае если родительский тред благополучно умер.
Более того, могут работать даже тогда, когда пользователь закрыл браузер.
Как можно знать о SW и не знать такой очевидной вещи я не очень понимаю.
Кроме этого, Макс Дикун не знает, что евент луп, никакого отношения к JS не имеет. Это
часть спецификации html5. В самом JS никакого event loop нет и быть не может. Там есть
Jobs Host Realm что вообще не Event Loop.
00:26:30 Почему так много Chrome у них там никакие авторские права не заявлены?…
Много не Chrome, а V8. Это среда выполнения JS. Которая уже много лет является безусловным
лидером как в производительности так и в возможностях, и встраивания в том числе.
Фактически сейчас нет разумной альтернативы V8. Ни Core JS ни Spider Monkey не могут
конкурировать по совокупности признаков с V8.
00:27:49 Статическая типизация
Проблемы статической типизации с точки зрения организации процесса контроля за работой
программиста решены в JS больше 12 лет назад. При условии что он использует кложуру, флов и прочее.
Проблема статической типизации стоит сейчас так остро не в плоскости программирования,
а в плоскости оптимизации кода который выполняет runtime. Именно динамические типы
тянут сейчас за собой массу кода для отслеживания статистики использования типа,
оптимизации его, контроля за корректностью, леоптимизацией и прочей хрюканины,
которая исчезает с появлением статической типизации. И делает код не только быстрее в разы,
но и снижает накладные расходы на обеспечение его работы.
00:34:45 var-ы я не использую, потому что это старая вещь и она неправильно
работает с областями видимости
В JavaScript существует две, концептуально разные области видимости –
variable enviroment и declaration enviroment.
Variable enviroment, существует с момента появления языка и содержит в себе
идентификаторы, обьявляемые при помощи variable statement и/или function expression.
Громаднейшее количество языков, так же как и JavaScript используют только такую область видимости.
Между тем, в JS в es5 была добавлена declaration enviroment, в которую попадают идентификаторы
заявленные благодаря тем самым let и const. При этом стоит понимать, что declaration enviroment
это фактически та же variable enviroment с уточнением. И если посмотреть в код того же V8, то
можно увидеть, как он абсолютно одинаковым способом работает что с var что с let/const с той лишь
разницей, что к коду добавляет дополнительные проверки контроля блока.
Как первая так и вторая enviroment существуют параллельно, и никому в здравом уме не придет
в голову называть первую устаревшей, а вторую дескать новой. Потому что вторая (declaration) по сути
своей является тем же самым кодом что и первая с дополнительной проверкой блока.
Вместо ИГОГО
Дальше комментировать сил уже нет. Откровенно говоря, подобные специалисты не проходят
на моих собеседованиях дальше Junior. И то под честное слово через неделю прийти на пересдачу.
Один орет, другой что-то бормочет себе под нос.
Словно собеседование с собой смотрю, пхп, джиэс, кордова ещё джквери забыл и дельфи? Ардуину?
Такой позитивный и приятный человек👍
Кто может объяснить почему он не использует "var"?
Оу, тут у Бороды есть волосы
Нтересно:совместимы ли такого типа специалисты с отцовстом?
Лол, я именно и купил книгу js для детей)))
Есть возможность сделать и это новое интервью (про JavaScript) с человеком, который умеет рассказывать о своей работе? Увы, у Макса такая же история, что у Олега в интервью по Python – чувствуется, что человек много знает, но не умеет это подать и рассказать понятным языком. Т.е. с одной стороны, Макса использует в речи очень много профессиональных терминов, которые непонятны новичкам. С другой, рассказ получился очень сухим – каждый ответ краткий, неразвернутый.
Как пример, постараться найти человека типа Тимофея Хирьянова, Андрея Столярова или Вадима Макеева – которые сами с удовольствием рассказывают, только задай им линию разговора. По мне, по JS для начинающих таким человеком мог бы быть Илья Климов – очень хочу интервью с ним
Чем лучше программист тем больше у него борода
Чувак кстати уже в гугл работает
dart/flutter – отлично!
Спасибо!
О, знакомые все лица. Максу привет!
че то головы не пропорциональные. Вы ребята на телефоне снимали?
Вот что JavaScript с человеком делает. Максиму 16 лет. А без рофлов – очень годно. Спасибо.
Спасибо
Спасибо Леха за видосы
Обычная история программиста: …ну я родился с клавиатурой в руках
Очень понравилось, спасибо!
Борода, когда видос с Ильёй Климовым а? Я очень жду вас, организуйте плиз что нить по Вью
"Скипануть вопрос"
Тьфублянах и рукалицо.
Это что, типа знаешь немного аглицкий?
А гость то уже в гугле работает))
Свитер ахуенн*ый 🙂
он такой милый!!!)))
Что было первое? Что было первое?! – Хорошая память! 🙂
JS как первый язык – НЕТ!!!
1:01:41 Да, заметно, что человек из Германии.
Почему большинство программистов не хотят элементарно следить за собой, ну там подстричься, вымыть голову, побриться или сходить к барберу. Ну блин, прийти на съемку с засаленной лохматой головой, для меня это нелогично.
Блин… Меня тошнит от вёрстки. А ЯП я бы поучил. Неужели фронтенд = ЯП + верстка?
Всем js-криптерам: все java scripts для сайтов уже давно написаны, берешь любой и модифицируеш, ничего нового писать не надо.
Есть 10 типов людей: понимающие двоичную систему счисления и не понимающих.
37:12 Опять в кучу мешают асинхронность и многопоточность. Асинхронность и многопоточность – это разные вещи. Async/await – это функции для асинхронного выполнения и не требуют многопоточности. И для C# это работает абсолютно также.
Братик лучше Льони C++ никого нет 😂что что а за свой C++ он порвёт!!! Монстр
Макс – Красавчик !!!!!!!