LINUX.ORG.RU
ФорумTalks

Про карьерный рост JS-фронта (и похожего) погромиста

 , , , ,


0

4

По мотивам поста, как subwoofer решил из джава-сеньёров стать начинающим помощником JS-джуна

Когда ты юзаешь джаву или кресты, у тебя всегда есть куда расти. Ты можешь попробовать написать более эффективный алгоритм, и на это скорей всего выделят ресурсов. Можно кусок джавы переписать на С++, а кусок C++ - на ассемблере. Или наоборот джаву переписать в скалу в функциональном виде. Можно переосмыслить работу стандартных коллекций и выжать еще 5% производительности из ArrayList. Можно попробовать распараллелить последовательное, векторизовать невекторизованное, переложить что-то на GPU, итп. В конце концов, если очень ленивый, можно экспертно выучить какой-нибудль фреймворк типа Hibernate, чтобы мочь решить сложные моменты когда он тормозит.

Last but not least - с каждым дополнительным скиллом растёт твоя зарплата (если ты вовремя меняешь место работы на такое, где твои тайные знания могут потушить пожар или починить эпический факап).

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

Что касается серверной стороны, то почти никакой пограмист например на Ruby понятия не имеет как устроены внутри стандартные коллекции, а чтобы полезть внутрь и что-то затюнить и починить - погуглил сейчас в гугле, вакансий не ищется. Многопоточности нигде нету - в JS по дизайну языка, Руби и Пайтон это либо GIL, либо убогий однопоточный шедулинг. С сетью на нижнем уровне не поработаешь - как правило ты гвоздями прибит к уже оформленному хттп риквесту. Вообще ни с каким железом не поработаешь..

В чем тогда духовное совершенствование?
Что нужно молиться, поститься и задрачивать, чтобы вокруг тебя начал гореть нимб Абсолютного Экспертного Знания твоей платформы, как на иконах у святых?

И как повышать зарплату, если от тебя постоянно хотят решения типовых задач типовыми способами?

★★★★☆

Последнее исправление: stevejobs (всего исправлений: 2)

Ответ на: комментарий от foror

Сколько весит хеловорд на scala.js?

Собрал только что scalajs-tutorial, 10 кб. Заранее скажу, что если ты из тех, кто считает байтики, то этот инструмент не для тебя.

И какие инструменты для дебага scala.js?

Мне хватает chrome dev tools, но дебаг довольно редок.

HTML5 API из коробки или нужно на MDN бегать?

А когда-то был не из коробки?

shahid ★★★★★
()

Многопоточности нигде нету - в JS по дизайну языка

Ой какая у тебя лютейшая некомпетентность.

Многопоточность в js обязанность рантайма. А не языка. В браузере есть треды. И есть возможности передачи блоков памяти ез копирования их.

В будущей спеке есть дополнительные примитивы для синхронизации.

int64
()

По мотивам поста, как subwoofer решил из джава-сеньёров стать начинающим помощником JS-джуна

А где ссылка на драму?

Solace ★★
()
Ответ на: комментарий от shahid

Собрал только что scalajs-tutorial, 10 кб. Заранее скажу, что если ты из тех, кто считает байтики, то этот инструмент не для тебя.

10Кб это нормально, но что именно в этих 10Кб? Скаловские структуры данных?

А когда-то был не из коробки?

HTML5 API там поверхностный, сейчас делаю подобную либу для Java и многие методы Chromium движка отсутствуют, я уж не говорю о кастомных методах IE/Edge.

Куцая поддержка EcmaScript 2015... Может быть это и хорошо для тех, кто не имеет опыта работы на JavaScript - огородиться через scalajs и жить в куцем уютненьком мирке. Но такие разработчики теряют фичи современных браузерных движков.

А для меня это неприемлемо, т.к. я хочу делать приложения для Chromium движка и мне нужные все его HTML5 фичи...

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)

Не переживай, щас завезут wasm и будет куда развиваться. Будет эпоха перемен в квадрате ) Может к нашей старости w3c api и стабилизируется )

foror ★★★★★
()
Ответ на: комментарий от alpha

Каким образом эту задачу решает язык программирования?

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

netam
()
Ответ на: комментарий от netam

методики определения нужного количество прогеров, управленцев и реалистичной оценки сроков реализации.

даже не знаю что в комментарии к тебе написать

Deleted
()
Ответ на: комментарий от foror

10Кб это нормально, но что именно в этих 10Кб?

Сходи по ссылке, собери, глянь, расскажешь нам.

сейчас делаю подобную либу для Java и многие методы Chromium движка отсутствуют, я уж не говорю о кастомных методах IE/Edge.

Никто их и не обещал. Фасад к этим трём с половиной нестандартным методам налабать можно за 10 минут вместе с перерывом на чай.

Куцая поддержка EcmaScript 2015

Тщорт, а я ES6-классы под react уже собирал. А вот оно как, оказывается...

фичи современных браузерных движков
для меня это неприемлемо

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

shahid ★★★★★
()
Ответ на: комментарий от foror

щас завезут wasm

Там до сих пор DOM и GC только в идеях.

Будет эпоха перемен в квадрате )

scalaJSOutputMode := OutputMode.WASM

shahid ★★★★★
()
Ответ на: комментарий от netam

У меня? Фи, как ты такое мог подумать!

Пока приклеил «верит в мифический человекомесяц», вроде достаточно емко и пасхалка есть.

Deleted
()
Ответ на: комментарий от netam

А Scrum, Agile, CI, микросервисы и вот это вот всё - это типа не те технологии, которые создавались как замена неработособных и погибающих под собственным весом твоих «реалистичных методик оценки»?

alpha ★★★★★
()
Ответ на: комментарий от alpha

А Scrum, Agile, CI, микросервисы и вот это вот всё - это типа не те технологии, которые создавались как замена неработособных и погибающих под собственным весом твоих «реалистичных методик оценки»?

Поэтому и имеем в итоге, словами ТС:

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

netam
()
Ответ на: комментарий от netam

Что, во-первых, никак не определяется языком реализации. Поскольку относится к современной Java-разработке ровно в том же объеме, как и к любым другим языкам.

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

alpha ★★★★★
()
Ответ на: комментарий от alpha

грязно и погано, зато быстро» в крупных legacy-проектах видна на каждом шагу.

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

netam
()
Ответ на: комментарий от shahid

Сходи по ссылке, собери, глянь, расскажешь нам.

Да мне это не нужно, но будучи пользователем scala.js глянул бы изначально.

Никто их и не обещал. Фасад к этим трём с половиной нестандартным методам налабать можно за 10 минут вместе с перерывом на чай.

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

Тщорт, а я ES6-классы под react уже собирал. А вот оно как, оказывается...

Код у тебя примерно так выглядит https://github.com/tastejs/todomvc/blob/gh-pages/examples/scalajs-react/src/m... и как - глаза не вытекают? Жаль мне заказчика и будущий саппорт этого кода.

foror ★★★★★
()
Ответ на: комментарий от shahid

Там до сих пор DOM и GC только в идеях.

Потому что он делается не для этого изначально. Это если и будут делать, то еще не скоро.

scalaJSOutputMode := OutputMode.WASM

В скалу ручное управление памятью завезли?

foror ★★★★★
()
Ответ на: комментарий от Deleted

Можно чтобы друг у друга проверяли. Во-первых каждому не так обидно, потому что можно отыграться :), во-вторых скилы растут.

Vit ★★★★★
()
Ответ на: комментарий от Vit

дык, и получаем ответ вида «я все правильно сделал, мне так удобнее читать», не может дето и работает но пока не попадалось

Deleted
()
Ответ на: комментарий от Deleted

А, ну я как всегда тред не читал же.

я все правильно сделал, мне так удобнее читать

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

Вариант, что обезьяна ты, я не рассматриваю. Потому что ты белка :)

staseg ★★★★★
()
Последнее исправление: staseg (всего исправлений: 1)
Ответ на: комментарий от Deleted

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

Ну еще линтером + CI требования к coding style подкручиваются.

Vit ★★★★★
()
Ответ на: комментарий от foror

Это вопрос филосовский. Если ты осваиваешь новый язык Х, и пытаешься на нем писать как на привычном Y, то конечно будут проблемы.

Vit ★★★★★
()
Ответ на: комментарий от alpha

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

Vit ★★★★★
()

Стиви, у тебя половина аргументов - оптимизация производительности. Дык на яваскрипте тоже можно развлекаться написанием быстрого кода. Быстрого - это который сравним по скорости с сишечкой.

А задачи типа парсера макдауна - вполне творческие и от языка не зависят.

Vit ★★★★★
()
Ответ на: комментарий от Deleted

какие мы нежные! у меня сейчас горящий по срокам проект, который еще надо переделать на firebase database. код до меня писала девочка, совершенно не понимающая что такое ООП, но невероятно трудолюбивая! а когда я спросил зачем в проекте нужна булева переменная bugFix, она ответила «не знаю» (с)

der_looser ★★
()
Ответ на: комментарий от alpha

Ядро

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

der_looser ★★
()
Ответ на: комментарий от ioway

Не, там только два последовательных порта

порта там три. еще есть два переходника. посмотри видеоуроки!

der_looser ★★
()
Ответ на: комментарий от Deleted

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

der_looser ★★
()

Руби и Пайтон это либо GIL,

Дальше читать нет смысла. Тут есть такая лакмусовая бумажка. GIL - человек дурак

dmxrand
()
Ответ на: комментарий от Vit

Стиви, у тебя половина аргументов - оптимизация производительности.

Ну он чушь несет. Что его читать

dmxrand
()

Ты СОВЕРШЕННО не понимаешь в чем суть JS. JS это не раби «о, привет чуваки, зацените я слепил три гема и получился блог, гыгы». JS это не псевдофункциональный код питона. JS это не C#, Джава или ПХП. JS это язык, на котором люди могут побыть программистами-творцами — ужасными, поехавшими, ненормальными чудовищами, которыми они на самом деле и являются.

Добавили промисы, а мы смеемся. Присыпали сахаром прототипы и назвали классами, а мы смеемся.

Три тимлида прыгнули с крыши 16-этажного дома, взявшись за руки после попытки разгрести код с тридцатикратной вложенностью, а мы смеемся и просим еще. Промисы, колбэки, асинки/авайты — мы смеемся. Модульность, асинхронность, непрерывная интеграция, юнит-тестирование, key-value хранилища, два десятка фреймворков на любой вкус — мы смеемся. GitHub позволил писать приложения на десктопе, запихивая в каждый хеллоуворлд отдельный браузер — мы смеемся. Мы бездушно подпишемся под чем угодно, наши предпочтения не основаны на здравом смысле, бесцельные споры — наша стихия, мы — истинное лицо современного IT.

int64
()
Ответ на: комментарий от unt1tled

про обезьян соглашусь.

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от Deleted

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

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

нет, архитектором «случайно» стать нельзя.

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

Deleted
()
Ответ на: комментарий от Harald

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от Deleted

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от unt1tled

Проблема JS в том, что у него нет альтернативы. Жрите что дают.

RazrFalcon ★★★★★
()
Ответ на: комментарий от shahid

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

А потом у меня сайты тормозят...

RazrFalcon ★★★★★
()
Ответ на: комментарий от ritsufag

У тебя неправильный кот. Вот я иногда забываю залочить компьютер и обнаруживаю потом у себя в vim'е кошачий код на C++, или perl.

DELIRIUM ☆☆☆☆☆
()

Про карьерный рост

написать более эффективный алгоритм
джаву переписать в скалу
переосмыслить работу стандартных коллекций

где тут карьера? тут дроч какой-то беспонтовый.

как повышать зарплату, если от тебя постоянно хотят решения типовых задач типовыми способами?

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

а пост --- тупак какой-то, жобэ на вас нет.

Rastafarra ★★★★
()
Ответ на: комментарий от Rastafarra

научишься их решать лучше всех --- будешь урководить. и дальше и выше. это и называется «карьера».

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

alpha ★★★★★
()
Ответ на: комментарий от foror

глаза не вытекают?

С чего конкретно им вытекать?

Да мне это не нужно,
Ну может быть, но мне интересно

Ты же просто обыкновенный мозгоклюй, без какой-либо конкретики, каким и был при прошлых разговорах.

Жаль мне заказчика и будущий саппорт этого кода.

Взгляд раба, беспокоящегося за своего хозяина.

> WASM
Потому что он делается не для этого изначально. Это если и будут делать, то еще не скоро.

Сейчас WASM — это ASM.js без жирного JS-кодирования исходного бинаря. В контексте топика про JS, WASM это по сути оффтоп, т.к. ничего общего с JS не имеет кроме возможности исполняться в некоторых браузерах.

В скалу ручное управление памятью завезли?

Разжевываю: когда WASM станет нужен (появится DOM, GC, остальное), то одни побегут всё переписывать, другие просто пересоберут.

shahid ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.