Вчера я разговаривал с другом, который ищет разработчика на открытую вакансию. Он выразил некоторое разочарование, которое я тоже испытываю в последнее время:

У меня проблемы с поиском фронтенд-разработчика, в основном, по WP, Foundation, CSS, JS, на низкоуровневую позицию. Не могу понять, в чём дело. Ни у кого из кандидатов нет «базовых знаний» ничего из перечисленного. Но они могут делать сайты на React или других JS-фреймворках, или на базе WP-шаблонов. Но если я говорю, что нужно сделать простые изменения в CSS, смотрят пустыми глазами… Или какую-нибудь мелочь на чистом JS, ничего.
Нет недостатка в учебных лагерях, курсах, полно ресурсов для изучения фронтенд-разработки. Но я собеседовал кучу ребят из этих учебных лагерей и думаю, что там серьёзно недооценивают важность CSS и основ JavaScript.

Конечно, есть ограничения на то, сколько можно усвоить за 12 недель обучения. Но огромная часть проблемы в том, что наша индустрия восхищается новым, одержима самыми последними и прекрасными SPA-фреймворками, в то же время обесценив CSS и «старые» имплементации.

Восхищение новым


Наша индустрия восхищается новыми подходами к разработке. Чем ещё можно объяснить непрерывное стремление выбросить все наработки и «переделать с нуля» каждый раз, когда появляется новый, лучший и более сложный фреймворк? Каждый раз мы утверждаем, что это приведёт к более чистой, простой, идеально абстрагируемой архитектуре, и каждый раз всё заканчивается изобретением велосипедов, воссозданием багов и открытием заново всех пограничных ситуаций, которые снова приводят к такому же безобразному коду.

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

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

Одержимость самыми последними и прекрасными SPA-фреймворками


Публикуя список рассылки по фронтенд-разработке, я каждый день вижу эту проблему во время текущего бума SPA. Читаю огромное множество статей, где авторы пишут о разных технологиях, и поверьте, почти все в мире JavaScript пишут об одном или другом из этих фреймворков как будто это абсолютно новая и уникальная инновация. Хотя это отличные инструменты, но каждый из них создан для решения конкретной проблемы. Они основаны на схожем базисе и делают разный выбор в зависимости от задач, для которых оптимизированы.

Можно взять React для примера, потому что он так сильно продвигается в последние несколько лет…

Не поймите меня неправильно, я люблю React. Это феноменально мощный инструмент. Он делает не только возможным, но и простым создание интерфейсов, которые казались нереальными, когда я начинал веб-разработку. Однако новички в индустрии приходят и видят всю эту шумиху вокруг React и предполагают, что это единственная истина, как следует писать на JavaScript. Сделать новое веб-приложение? Используй React! Нестандартный шаблон для блога? React! Переделать старый сайт? Переходи на React!

Это катастрофический подход к использованию технологии! И не слушайте меня, послушайте одного из самых видных разработчиков в сообществе React, Дэна Абрамова! Когда Кори Хаус попросил высказаться о недостатках React, Дэн дал наиболее подробное описание:


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


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


«Он в основном спроектирован исходя из потребностей Facebook. Так что если ваши приложения сильно отличаются от того, что делает Facebook, то React может не подойти для ваших нужд»

Это только часть, но открытость Дэна подтолкнула Кори к ответу:


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

Очевидно, у Дэна нет иллюзий о том, что React идеален для всего; он хорошо знаком с компромиссами, на которые пошли разработчики! Но такая большая часть сообщества спешит перейти на SPA-фреймворки для всего подряд и полностью игнорируют факт, что эти инструменты решают конкретные области задач. Да, это феноменальные инструменты и огромное удовольствие с ними работать… но часто они абсолютно не подходят для решения задач в других областях.

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

Обесценивание CSS


В индустрии появилась тенденция унижать HTML и CSS как «не настоящую разработку» и нечто низшего уровня. Думаю, это идёт от того, что логику стали превозносить над графическим/пространственным мышлением… CSS и HTML воплощают иерархические, графические и пространственные отношения, в то время как JavaScript фокусируется в первую очередь на логике.

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

Это НЕ так!

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

Причина в том, что эти пространственные модели зачастую раскрывают гораздо более интуитивные или лаконичные способы представления проблем — и они приводят к важным озарениям и выводам, которые мы затем кропотливо пытаемся перевести обратно в логическую форму.

CSS представляет невероятно мощный фреймворк для выражения графических и пространственных отношений, иногда исключительно сложных!

Сохранение сложности


Это приводит меня к моему ключевому тезису о разработке ПО — сохранение сложности.

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

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

Существует *невероятно много* кода JavaScript, написанного просто потому что разработчик недостаточно хорошо знает CSS.


«Это правда. Я работала над проектом, где 2000 строк JS делали то, что уже реализовано в position: absolute, просто потому что разработчики не понимали этого»

Что делать?


Я не пытаюсь сказать, что нам не следует использовать или учить людей новейшим и самым лучшим инструментам. SPA-фреймворки вроде React, Angular, Vue и Ember позволяют создавать в вебе невероятно мощные интерфейсы, которые просто были невозможны всего несколько лет назад. Эти инструменты действительно изменили представление о том, что возможно сделать в онлайне.

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

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

Если все новые разработчики будут с презрением смотреть на CSS, то мы придём к тому, что 2000 строчек JavaScript будут пытаться заново реализовать position: absolute;.

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

Нам следует серьёзно поговорить о том, какие навыки мы ожидаем от разработчиков в нашей отрасли и чему мы их обучаем. Вполне нормально начать обучение новичка в каком-нибудь учебном лагере, но есть серьёзный разрыв между современными выпускниками этих лагерей и тем, что требует индустрия. Может быть нереально ожидать соответствие этим требованиям после 8-12 недель обучения, но нужно хотя бы направить их по правильному пути.

К учебному плану основ


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

CSS


  1. Базовая блочная модель в CSS (box model). Это главная из основ, которую вы ОБЯЗАНЫ понять. В качестве бесплатного ресурса можно порекомендовать отличную статью Шея Хоу из его бесплатного курса Learn to code HTML & CSS. С платной стороны, особенно если вы легче воспринимаете аудиовизуальный контент, у моего друга Джеймса Стоуна есть неплохой видеокурс по блочной модели в CSS.
  2. Специфичность CSS. Это ещё одна важная основа, которую нужно понять, если собираетесь заняться веб-разработкой. Без прочного понимания специфичности вы непрерывно будете пытаться заставить свой код CSS работать так, как нужно. В Smashing Magazine есть отличный обзор для начала.
  3. Flexbox. Спецификации Flexbox произвели революцию в методах вёрстки, и вам непременно нужно воспользоваться преимуществами этой технологии. Лучший ресурс по Flexbox, который я видел, — этот справочник от CSS Tricks. Если ищете видеокурс по Flexbox, посмотрите этот на Treehouse или этот на Udemy.
  4. Сетка в CSS. Хотя это новый стандарт и он не поддерживается старыми браузерами, но CSS Grid — исключительно мощная технология и определённо шаг вперёд в создании макетов. Среди отличных бесплатных ресурсов — руководство по трюкам CSS и Сетка CSS на примерах от Рэйчел Эндрю. С платной стороны, Рэйчел Эндрю — гуру, и определённо стоит посмотреть её курс, а если ищете менее дорогой вариант, то Treehouse предлагает хороший вводный курс.
  5. Базовая архитектура CSS. Это по-настоящему глубокая тема, и я не хочу слишком в неё углубляться, но для начала я бы прочитал бесплатную книгу SMACSS. Она даст отличное понимание некоторых фундаментальных принципов организации CSS и концепций — оттуда можно перейти к другим подходам и конвенциям вроде BEM, ITCSS и т.д.

JavaScript


  1. Типы и приведения типов. В JavaScript странные типы. Всё сводится к этому. Они обеспечивают как бы «слабую типизацию» и довольно причудливое поведение. Если хотите углубиться в JavaScript, то их нужно понять. Лучший ресурс, который мне встречался — это первые четыре главы «Вы не знаете JS: типы и грамматика».
  2. Контексты и this. Понять this фундаментально важно для более глубокого понимания, что происходит в коде JavaScript. Непонимание this — причина путаницы № 1 у начинающих программистов JavaScript, частично потому что многие библиотеки используют и злоупотребляют ею (я смотрю на тебя, jQuery!). Для создания фундамента в понимании рекомендую великолепную статью Зелла «Это в JavaScript».
  3. Замыкания. Замыкания откроют вам все типы концепций и покажут, почему практически одинаковый код настолько разно работает, и вы начнёте понемногу представлять функции как объекты первого класса. Вот хорошо написанное введение от Free Code Camp: «Изучим замыкания в JavaScript».
  4. События и цикл событий. Модель цикла событий отличает JavaScript от многих других парадигм программирования, и без хорошего понимания у вас могут быть серьёзные неприятности, когда впервые начнёте работать с нетривиальными взаимодействиями между асинхронными событиями. Я не нашёл ресурс, который был бы мне абсолютно по душе на эту тему (дайте знать, если вам известен такой), но эта статья Carbon Five неплоха: «Объяснение цикла событий JavaScript».

Комментарии (179)


  1. vasIvas
    03.11.2017 14:34
    -3

    Опять надуманная тема. Невозможно знать react не зная js. Поэтому слова «полно react разработчиков, но нет тех кто пишет на js », это слова человека вообще не разбирающегося в разработчиках. То есть человек не может отличить разработчика, от новичка, который считает что он что-то может сделать на реакт. Не одно приложение не обходится без создания собственных ui компонентов + правки тех, которые уже есть. Правка и создание подразумевает нативный js + css. И получается что разработчик который не знает реакт, но не знает js и css, просто фантазер, а тот кто не может отличить фантазера от разработчика, тоже такой же фантазер, который считает себя соискателем. поэтому тема о том. как два фантазера нашли друг друга. Или как два ракетостроителя, которые до этого только бумажные самолетики делали, жалуются на друг друга, что сложно работать с не профессионалами. и все это из уст php разработчиков, которые мечтают чтобы js разработчики всю свою жизнь до старости фигачили им за копейки на древних технологиях. почему не пишут статьи что js разработчики хотят чтобы все бросили wp и писали как настоящие программисты серьезные приложения?


    1. vasIvas
      03.11.2017 14:42

      Пробел в развитии человечества.

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

      Это вообще о чем?


      1. renskiy
        04.11.2017 11:20

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


    1. potan
      03.11.2017 14:42

      Я не зная js и css начал достаточно успешно программировать на elm. В продакшен пока не пошло, но мне результат вполне нравится.


    1. staticlab
      03.11.2017 14:46

      Невозможно знать react не зная js

      Ну почему же: воспользоваться create-react-app и каким-нибудь готовым UI kit ума много не надо — смотри в примеры и копипасть блоки кода. Как работает замыкание, прототипы, всплытие событий, приведение типов, промисы и т.д. и т.п. знать не надо. Собственно, и CSS можно практически не знать: сейчас уже flexbox есть, а в будущем и grid станет популярным; и даже Bootstrap с темами спасает от незнания CSS. Я лично видел на собеседованиях такое.


      1. Tihon_V
        03.11.2017 23:26

        В случае с тем же React — много без умения работать с Object и Array, а также с функциями, которые они предоставляют не напишешь. А то что можно написать — на HTML+CSS работает быстрее ;)
        Недавно принимал участие в «техническом» собеседовании — довольно печально, когда приходят респонденты на вакансию Frontend разработчика со знанием React для работы над SPA, которые не знают как пользоваться assign/concat, а так же зачем они необходимы при действиях связанных с отображением переменных и не могут ответить отличие "==" от «equals»…

        Без знания хотя бы основ js создать приложение — можно, но вот заставить его делать хоть что-то полезнее чем отображение шаблона…


        1. lexore
          04.11.2017 13:15

          А то что можно написать — на HTML+CSS работает быстрее ;)

          Трагедия в том, что этого или не знают, или не учитывают.


          1. VolCh
            04.11.2017 13:30

            Это не трагедия, а классический треугольник "быстро, качественно, дешево — выберите (максимум) два из трёх". В данном контексте "быстро" — это быстро писать код, "качественно" — чтобы он быстро работал.


            1. lexore
              04.11.2017 13:32

              Если вам меньше платят, вы специально пишете плохой код?)


              1. VolCh
                05.11.2017 23:50

                Если мне начинают меньше платить, то я перестаю писать код :)


      1. ZhygarevMikhail
        06.11.2017 15:32

        Жесть какая. Неловко себя чувствую в такие моменты. Когда примерно год пытаешься разораться в вебе с нуля. Начиная с базовых HTML, CSS, верстки десятка макетов, постепенно понимая как это должно работать. Потом когда дошли руки до JS, то почему сразу начал смотреть на чистый JS (спасибо learn.javascript за это), и только потом уже на реакт. И сейчас вот делая свою первую пробную приложуху на реакте, постепенно разбираясь как что работает, офигеваю от таких статей. В такие моменты мне кажется, что я делаю что-то не так.


  1. dmitry_dvm
    03.11.2017 14:39
    -1

    Должен ли любой профессиональный айтишник, связанный с вебом, знать модель OSI, ну хотя бы принципиально понимать ЧТО это на уровнях tcp/ip-http? Мне почему-то кажется, что должен. Не важно — тестировщик, разработчик, верстальщик. А многие делают круглые глаза когда слышат эту аббревиатуру.


    1. Free_ze
      03.11.2017 14:45

      Справедливости ради, зачем это знать тестировщику или верстальщику? В идеале их компетенции четко очерчены: первый работает с уровнем приложения, не вникая в детали реализации (задача — поверить функционал и зарепортить проблему), а второй вовсе не имеет дел ни с какой логикой и уж тем более сетевым взаимодействием.


      1. Germanets
        03.11.2017 19:40

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


        1. Free_ze
          03.11.2017 19:58

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

          если говорить про отлавливание плавающих ошибок

          Расскажите, пожалуйста, об этом подробнее. Как знание стека помогает отлавливать плавающие ошибки?Еще чуть-чуть и мы дойдем до того, что тестер должен смотреть в код и видеть потенциальные слабые места.

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


          1. VolCh
            03.11.2017 20:05

            Было бы замечательно, если бы можно было отдавать тестерлвщикам ссылку на ПР и они сами определяли, что надо тестировать.


            1. Free_ze
              03.11.2017 21:38

              Боюсь, вместе с PR пришлось бы им отдавать и часть своей зарплаты)


          1. Germanets
            03.11.2017 20:29

            Еще чуть-чуть и мы дойдем до того, что тестер должен смотреть в код и видеть потенциальные слабые места
            Я вам может быть страшную тайну открою, но кроме тестирования «чёрного ящика» — при котором, как вы и говорите, тестировщику даётся готовое ПО и он что-то в нём пытается сломать, есть ещё и тестирование «белого ящика», при котором есть возможность смотреть исходный код, и убеждаться, что все возможные сценарии и ветвления, заложенные в программу протестированы, и даже проверять конкретные вносимые правки, например перед релизом и при фиксах ранее протестированных мест…
            Про задержки пакетов — для этого достаточно знать, где в девтулзах находится кнопочка троттлинг и быть немножко пользователем интернета
            — нет, этого недостаточно, вы со своими примерами перешли в нагрузочное\стресс тестирование, где может вылезти ещё куча проблем, а конкретное место — работа при больших задержках пакетов — вы не проверили…
            К сожалению, так же как и вы, многие разработчики(а частенько и менеджеры) и не догадываются о том, что тестирование это нечто большее, чем тыканье по кнопкам по тест-плану(который ещё кто-то должен составить)…


            1. Free_ze
              03.11.2017 21:27

              Безусловно, тестирование — понятие чуть более объемлющее, чем круг задач рядового тестировщика, про которого мы, собственно, начали обсуждение (;

              так же как и вы

              Слава богу, что я встретил вас и познал истину!


          1. Germanets
            03.11.2017 20:46

            Примеры ошибок, при которой потребуются если уж не понимание всего стека, то как минимум знание основных сетевых протоколов и их особенностей:
            1) При некоторой неизвестной конфигурации у одного из заказчиков подключение с клиентских компьютеров на сервер занимает очень много времени(порядка нескольких минут), в то время, как на тестовых конфигурациях такой проблемы не происходит. Задача тестировщику — воспроизвести ошибку в тестовой конфигурации.
            2) При запуске одного из режимов воспроизведения видео на сервере происходит падение всей сети, в которую подключен видеосервер — перестают пинговаться компьютеры между собой, ни одно сетевое взаимодействие просто не работает. В тестовой сети подобной проблемы нет.
            3) Жалоба от заказчика — иногда пользователь клиент-серверного ПО включает компьютер, подключается к серверу, а все его сохранённые настройки сбросились и имеют значение по умолчанию. После перенастройки всё может работать нормально, однако раз в несколько недель ситуация повторяется. Опять же — нужно воспроизвести проблему.


            1. Germanets
              03.11.2017 20:55

              Ответы
              1) Подключение к серверам у заказчика настроено по имени компьютера, при этом DNS-сервер по какой-то причине очень долго отвечает на каждый из запросов.
              2) Маршрутизатор у заказчика не поддерживает аппаратно Multicast и не выдерживает нагрузки, если включен мультикаст-режим раздачи видео.
              3) Компьютеры в сети заказчика получают адреса по DHCP, аренда IP-адреса у клиента истекает и ему выдаётся новый, настройки сохранены по связке IP-адреса и имени компьютера.


            1. Free_ze
              03.11.2017 21:34

              Задача типичного тестировщика в данной ситуации: собрать информацию («показания» юзеров, логи, конфиг), попытаться скомпилировать ее в удобоваримую форму и передать разработчикам. Обычным, либо специально обученным «внедренцам».


              1. mayorovp
                03.11.2017 22:47

                Для того что вы перечислили тестировщик не нужен, это админ/инженер/девопс/кто-то-там-еще собрать должен. Задача тестировщика тут — воспроизвести ошибку в тестовом окружении.


                1. Free_ze
                  03.11.2017 22:52

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


                  1. VolCh
                    04.11.2017 12:48

                    В подобных ситуациях тестировщик должен ставить задачи админам/девопсам типа "а сэмулирйте мне ситуацию при которой DNS-сервер запрос принимает, но ответ не отдаёт или отдаёт после большой задержки", возможно предварительно задав разработчикам вопросы типа "а вы вообще предусматриваете ситуацию, когда DNS-сервер глючит? Какое поведение ожидается? Не знаете? Сейчас узнаем". А если это не единичный случай, то заказать у первых или вторых себе инструмент, позволяющий самостоятельно эмулировать подобные кейсы.


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


            1. KostaArnorsky
              06.11.2017 18:20

              Когда говорят про тестирование, особенно в теме про frontend разработку, подразумевают ручное тестирование UI и/или автоматизированное тестирование UI или API.
              Понятно, что тестирование этим не ограничивается, но давайте не требовать от каждого тестировщика знания спецификаций NASA, потому что в большинстве случаев это не надо.
              И я вам, как разработчик, скажу, не нужны большинству тестировщиков на большинстве проектов знание сети, нагрузочного тестирования и т.п., точнее, большинству проектов не нужны такие тестировщики. Лучше потратить несколько недель разработчика, чем взять высококлассного специалиста и 90% его времени тратить на написание тесткейсов и прокликивание интерфейсов.

              P.S.: В вашем случае 2/3 админ был нужен, а привязывать настройки к IP — это верх гениальности, как такое вообще могло в голову прийти?


        1. khim
          03.11.2017 23:08

          К примеру, проверить функционал мобильного или веб приложения не понимая, как работает сеть, что такое задержки и потери пакетов и т.д. — уже не получится полностью, а потом у реальных пользователей, сидящих на 2G, а не на офисном вайфае в одной сети с сервером приложения начнутся проблемы…
          С этим — согласен, но… причём тут OSI? OSI модель — предназначена для описания мертворождённого стека протоколов OSIи её уровни имеют мало общего с тем, как работают реальные сети. Ну посмотрите, блин, на этот цирк: на 6м уровне у вас есть такие вещи, как EBCDIC и JPEG, а на 7м — DHCP и HTTP. Вы когда-нибудь на HTTP/2 смотрели? Он уже перешёл с ASCII на JPEG? Нет? А почему нет? Ведь было бы так круто!

          Реальные сети могут иметь и больше уровней, чем OSI модель предписывает и меньше (в малых сетях, обычно, меньше, в больших — больше), но главное — что эти уровни имеют очень мало общего с теоретическими вымыслами OSI модели! Особенно на старших уровнях.

          Зачем это? Почему все на неё так камлают? Практической пользы от неё — нуль, понять как влияют задержки пакетов на отзывчивость UI все эти измышления не помоглают ни разу.


          1. VolCh
            04.11.2017 12:51

            Сакральная суть знания OSI не в том, чтобы чётко относить задействованные протоколы к одному из уровней, а понимания самого принципа многоуровневости сетевого взаимодействия, инкапсуляции одних протоколов внутри других, и т. п.


            1. khim
              04.11.2017 13:37

              Тогда так и нужно говорить, а не обсуждать чьи-то сказки.

              В конце-концов врачи изучают анатомию человека, а не динозавра и не змеи — почему сети мы изучаем на модели чего-то, чего никогда не существовало в природе?

              В исходной TCP/IP-модели — уровней всего три, хотя на практике возможно расщепления и циклы (см. какой-нибудь IP over DNS), но главное — многие принципы «инкапсуляции» и «делегирования» выдуманные OSI так никогда и не были реализованы — так зачем всю эту муть изучать и спрашивать на собеседованиях?

              Карго-культ в чистом виде.


    1. vasIvas
      03.11.2017 14:48

      чуваку за 150т.р. достаточно знать слова ajax и socket. Тому кто работает за ++300т.р. Да, чисто для того, чтобы глаза не округлялись полезно статейку другую прочесть. И от сюда вопрос — Вы у кого об этом спрашивали?


      1. Free_ze
        03.11.2017 14:50

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


        1. vasIvas
          03.11.2017 14:57
          +1

          Это опять слова и размышления.


          1. Free_ze
            03.11.2017 15:06
            -1

            Увы, это объективная реальность, с тормозящими веб-приложениями, утекающими базами и браузерами, питающимися памятью.


          1. namikiri
            03.11.2017 15:38
            +3

            Откройте сообщения на Facebook на ноутбуке с Core i3 третьего поколения и наслаждайтесь его полётом в стратосферу на тяге собственного вентилятора.


            1. sshikov
              03.11.2017 19:44

              А вот ведь что характерно… если спросить обычного пользователя, что он думает про Facebook как приложение, многие ли ответят, что оно хорошее (я даже не беру в расчет мобильную версию, которая ужасна чуть более чем полностью)? Я думаю, что большинство назовет его в лучшем случае "приемлемым". Так почему такое множество разработчиков считают, что инструменты от того же FB для разработки не просто хороши, но и пригодны для проектов, которые заведомо совсем на сам FB не похожи?


              1. schetilin
                03.11.2017 22:13

                Потому что большинство этих инструментов облегчают жизнь разработчиков. Улучшение качество продукта — отнюдь не на первом месте. А фраза «чо, трудно памяти докупить? Щас память копейки стоит» уже стала мемом.


      1. ameli_anna_kate
        03.11.2017 23:56

        чуваку за 150т.р. достаточно знать слова ajax и socket...

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

        К тому же про ajax можно начать спрашивать что-нибудь не стандартное. К примеру:
        Какими еще способами можно получить данные от сервера не перезагружая страницу?
        Можно ли слать ajax-запрос на другие сайты?
        Что вы знаете про jsonp?
        Доводилось ли вам с ним работать?
        Как реализовать без jQuery?
        Им можно отсылать только GET-запросы?
        Может ли нам в нашей проблеме помочь CORS?
        Что такое same origin policy?
        Чем get отличается от post?
        Что вы знаете про CRUD?
        Что происходит после того, как вы ввели url в адресную строку?
        Надежны ли jsonp?
        и тд

        У меня этих вопросов с собесов целая коллекция скопилась.


        1. maxfox
          04.11.2017 15:32

          Ну так это же замечательно — вам указали на пробелы в ваших знаниях, что может быть ценнее? Отличный шанс эти пробелы устранить и попытаться снова. Справедливости ради, ответы на все эти вопросы находятся в рамках пары-тройки статей на википедии/MDN, одного долгого зимнего вечера должно хватить. ;)


          1. ameli_anna_kate
            04.11.2017 16:36

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


            1. maxfox
              04.11.2017 16:51

              Я думаю, что вопрос вопросу — рознь. Например, вопрос «Какими еще способами можно получить данные от сервера не перезагружая страницу?» мне не очень нравится, т.к. все варианты, не считая websokets, будут костылями для старых платформ. Как знание магии с iframe и ActiveX должно характеризовать веб-разработчика в 2017 году? Можно и про верстку таблицами спросить… ;) Мне кажется, идеальный вопрос — это предложить задачу из реальной практики и попросить рассказать, как бы человек ее решил (с обоснованием, почему так). Это даст гораздо больше информации, нежели пара десятков теоритических вопросов.


              1. ameli_anna_kate
                05.11.2017 00:30

                Данным вопросом есть и у yandex-а, когда хочешь отправить им свое резюме, они предлагают приложить к нему ответы на несколько вопросов.
                Из актуального: WebRtc, любой тег с атрибутом src?

                Вопросы из реальной практики, вопросам по теории не мешают. Только надо подобрать с умом, попросить навесить обработчик — слишком просто. Что-то посолиднее — может затянуться по времени. Как то попался вопрос, что то там не получалось с видео, зациклить что ли, вот на собесе спросили меня, не могу ли я им помочь в решение проблемы. Увы, нет, прошло уже несколько лет, а мне на практике так и не довелось работать с видео.


                1. maxfox
                  05.11.2017 01:09

                  С WebRTC и src-атрибутами вы привели великолепный пример, иллюстрирующий, почему это плохой вопрос. Я знаю про WebRTC и, конечно, про теги с src, но если бы мне на собеседовании задали подобный вопрос, я бы сказал — websockets и точка. Просто это не те ответы, которые приходят в голову. А значит, мой ответ ничего не скажет работодателю о моей квалификации. Он говорит лишь о том, сталкивался ли я с таким вопросом на других собеседованиях или в сети. Теперь мой ответ будет другим, но мои знания и опыт остались прежними.
                  А вот если бы меня спросили, как сделать видеочат на web-стеке, я бы, конечно сказал — WebRTC и рассказал бы, все, что знаю про эту технологию. Совсем другой результат. Собеседование — не место для шарад, вопросы должны показывать знания и опыт кандидата.


                  1. ameli_anna_kate
                    05.11.2017 13:21

                    Ну ок, если считаете, что про WebRTC следует спрашивать отдельным вопросом.
                    Если из реальной практики, не так давно нам потребовалось реализовать comet. Мы стали думать, что нам использовать лучше. Вполне годный вопрос: «При каких условиях лучше использовать ajax, а когда сокеты?».

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


    1. ilyaplot
      03.11.2017 16:28

      Даже PHP программист должен знать модель OSI. Когда у вас упадет какой-нибудь сервис, вы не будете понимать, почему пакеты не ходят…


      1. mortimoro
        03.11.2017 18:44

        Зачем знать модель OSI, чтобы починить упавший сервис? Я впервые с вопросом про OSI столкнулся на одном из собеседований лет семь назад, а до этого как-то жил без него — логи читал, гуглил, на форумах тематических спрашивал (и никто в своих ответах OSI не упоминал). Да и протокол TCP/IP в OSI не особо укладывается, потому что пока OSI обсасывали и принимали, ребята на коленке склепали TCP/IP как считали нужным и до сих пор эта поделка великолепно решает проблемы человечества.


        1. ilyaplot
          07.11.2017 10:09

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


  1. potan
    03.11.2017 14:41

    А с другой стороны имеет ли смысл разработчика на Ruby спрашивать знание ассемблера?
    Если что-то типа elm позволяет разрабатывать фронтенд не думая о javascript и css, то почему бы не довериться низкоуровневые вещи компилятору и библиотекам, а разработчикам оставить высокоуровневые?


    1. batyrmastyr
      03.11.2017 15:19

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


      1. potan
        03.11.2017 15:26

        Общие понятия о теории сложности вычислений для астрактного програмиста я бы сравнил со знаниями html для фронтендера, а не с js+css.


  1. OlegZH
    03.11.2017 14:43

    Да! Было бы крайне любопытно узнать, какой есть хороший способ стать успешным фронтенд-разработчиком. Я, например, не имею никаких знаний в этой области. Чистая доска! (Если не считать давних попыток писать на чистом HTML и делать что-то на ASP.) Хочется написать на этой доске правильные письмена. Кто поможет?


    1. Free_ze
      03.11.2017 14:47

      Гугол.


      1. OlegZH
        03.11.2017 14:58

        Менее тривиальный ответ получить можно? Гораздо интереснее обращаться к реальному собеседнику, который даст грамотный совет (что делать и что искать, например). Статья на Хабре может (и должна) хорошо сориентировать целеустремлённого соискателя полезного опыта. (Например.)


        1. Free_ze
          03.11.2017 15:20

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

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


        1. chrysalis
          03.11.2017 16:57

          Невозможно достичь результата без цели. Найдите себе цель и изучайте всё, что мешает к ней приблизиться.

          Лично я, для фронт-энда, занимаюсь разработкой браузерных игр, начинал от связки html + css с анимацией на jQuery, завершаю на чистом JS без чужих библиотек (кроме своих, которые создавал в процессе обучения) с поддержкой «бэкграунд работы» canvas игр.

          Но есть важный момент: мой интерес вызван не получением результата (это, конечно, очень важно и будет приятно), а тем, как оно работает?

          А затем — понеслась! Первый прототип, показываешь другу, а он сидит на Opera 12, ничего не работает, погружаешься глубже и глубже, изучая основы фронт-энда и фичи разнообразных браузеров.

          И пусть игра не сделана, и друзья не оценили белые кубики на чёрном фоне (или наоборот), твой полученный опыт будет в 10 раз более полезным, чем АФК-просмотр ютуб роликов или беглое чтение 10 обучающих материалов.


        1. stardust_kid
          03.11.2017 17:03

          Пишите в личку, помогу советом. Только я opinionated react/fp fanboy.


    1. potan
      03.11.2017 14:55

      Не знаю уж на сколько успешным, все таки в основном я backend занимаюсь, но результат, который я получаю на elm, имея только базовые знания html, мне нравятся. Вместо css я использую библиотеку mtl (material design, даже не очень понимаю, что это значит), которая сама все делает. Для enterprise-разрботки этого достаточно.


      1. vasIvas
        03.11.2017 15:02
        +1

        ахахахаха… Сегодня день юмора?


    1. Tsimur_S
      03.11.2017 16:36

      на тостере есть миллион вопросов на эту тему, примерный усредненный ответ:
      0) выучить английский
      1)htmlacademy /freecodecamp. Есть еще codeschool, codeacademy. И еще миллион сайтов которые можно нагуглить.
      практика
      2)learn.javascript от корки до корки. на сегодня это самое полное собрание сочинений по js.
      3)практика
      4)практика
      5) книги по паттернам / статьи по перфомансу / тонким моментам. На этом моменте выбираете фреймворк
      и снова практика.


      1. Free_ze
        03.11.2017 17:57

        2)learn.javascript от корки до корки. на сегодня это самое полное собрание сочинений по js.

        Полнее «носорога»?


        1. Tsimur_S
          04.11.2017 14:27

          Ну это спорный вопрос на самом деле, но мне кажется что полнее. В носороге нету как минимум es6+,fetch.


      1. nikiomen
        03.11.2017 19:58

        Сводится к одному пункту- практика)))


    1. ameli_anna_kate
      03.11.2017 23:30

      Менее тривиальный ответ получить можно? ...

      Не знаю на сколько актуален мой пример, но может найдете что-то полезное для себя.
      В 2004 прочитала книгу на HTML и написала первый сайтик. Достаточно примитивный, с фреймами и бегущими строками.
      Затем были самоучители по php, js, css. Что-то запомнила, что-то не поняла, но это позволило худо бедно ориентироваться в вопросе.
      Стала писать какие-то простенькие вещи, зачастую копируя сходно работающий код, тупо запоминая многие решения. Но этот способ имел сильный недостаток, шаг в лево, шаг в право, какое-то отличие в ситуации, и проверенное решение переставало работать.
      Поэтому стала налегать на теорию js. Прямо по списку, начиная с простых типов, переменных, строк, массивов, циклов, объектов и тд, запоминала какие есть методы работы с теми же массивами или строками. Тут я начала понимать многие вещи, почему они написаны именно так, как что-то поменять, что бы продолжало работать.
      Дальше писала сайт, не в коммерческих целях, а для тренировки. Из плюсов, это не простенькие примеры с обучающих сайтов, а реальные проблемы, для которых думаешь, ищешь решение, учишься отлаживать код.
      Дальше ряд работ, где нарабатывалась практика. Знания из теоретических, превращались в практические, а применение некоторых вещей вошло в ряд обыденного, как завязывание шнурков.
      Дальше не прекращающийся процесс повышения своих знаний. Масса книг по js, какие-то по рефакторингу, оптимизации производительности и тд.

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

      В общем удачи вам, в познание программирования.


  1. Vplusplus
    03.11.2017 16:57

    Было бы очень хорошо создать такой список учебного плана основ на русскоязычных ресурсах.


  1. nebsehemvi
    03.11.2017 16:57

    Увы.

    Столкнулся с противоположным — тыкаю палкой чистые JS и CSS. Сверстал страницу по макету для одной компании (вакансия фронтэнд), главные претензии были «почему тут нативный JS и нет никаких фреймворков?» и «где препроцессоры, почему чистый CSS?».

    Смешанные чувства до сих пор.


    1. mayorovp
      03.11.2017 17:31
      -1

      Препроцессоры CSS — вещь очень полезная. Они не скрывают CSS но упрощают его написание.


      1. nebsehemvi
        04.11.2017 00:59

        Полезная, когда кода много. Тогда нужны миксины, переменные и так далее.
        А там было всего дел на 400 строчек.


        1. Dek4nice
          04.11.2017 06:59
          +2

          Вам не пришло в голову что это макет на вакансию и даже ради 50 строчек имеет смысл расширить зоопарк технологий просто для галочки?


        1. michael_vostrikov
          04.11.2017 18:19

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


    1. j-dev
      04.11.2017 06:59

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


  1. igontarev
    03.11.2017 16:57

    1) вы как-будто в 2006, web разработка уже давно разбивается на разные направления, и все таки верстка и js это совершенно разные вещи
    2) css — это сложно. Анимации, transform, transition, flexbox, grid, сетки, кросбраузерная верстка, шрифты — вы хотите сказать что это все просто, и это даже не разработка, за верстку платят меньше чем за разработку на js
    3) js — изучить это вообще ад, зоопарк технологий, новый ES6, сборщики для фреймворков, для новичка это очень сложно

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

    Новичкам очень сложно разобраться со всем этим, а вы хотите, чтобы он и знал и js и css. Новичок прежде всего хочет зарабатывать, и перспективнее конечно выучить react, а знать и js и css — это уже не новичок, это уже какой никакой мидл


    1. superconductor
      04.11.2017 14:13

      Вы такие удивительные вещи пишете. Первый пункт вроде как даже намекает, что фронтендер не должен уметь верстку. Конечно, тут в 2016 вроде уже появились "специалисты по настройки webpack'а", но это вообще дичь какая-то.
      В моём мире новичок должен хотеть понять свои инструменты (js, css и html), а затем уже интересоваться, до чего додумалось человечество по части фронтенда.
      Иначе получаются вот эти потрясающие сайты на реакте, которые сначала показывают развалившуюся страницу 20+ секунд, пока чудесный реакт загрузится, а потом перерисовывают весь сайт на каждое действие, потому что "новичкам сложно понять js", а реакт — он же сам работает.


    1. Tuerer
      06.11.2017 15:32

      Какой мидл? Я пишу на react, es6, redux (saga) и считаю себя джуном. Максимум беру заказик на доработку какого-нибудь наговнокоженного реакта за 5к (Естественно везде только React.Component и состояние приложения передается через пропсы и прокидывается например через 10 слоев до какой-нибудь формочки). Заказчику же нужно чтобы еще пиксель перфект, адаптировать под мобилы, чтобы смотрелось красиво на motorola c350 и знание php, питон и руби будет плюсом


  1. terantul
    03.11.2017 16:57
    +2

    На одном из проектов посадили поводить собеседование php laravel разработчиков. На позиции джунов и мидлов. Большинство мидл-кандидатов отлично знавших Ларавель, сыпались на вопросах о стандартных функциях пхп (строковые, работа с массивами итд), а про SQL вообще молчу. Оказывается многие прошли курсы *пхп за три месяца* из которых два месяца изучали фреймворки. После чего сразу приступали к разработке на Ларавеле/Юи и на чистом пхп ничего не кодили. Так что оказывается можно знать фреймворк, но иметь пробелы в базовых знаниях.


    1. ivanovSP
      03.11.2017 19:07
      -1

      Проблема руководства.
      Скорей всего ваш руководитель искал мидла с 1 годом опыта работы и вилкой до 60к рублей.

      Платите 180 000 рублей, ищите людей с 6 опытом работы и хороший спец будет у вас в кармане. Если не тянете такие суммы, значит и специалист вам не нужен, развивайте бизнес и копите деньги на специалистов)


      1. VolCh
        04.11.2017 13:11

        Тут, скорее, несоотвествие ожиданий работодателей и образовательной системы. В целом от человека с небольшим опытом работы, позиционирующегося на должность типа "PHP (Laravel) разработчик" я, со стороны работодателя, будут ожидать прежде всего знаний PHP, как синтаксиса, так и стандартной библиотеки, потом основных паттернов и принципов, используемых в том же Laravel, а уж потом собственно Laravel.


        Причём при составлении вакансии я, скорее всего, даже не упомяну отдельно про знание синтаксиса и стандартной библиотеки, написав лишь что-то вроде PHP 5.3+, а потом расписывая остальное. А курсы типа "войтивайти", видимо, будут готовить на такие вакансии по "чеклисту" типа "пхп у нас есть и даже не 5.3, а 5.6, дальше ставим ларавель и пишем хелловорлд — "PHP (Laravel) разработчик готов"


        1. ivanovSP
          05.11.2017 13:29

          Есть плохие специалисты, а есть хорошие, никто не спорит.

          Это в любой области так, даже в медицине, хотите профессионала, вы платите хорошие деньги и идете к кандидату медицинских наук, у которого стоит современное оборудование в кабинете за 10 миллионов.
          Хотите подешевле, идете к Ашоту в подвал, он вам там мази народные пропишет

          Я не знаю кому в голову пришла такая идея, что специалист стоит 40 000 рублей, ну не может он стоит 40 000 рублей, не может он стоить 80 000 и не может человек стать спецаиалистом за год или два.


          1. VolCh
            06.11.2017 00:02

            Я не о том. Я о подготовке, как говорится, молодых специалистов. На трёхмесячных курсах "PHP (Laravel) разработчик" можно 2,5 месяца давать PHP и только 2 недели Laravel, а можно наоборот. Мне импонируют первые.


            1. ivanovSP
              07.11.2017 11:23

              Так это проблема руководства, даже я понимаю что человек с 5 месячным опытом не может быть спецом.
              Если мне нужен спец, я ищу человека с 3 летним опытом.


              1. VolCh
                07.11.2017 12:49

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


    1. michael_vostrikov
      03.11.2017 19:42

      Зачем помнить наизусть стандартные функции?


      1. Free_ze
        03.11.2017 20:01

        Человек может даже не знать, что они есть и стоить трешевые велосипеды, например.


        1. michael_vostrikov
          03.11.2017 20:10
          +1

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


          1. Free_ze
            03.11.2017 21:37

            Нормальный интервьюер не будет требовать буква-в-букву воспроизводить всё. Достаточно псевдокода.


      1. Methos
        06.11.2017 00:43

        Чтобы быстро писать код, не поглядывая в справочник.

        Если у человека 1 месяц опыта, то он будет глядеть в справочник постоянно.

        Если у специалиста опыт 10 лет, он уже наизусть знает все операторы и функции.

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

        Это разве плохо?


        1. michael_vostrikov
          06.11.2017 08:19

          Если у специалиста опыт 10 лет, он уже наизусть знает все операторы и функции.

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


          Если у человека 1 месяц опыта, то он будет глядеть в справочник постоянно.

          Тут тоже ошибка. Если человек не знает функцию, он один раз посмотрел и запомнил, и в коде написал, и если она ему понадобится через 2 минуты, то снова в справочник не полезет.


          1. Methos
            06.11.2017 17:51

            Вы сами себе противоречите, вам не кажется?


            1. michael_vostrikov
              06.11.2017 20:09

              Где именно?


    1. mdErrDX5341
      04.11.2017 13:00

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


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


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


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


  1. Witaliy
    03.11.2017 16:57

    По мне так люди, которые пишут на React или Angular без базовых знаний JS, HTML и CSS это как водители не знакомые с базовыми понятиями: скорость, длина тормозного пути, дистанция… Ездить можно, но сложно, не всем удобно и последствия часто печальны.


    1. ivanovSP
      05.11.2017 13:22

      Соглашусь, но такие люди и получают вшивые 80 000 рублей.
      Специалист, который знает все идеально работает минимум за 180 000 рублей.

      Это в любой области так, даже в медицине, хотите профессионала, вы платите хорошие деньги и идете к кандидату медицинских наук, у которого стоит современное оборудование.
      Хотите подешевле, идете к Ашоту в подвал.


      1. Free_ze
        06.11.2017 12:21

        такие люди и получают вшивые 80 000 рублей.

        Пол-России сейчас ахнуло.


        1. ivanovSP
          07.11.2017 11:25

          Переезжайте в Москву и садитесь на крупные проекты, а не сайты визитки


          1. Free_ze
            07.11.2017 11:35

            Оно вам надо?) Пока веб в тренде и заказчики ценят любых специалистов — это ваш звездный час.


  1. SelenIT3
    03.11.2017 17:03

    Отличная статья, спасибо!


    Вот только… почему «модель окна»? Да, этот многострадальный box как только ни склоняли, но такой вариант встречаю впервые...


    1. m1rko Автор
      03.11.2017 17:24

      1. ernt
        03.11.2017 18:20

        «Переводчик: Александр/Здоровье и медицина» повеселило )


      1. SelenIT3
        03.11.2017 18:23

        Мда, суровый там попался доброволец-переводчик. Одна «Адаптация прибора в CSS» чего стоит:). Надо будет поправить на досуге (как тут), только когда еще этот досуг будет...


        Мне кажется, лучше ориентироваться не на труды одиночек-энтузиастов, а на результаты коллективного обсуждения, вроде словаря сообщества «Веб-стандарты».


        1. alizar
          03.11.2017 18:55

          OK, спасибо за ссылку!


  1. PravdorubMSK
    03.11.2017 18:40
    -1

    Айтишники очень плохо мыслят критически, я бы сказал, что от слова «никак». Достаточно прорекламировать новый фреймворк — и всё, дело сделано. Тысячи хомячков будут верить в то, что это — истина в последней инстанции, самый нужный инструмент и т.д. Отсюда и пробелы — берут фреймворки, не зная базовых теоретических вещей.

    Такая же ситуация, например, в мире PHP. Сколько раз я спорил с новичками на тему банальных вещей, у них ответ один — фреймворк. Одни, по сути, ничего не знают и думать в разрез всеобщем стереотипам не могут. Теоретических знаний = ноль. Без фреймворка — как без мамки.


    1. altai2013
      04.11.2017 14:55

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


    1. nubideus
      04.11.2017 21:31

      Разве плохо не знать основы php?


      1. VolCh
        06.11.2017 00:04

        Если ты работаешь с PHP-фреймворком, то плохо.


  1. theaklair
    03.11.2017 19:30

    Начинал с верстальщика, сейчас пишу на React.js и Typescript.
    Знаю и CSS и JS (от основ до продвинутых вещей) но суть в том, что писать SPA мне интереснее, тем более что я все так же продолжаю верстать представления React-компонентов.
    Кроме того, за SPA платят гораздо лучше.


  1. dom1n1k
    03.11.2017 20:13

    Это как недавно на Тостере был вопрос «Что делать, если внутри макета нет bootstrap-сетки?»
    Убиться об стену сменить работу, блин.


    1. makaroveugene
      03.11.2017 20:43

      bootstrap зло


      1. Alexufo
        04.11.2017 00:06

        Как минимум бутстрап хоть 3 а уж тем более 4-ый это великолепное решение для UI бекенда. Остальное — сетка, которая может жить во фронтенде, а может и не жить.


  1. makaroveugene
    03.11.2017 20:31

    Терпеть не могу фреймворки, блин 99% процентов сайтов написанных на фреймворках жутко тормозят, от неумелого и неправильного использования, у меня так прожорливые современные 3D шутеры не нагружают систему, как сайтики на всяких фреймворках, это уже серьезно…


    1. lipton_ice_tea
      04.11.2017 07:37

      Полностью поддерживаю! Не раз встречал сайты, в которых каждый «чих» делается с использованием какой-нибудь библиотеки или фреймворка. Сайт жутко тормозит, долго грузится, и может даже криво работать на мобилках… Базовые знания в том числе нужны, что бы таких тормозов не было!
      А «костыли» можно встретить абсолютно везде! Вне зависимости от того, написан код на ванильном js, или с использованием библиотеки/фреймворка!


      1. ivanovSP
        05.11.2017 13:46

        Есть решение, делать сайты качественно, но брать с посетителей деньги.
        Предлагаю ввести абонентскую плату в 20 баксов в месяц с пользователя, но в обмен давать качественные сайт.

        Готовы на такие условия?

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

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


        1. lipton_ice_tea
          06.11.2017 09:58

          Не халявщики, а потенциальные клиенты! Большинство сайтов нацелено на продажу товаров и услуг.
          И клиента на волнует то, на чем сделан сайт, сколько за него заплатили разработчикам и т.д. Если его что-то не устраивает, он уйдет с сайта и все!
          Конечно, есть проблема, что заказчикам подавай конфетку за копейки. Но здесь уже отдельный разговор)

          А по поводу абонентки, представим в аналог обычный продуктовый магазин. Сделать все через одно место, где при входе на тебя с потолка капает вода с протекающего потолка, скользкий пол, на котором все падают и т.д. И сделать другой продуктовый магазин, в котором нет такого беспорядка, и брать на входе деньги… Это как-то не правильно.


    1. ivanovSP
      05.11.2017 13:54

      Решается просто, перевод всех сайтов на основу платных подписок.
      т.е. теперь что бы посмотреть рецепты на пирог вам придется совершить подписку за 20 баксов в месяц.

      И эти 10000$ будут идти на разработку качественного продукта, без исопльзования готовых библиотек и прочего добра

      Простите конечно, но вы халявщики совсем офигели.


      1. sergio_deschino
        05.11.2017 15:19

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


        1. ivanovSP
          05.11.2017 16:02

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

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

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

          Это правило работает не только в WEB, так работает весь мир во всех областях
          запомните главное правило, вам никто ничего не должен вы пользуетесь ресурсами бесплатно. Вот когда начнете покупать платные подписки ан Pikabu YouTube Vk.com, тогда можете начинать жаловаться, русский менталитет в полной его красе.

          Не удивлюсь если вы и на качество фильмов жалуетесь, которые на торенте лежат))))


          1. sergio_deschino
            05.11.2017 16:08
            -1

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


            1. khim
              05.11.2017 17:30

              Кстати, на комп мне никто ничего установить без моего разрешения не может, это уголовное преступление
              Серьёзно? Где написано? Windows 10 ставит свои апдейты автоматом, так что срочно в суд — озолотитесь!


              1. Free_ze
                06.11.2017 12:27

                Где написано?

                ст.273 УК РФ

                Windows 10 ставит свои апдейты автоматом

                Вы что, не читаете пользовательское соглашение?


                1. khim
                  06.11.2017 13:12

                  ст.273 УК РФ
                  Это про весьма ограниченный набор программ. Программы, которые сайт «просто» устанавливает для того, чтобы «улучшить» вам жизнь (и жрущие батарейку, как не в себя) сюда не подпадают, увы и ах.


                  1. Free_ze
                    06.11.2017 17:10

                    Попадают еще как) Ибо как минимум чтение и модификация данных. Было бы желание и деньги на годного юриста. Авторы подобного «софта» — это не Microsoft и жопу прикрыть грамотным соглашением вряд ли смогут.


                    1. khim
                      06.11.2017 17:34

                      Ибо как минимум чтение и модификация данных. Было бы желание и деньги на годного юриста.
                      А также на поездки куда-нибудь в Калифорнию, ага.

                      Авторы подобного «софта» — это не Microsoft и жопу прикрыть грамотным соглашением вряд ли смогут.
                      Есть прецеденты? Потому что когда начинаются разговоры про «грамотных юристов» — обычно это обозначает, что автор, так-то, по хорошему чушь говорит — но верит в то, что в малограмотном суде без экспертов «прокатит».

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


            1. ivanovSP
              05.11.2017 18:25

              Ну так какие проблемы то? Идите к такому конкуренту, создайте свой ресурсы идеальный с бюджетом в 1кк рублей.

              Халявщики совсем ах**ли в 2017 году в РФ )


  1. serf
    04.11.2017 00:55

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


    1. mayorovp
      04.11.2017 08:30

      Не путайте аргументы и тролинг.


  1. ameli_anna_kate
    04.11.2017 01:18

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


    1. Stalker_RED
      04.11.2017 11:53
      -1

      Смотря какие фреймворки вы имеете в виду. Рельсы живут лет 15, хоть хайп и поутих. Бутстрапу шесть. Всякие вордпрессы и jQuery тоже «старички» (да, я знаю что это не фремфорки).

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


      1. ameli_anna_kate
        04.11.2017 12:10

        Я про модные фреймворки. Помню когда еще понятия SPA появилось больше как теоретическое, и народ восторгался: «Не надо тягать всю страницу с сервера, можно менять по кусочкам, какие приросты от этого ожидаются». Но удобных инструментов на тот момент еще не существовало.
        Появился Backbone, Ember. Народ стал с интересом поглядывать на Meteor(не фреймворк, но все же стоит упомянуть). Потом прогремел звездный час Ангуляра 1, все стали переписывать свои сайты на него и фанатеть. Затем front-end сообщество решило, что Реакт — это здорово, надо срочно писать на нем. Вышел Ангуляр 2, который гораздо лучше 1-го на мой взгляд. Вот сейчас не смело выглядывает Vue из-за спин этих двух титанов.
        Может еще какие были, но я забыла.


        1. maxfox
          04.11.2017 12:42
          +1

          Все современные фреймворки (Backbone, Ember, Angular, React, Vue, Elm — это аж целый язык) появились в период с 2010 по 2015 и даже на самых старых пишут до сих пор. Одни сменяют другие только в заголовках статей на хабре и медиуме, на самом деле они все сосуществуют. Это скорее процесс заполнения некоей ниши, чем борьба. Сейчас она вроде как заполнилась, новые игроки будут появляться, но, наверное, уже не так быстро. (Моё личное, не претендующее на абсолютную истину, видение).


          1. ameli_anna_kate
            04.11.2017 13:06

            Да, я до сих пор вижу вакансии, где желательно знать Backbone и проект до сих пор на нем.
            Как-то я была на собесе, они сказали, что у них в одном проекте и Backbone, и Angular, и Reaсt. Я сильно призадумалась стоит ли туда идти и работать со всем этим зоопарком вместе.


    1. Kroid
      04.11.2017 14:22

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

      «Электричество мы изобрели, но использовать его для освещения помещений не будем — у нас свечи есть» — так вы представляете себе остановку? Или думаете, что когда-нибудь соберутся все на одну большую конференцию и там объявят: «Мы наконец достигли совершенства! Изобретать больше ничего не надо, можете расходиться по домам»?


    1. ivanovSP
      05.11.2017 16:15

      В ближайшее время ничего не поменяется.
      Люди как писали на React так и будут писать.
      Как писали на Angular так и будут писать.

      Сейчас вышел Web Compopent (extends HtmlElement)
      Всем кажется что это революция и конец света, но нет.
      1) У react 16 скорость выше чем у ваших Web Compopent, это я еще не говорю про Vue
      2) Web Compopent не дал нам единый подход к разработке и не даст, все те же «30 способов решения одной задачи», фреймворк? так есть уже Polymer, нафиг он никому не нужен.


  1. maxfox
    04.11.2017 12:25
    +1

    Я думаю, что в проблеме, обозначенной в начале поста, неверно выделен корень проблемы. Друг автора статьи пишет «у меня проблемы с поиском фронтенд-разработчика [...] на низкоуровневую позицию». Т.е. позицию с низким окладом.
    Человек, добросовестно изучивший спецификации, знающий все хаки и нюансы имплементации CSS, навряд ли согласится на «низкоуровневую позицию». А новички, в лучшем случае, читают MDN наискосок, а в худшем — смотрят некачественные видеокурсы в стиле «HTML+CSS+JS+Jquery+PHP». Но это же новички, кто таким не был? Проблема в том, что в понимании работодателя новичок сначал учит HTML, CSS, JS в идеале, а потом берется за React, Angular, Vue… А на самом деле — новички учат все это параллельно и знают всего понемногу. Поэтому нет специалистов только по CSS и JS. Спциалист знает и базу, и фреймворки/библиотеки. Поэтому стоит дорого. Проблема решается просто — платите больше и к вам придут хорошие специалисты.
    И кстати, вот еще один фактор: если по 8 часов в день писать только HTML и CSS, то можно и головой тронуться. ;)


    1. ameli_anna_kate
      04.11.2017 13:01
      +1

      На днях муж жаловался, что они ищут разработчика не на джуна и не на 50 косарей зп, а приходящие не знают, что такое call, apply, bind. Говоря такие забавные вещи в ответ на вопросы по области видимости, поднятие переменных, scope, замыкания. Зато знают React. Хотят 150-200 к.

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


      1. ivanovSP
        05.11.2017 14:47

        Сколько они предлагали денег сеньеру? (человеку с 5-6 опытом работы)


    1. mdErrDX5341
      04.11.2017 13:08

      Соглашусь, я в свое время начинал изучать JS с JQuery, так как нужно было выполнять задачи и времени на погружение в тонкости не было. Но правда тогда я и не метил на должность мидл разработчика, а хотелось устроится джуном или стажером…
      А сейчас учат React, Vue и это понятно, так как в первую очередь при устройстве на работу людям нужно решать задачи, может и не очень качественно, но решать, а все теории тонкости придут с опытом...


    1. VolCh
      04.11.2017 13:26

      Проблема в том, что в понимании работодателя новичок сначал учит HTML, CSS, JS в идеале, а потом берется за React, Angular, Vue… А на самом деле — новички учат все это параллельно и знают всего понемногу. Поэтому нет специалистов только по CSS и JS.

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


      1. mdErrDX5341
        04.11.2017 13:37

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


        1. VolCh
          06.11.2017 00:09

          В ваканчии фигурирует, например, HTML5,CSS3,ES6,React, а отзываются на неё те, у кого знания React заметно выше знаний всего остального.


        1. ivanovSP
          06.11.2017 13:40

          Какие проблемы?
          Пишем в вакансии:
          Идеально знать React + Идеально знать JavaScript
          оклад 200 000 рублей.

          все.

          либо: Основы Js + Основы react
          Оклад 80 000 рублей.


      1. Kroid
        04.11.2017 14:33

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

        Закрыться на год, выучить всё что можно, а потом наконец выйти из комнаты суперменом — так не бывает :)


        1. VolCh
          06.11.2017 00:12

          Я не про доскональные знания, просто складывается впечатление, что у людей без опыта, отзывающихся на вакансию с требованиями типа HTML5,CSS3,ES6,React 70% времени обучения было потрачено на React, а 30% — на всё остальное вместе взятое, хотя я ожидаю отношения типа 20?80.


      1. mdErrDX5341
        04.11.2017 14:38

        Представляю себе историю:
        Человек честно изучал теорию, читал книги, сидел на форумах, ездил на конференции...5-6 лет работал где попало ради того чтобы достичь дао программирования.


        И вот он на собеседовании…
        дает свою трудовую книжку…
        И ему задают вопрос, вы конечно очень много знаете, очень много понимаете, но почему у вас в трудовой за 5-6 лет нет ни одной записи что вы работали по специальности? то есть ваш опыт равен 0 лет? мы вам перезвоним


        1. Free_ze
          06.11.2017 12:35

          Если у него есть практический опыт, то ему есть о чем упомянуть (фриланс, вклад в опенсорс/pet-project). Если нет, то никакого дао он не достиг, очевидно.


          1. mdErrDX5341
            07.11.2017 13:15

            что бы был практический опыт надо с чего-то начинать…
            несколько примеров.


            Человек честно учился 5-6 лет в университете, приходит на работу, как правило от него практической пользы почти нет...


            Человек бросил университет, учился далеко не по специальности и через 2 года практики даже в ИП "Иванова", от него больше результата и примеры работ есть.


            Человек учился 5-6 лет в университете и примерно на 3 курсе начал сначала фрилансить, где-то поработал на удаленке, вот от таких людей еще больше результата на практике.


            Значит приходим к выводу что бы было что упомянуть, нужна практика...


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


            1. Free_ze
              07.11.2017 13:33

              Человек честно учился 5-6 лет в университете, приходит на работу, как правило от него практической пользы почти нет...

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

              По этому люди которые прошли курс...

              Вы пытаетесь устроить гонки трактора с малолитражкой. Если есть желание веб пилить до конца своих дней, то не нужно идти в вузы, там школьных знаний хватит за глаза. Но ничего не мешает студенту подрабатывать во фрилансе и набрать тот же самый опыт + хорошие знания, которые «курсанту» не светят в том же возрасте (ибо это дольше и дороже).


      1. maxfox
        04.11.2017 15:02
        +1

        Потому что «You don't know, what you don't know». Новичок не может оценить степень своего незнания материала.
        Предположим, условный новичок написал слайдер на JS, не понимая при этом замыкания, контекст вызова или даже блочную модель документа. Но оно работает. Как он должен понять, что он чего-то не знает? Web-стек изначально спроектирован так, чтобы им можно было пользоваться без глубоких знаний. Новичок решает, что он теперь все знает и идет изучать дальше, что там за AJAX такой. И на каждом углу ему суют код на JQuery, т.к. он короче и проще. Человек запоминает несколько строчек и считает, что теперь он знает, как работает AJAX. И так далее по списку…
        И лишь позже человек столкнется с проблемами, которые заставят его осознать, что он чего-то не понимает в том же CSS. Естественный процесс обучения. Пытаться заставить учить все по порядку, это все равно, что заставлять ребенка учить падежи, прежде чем ими пользоваться.
        Не стоит искать проблему там, где ее нет. С разработчиками все в порядке, беда с работодателями, которые не могут отличить состоявшегося специалиста от начинающего. В сознании работодателя знание технологии скорее бинарно — знает CSS/не знает CSS. В реальности же уровень знания имеет множество градаций, а потребность в том или ином уровне — зависит от задачи.


        1. VolCh
          06.11.2017 00:13

          Я только про начинающих, https://habrahabr.ru/post/341626/#comment_10507280


        1. ivanovSP
          06.11.2017 13:56

          Проблема решается просто:

          Нужен специалист, т.е. реально крутой специалист, то ищем человека с 5-10 лет опыта работы. при этом вилку устанавливаем от 180 000 рублей до 250 000 рублей, да, такие цены сейчас на хороший Frontend Разработчиков.

          Я конечно понимаю, что для всех это разрыв шаблона, как HTML+JS можно платить 200 000 рублей, в этом и корень всех проблем.

          Нужен специалист среднего звена, т.е. он делает не идеально, но может решить проблему, то цена такому спецу от 100 000 до 150 000 примерно.

          Нужен Junior: цена 80 000 рублей (человек с коммерчески опытом работы в 1 год)

          Нужна нулевка цена около 30 000 — 40 000 рублей (теоретик, но хочет себя попробовать в сфере)

          Это цены по Москве.

          А на деле что?
          На деле начальник ищет сеньора за 80 000 рублей и жалуется что нет спецов.
          Начальник ищет джуниора с 2 опытом работы за 20 000 и жалуется что нет спецов.3

          Не тянете 200 000 рублей? тогда и спец вам не нужен, развивайте бизнес и копите деньги на специалистов.


          1. mdErrDX5341
            07.11.2017 08:17

            В итоге ищут специалиста на удаленке…
            что-что в москве зажрались даже спецы с ценой за свои знания


            30 000 — 40 000 рублей теоретик?

            так многие мидлы получают… конечно не в моске


            Нужен Junior: цена 80 000 рублей

            пипец....


            Нужен специалист среднего звена, т.е. он делает не идеально, но может решить проблему, то цена такому спецу от 100 000 до 150 000 примерно.

            е мае, буду покорять Москву со своим стажем в 6-7 лет, не считая до того как....


            не минусуйте, так сказать я немного ошалел)))


            1. khim
              07.11.2017 08:31

              Поинтересуйтесь только сначала ценами на аренду квартиры. А то, скажем, в Силиконовой Долине зарплаты ещё выше, но за вышеозначенную зарплату миддла вы сможете разве что в собачьей конуре ночевать…


              1. mdErrDX5341
                07.11.2017 08:37

                я на удаленку… пожалуй))), да я знаю про цены в москве, я от нее в 3-4 часов езды… про кремниевую долину я не заикаюсь...


              1. ivanovSP
                07.11.2017 10:36

                Аренда комнаты = 15 000 рублей.
                Квартира 35 000 рублей.

                У многих разработчиков сбита самооценка, им внушили что верстак должен получать 20 000 рублей и они продолжают писать на D3.js React.js за 20 000 рублей.

                Нет мои друзья, цена такого разработчика от 140к
                Гляньте вакансии, телегу, LinkedIN


            1. ivanovSP
              07.11.2017 10:32

              В итоге ищут специалиста на удаленке…
              что-что в москве зажрались даже спецы с ценой за свои знания


              А вы хотите что бы спец получал по 60 000 рублей в Москве? Это цена Wordpress разработчика или верстальщика, но никак не JS разработчика.
              Вы думаете у веба только 1 направление? вы остались дажеко в 2000 годах.
              откройте вакансии гляньте сколько предлагают работодатели, зайдите на LinkedIN, зайдите в телеграмм канал, где предлагаю работу, вилка для фронтендера минимум от 140к начинается, это есть серьезный проект.

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

              так многие мидлы получают… конечно не в моске

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

              Нужен Junior: цена 80 000 рублей

              Опять таки, не путайте нулевика после института и джуниора, джуниор это человек с хоть каким-то опытом работы и опять таки это цены в FrontEnd Разработку либо JS программист, а не верстак, понятное дело что джуниорский верстак будет стоить 20 000 рублей или 15 000 рублей в Москве.


              е мае, буду покорять Москву со своим стажем в 6-7 лет, не считая до того как....


              не все так просто, если вы работали 7 лет, это не означает что вы будете умней человека, который работал 1 год, тут зависит от вашего опыта.
              Есть человек работал с сложной логикой 2 года и вы, человек который работал 10 лет с Wordpress, вы джуниору даже в подметки не будете годится.

              Откройте сайт с вакансиями если мне не верите.
              Только вбивайте по ключу: Frontend Разработчик или JavaScript разработчик


              1. mdErrDX5341
                07.11.2017 10:41

                перефразирую… москва зажролась…
                мне кажется там цены для того что бы туда не ехали)) она же не резиновая.


                Дело не в самооценке, дело в прожиточном минимуме))


                1. ivanovSP
                  07.11.2017 10:53

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


                  1. mdErrDX5341
                    07.11.2017 10:58

                    я знаю)) по этому удаленка, с моим прожиточным минимум опытом и ЗП которую предлагает мне москва, я тут у себя в деревне как миллионер…
                    извините, я просто немного троллю, но не со зла))


              1. ivanovSP
                07.11.2017 10:51

                такие дела)


                1. ameli_anna_kate
                  07.11.2017 11:32

                  На мой взгляд, в Москве зарплата фронт-разработчика в ценовом диапазоне где-то от 70 до 250 000.


  1. i360u
    04.11.2017 13:03
    +1

    Все чаще в вакансиях пишут React-разработчик. "React головного мозга" — к сожалению, такая-же болезнь современности как когда-то "jQuery головного мозга", когда люди напрямую ассоциировали JS c jQuery и писали ужасную лапшу (у некоторых до сих пор наблюдается в затяжной форме). А с фронтендером не знающим CSS — я даже в одну маршрутку не сяду.


    1. ivanovSP
      07.11.2017 10:35

      А если человек начинает свой JS фреймворк писать с нуля, как это назовете?


      1. i360u
        07.11.2017 12:00

        Если этот человек хорошо знает что именно и зачем он начинает писать, знает какую проблему он решает, то этот человек молодец. Если человек желает получить свой опыт велосиподостроения, чтобы просто самому лучше разбираться в теме — он тоже молодец. Если человек создает свой велосипед и не может объяснить зачем это нужно, и чем его велосипед отличается в лучшую сторону от всего окружающего зоопарка — то он велосипедостроитель в плохом смысле этого слова. На моей практике, я встречал множество разработчиков использующих React и не понимающих толком что именно он дает и чем за это придется заплатить. Или просто витающих в каких-то маркетинговых розовых облаках, рассказывающих, например, про то что Virtual DOM гораздо быстрее обычного DOM.


  1. burfee
    04.11.2017 13:24

    На мой взгляд более важно знать подходы к решению проблем, чем инструменты. В большинстве современных фреймворков заложены похожие принципы, которые в том же геймдеве живут давным давно. Кроме подходов еще есть разные способы мышления, например ООП и ФП по разному формируют ход мыслей. Также еще важнее понимать как правильно применять основопологающий в программировании принцип декомпозиции в соответствии с местом, временем и обстоятельствами. А знание javascript и css и других инструментов — это верхушка айсберга, чуть пониже чем React конечно, но не намного. Все это тоже важно, но не основа.


  1. BeppeGrillo
    04.11.2017 13:56
    +2

    «Он в основном спроектирован исходя из потребностей Facebook. Так что если ваши приложения сильно отличаются от того, что делает Facebook, то React может не подойти для ваших нужд»

    Так это из-за реакта фейсбук такое тормозящее говно?


  1. mdErrDX5341
    04.11.2017 14:25
    +1

    какой то замкнутый круг:


    • я написал на чистом JS и CSS
    • то есть ты написал свой велосипед? посмотри в сторону фреймоврков
    • о я написал простенькую вещь на фреймворке за 5 минут)))
    • нафига тебе фреймворк, эта задача легко решается на чистом JS и CSS


    1. VolCh
      06.11.2017 00:16

      Нужно знать что писать с помощью фреймворков, а что на чистом.


      1. Methos
        06.11.2017 00:52

        Нужно писать бизнес-логику и зарабатывать деньги.

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

        А есть наоборот, код чистый как слеза, и работает микросекунды, его писали месяц, а денег проект не приносит.


        1. VolCh
          06.11.2017 19:37

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


          1. Methos
            06.11.2017 23:43

            Но зависит то, будет ли приносить проект деньги в будущем и сколько вообще этот проект продержится на плаву.

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

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

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


            1. VolCh
              07.11.2017 12:59

              От разработчика лично прежде всего зависит скорость, с которой он решает задачи. Формулировка задачи и критерии их приёмки (в том числе нефункциональные — ресурсоемкость, качество кода и т. п.) обычно вне области его отвественности.


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


    1. dTex
      06.11.2017 15:32

      Ну а как обосновать, что зп будет не обещанные зазывалами в ИТ 150к+, а 30-40к и то, если норму сдашь?


    1. ivanovSP
      07.11.2017 11:19

      какой то замкнутый круг:

      1) я написал на чистом JS и CSS
      2) то есть ты написал свой велосипед? посмотри в сторону фреймоврков
      3) о я написал простенькую вещь на фреймворке за 5 минут)))
      4) нафига тебе фреймворк, эта задача легко решается на чистом JS и CSS


      1) Это хороший навык, пригодится когда нам потребуется написать какой-нибудь супер уникальный календарь с слайдером или график, которого нет в наборе HighCharts, считаю что этим навыком должен обладать любой хороший специалист, плюс к этому все это дело должно быть написано на современный лад ES6/ES7 и код должен быть понятен другим разработчикам, это самый сложный пункт когда пишешь свой велосипед.

      2) Написали свой фреймворк для компонентного подхода в фронте.
      и использовали его на работе последний год — я вас не возьму на работу, это зашквар.
      3) Простенькую многие могут написать, напишите что-то сложней и покажите этот проект.
      4) Если вы делаете сайт визитку под фреймворк — плохо, если вам нужно подсветить кнопку и вы берете фреймворк — плохо.

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


      1. VolCh
        07.11.2017 13:05

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

        Даже, если работодателем был Гугл или Фейсбук? :)


        Если вы делаете сайт визитку под фреймворк

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


  1. Zet_Roy
    06.11.2017 15:33

    А зачем изучать JS? Может давайте будем учить асемблер и С++ чтобы программировать на языках высокого уровня.
    Если человек знает React и имеет пробелы в JS, то это никак не скажется на уровне разработки так как все пишется на фремворках и сейчас никто в здравом уме не будет писать серьезный проект на голом JS так как такая разработка невыгодна для бизнеса, для бизнеса важно скорость разработки чтобы обогнать конкурентов и быстрее получать прибыль.


    1. Free_ze
      06.11.2017 17:17
      +2

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

      все пишется на фремворках и сейчас никто в здравом уме не будет писать серьезный проект на голом JS

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

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

      Внезапно это неплохая идея! Вряд ли это знание навредит, зато помочь — запросто.


      1. Free_ze
        07.11.2017 10:09

        зарапортовался) «заказчик офигеет от репортов клиента»


      1. ivanovSP
        07.11.2017 12:50

        Вы теоретик


        1. Free_ze
          07.11.2017 13:05

          Этому как раз учит практика.


    1. VolCh
      06.11.2017 19:42

      Внезапоно, C++ — язык высокого уровня.


      А если человек знает React, но имеет серьёзные пробелы в JS, то почти гарантированно через довольно короткое время перестанут выполняться нефункциональные требования типа производительности и поддерживаемости.


  1. alex6636
    06.11.2017 15:33

    Что-то слабо верится про 2000 строк на JS, эмитирующих absolute в CSS. Проблема там явно другая решалась


    1. khim
      06.11.2017 17:38

      Нет — решалась ровно это проблема. На старых браузерах (привет «неувядающий MS IE 6») без поддержики absolute и с поддержкой всех их глюков.

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


      1. alex6636
        06.11.2017 20:58

        хм, вроде как IE6 должен поддерживать absolute без проблем http://htmlbook.ru/css/position