Pull to refresh

Comments 57

Получается в 2016 году низкоквалифицированных кадров считающих что «Нет бога кроме JS и V8 пророк его...» станет в 2 раза больше? С одной стороны печально. С другой стороны чем больше таких спецов тем дороже становится настоящие специалисты.
Что вы подразумеваете под «низкоквалифицированными кадрами»? Те кто знает только JS и не знает С++?
[sarcasm mode: true];
Например тех кто написал web сервер на nodejs в 2 строки и считает что знает теперь как писать Веб-сервера и как работает веб сервер и что нет лучше продукта для написания веб сервисов чем node… и так далее, думаю продолжать не стоит.Увы, но 80% всех JS разработчиков именно такие. Остальные 20% грамотные спецы, но они не пишут только на JS и уж точно их первым языком программирования не был JS.
[sarcasm mode: false];
Ну это можно применить к каждой области не только к JS, если вы входите в 20% лучших в вашей облати вы хороший специалист, и на вас будет спрос.

[sarcasm mode: true];
Например тех кто написал web сервер на [Язык программирования] в 2 строки и считает что знает теперь как писать Веб-сервера и как работает веб сервер и что нет лучше продукта для написания веб сервисов чем node… и так далее, думаю продолжать не стоит.Увы, но 80% всех [Язык программирования] разработчиков именно такие. Остальные 20% грамотные спецы, но они не пишут только на [Язык программирования] и уж точно их первым языком программирования не был [Язык программирования].
[sarcasm mode: false];

То есть отличие хорошего JS разработчки от плохого это умение писать на еще каком-то языке? Или может все-таки знание базы(в виде алгоритмов и структур данных, знание принципов работы сетей и т.д.) и умение разобраться в случае необходимости в другой области?
Именно так, отличие хорошего от плохого разработчика в знании базы. И поверьте если в ваш «сарказм шаблон» подставить например Си, то он развалится… Потому что на том же Си без базы кроме Hello world в принципе ни чего не напишешь. А на JS не зная базы можно сейчас написать все:
AI;
Дроны;
Виртуальная реальность;
Дополненная реальность;
3D-печать и роботизация производства;
Мобильные платежи;
Криптовалюта, Bitcoin и Blockchain.

Вот только ответственность за это все будут нести увы другие люди… Слава богу ракетные двигатели еще не программируют на JS
Ну сломаться шаблону будет сложно даже если туда подставить Cи. На Си тоже можно много чего написать использую знаменитый паттерн Copy+Paste и при этом не понимая как это все работает — ну скомпилисоль и ладно. Но да в Си есть компиляция +1 шаг к выпуску в релиз.
>Остальные 20% грамотные спецы
Походу у вас даже почти сухой стакан наполовину полон.
В основном их первым языком был бейсик )))
И да, те кто вообще не знаком с Теорией алгоритмов, Железом, Архитектурой ОС, Си etc. — в моем понимании низкоквалифицированные разработчики. Потому что это база. Это как врач не знающий анатомию.
Только в отличии от врачей (пока что не встречал курсов/обучающих программ «Хирург за 3 месяца») у нас другая проблема у нас сейчас куча курсов наподобие «С++ за три месяца» которые порождают такие кадры.
Не порождают. Потому что после такого курса в случае с тем же C++ или C человек не сможет ни чего толком сложного на C++ написать (В той области где этот язык применим).
А вот после курса по node.js за 24 часа челвоек в принципе сможет написать достаточно сложную штуку, при этом понятия не имея как же она все таки работает. И естественно недоумевая в будущем, почему же она сломалась.
Вы себе льстите. Принципы постороения сложных систем требуют наличия не тока систематического и абстрактанго мышления, которым обладает от силы 10% выпускников ВУЗов, но и обширная практика в построении тех самых систем. Что говорить, если подавляющая часть девелоперов даже элементарных юнит тестов не пишет.
За три месяца вполне себе можно научитья быть немного полезным и понять как развиваться дальше, правда если до этого мозг был научен учиться, т.е. нормально учился в школе, институте. Сейчас же проблема в том, что многие видят в программировании быстрое осуществление всех своих финансовых желаний и только. В целом то не важно умеет человек прогать на с++ или нет, главное чтобы он этого хотел и чтобы с ним можно было общаться. А общения не получится, если уровень его общей интелектуальной подготовки ниже плинтуса. А всякое там кокнретное железо, архитектура, теории аглгоритмов — да оно на практике обычно и не надо почти никому.
А всякое там кокнретное железо, архитектура, теории аглгоритмов — да оно на практике обычно и не надо почти никому

До тех пор пока вы среднестатичтический middle пилящий по тикетам интернет-магазины, сайты визитки, cms и пустяковые мобильные приложения в общем то да. нафиг не надо. Но это лишь очень малая часть рынка разработки ПО, и не самая высокооплачиваемая и не самая востребованная и не самая интересная.
Но если людей устраивает такое положение дел? Ну вот нравиться среднестатичтическому middl'у клепать cms. Вот что им тогда посоветуете делать? Перейти на С++ и делать cms на С++?
Посоветую спуститься на землю, не мнить себя Senior Software Architect, и не просить немыслимых денег просто за то что ты в 2 строки написал на JS веб сервер и теперь «разбираешься в разработке серьезных распределенных систем» а посему ты уже не middle совсем и теперь твои сайтики стоят дороже. Вот такое положение дел сейчас.

А происходит потому что люди начитаются вот таких статей о том, что «Вот выучи JS и станешь программистом, будешь бабло лопатой грести и крутым дядькой станешь».
Что вы все повторяете про «2 строки написал на JS веб сервер»? Вы с такими людьми часто встречаетесь и работаете? Ну так возможно проблема то у вас?
Часто встречаюсь. На собеседованиях например… Когда приходит очередной «backend senior» с нодой с этими 2-мя строчками за плечами. Это печально, и это проблема такая не только у меня :)
Ок. представил картину.

Вам зачем-то понадобился nodejs программист, он к вам пришел, далее слышит вопросы:
-В чем отличие железяки N от железяки M?
-Как настроить Софт К совместно с софтом Т на железяке Л?
-Как написать алгоритм сортировки трех пятибайт бинарной хрени на ардуино?

Далее он логично говорит:
-Чуваки да я ваще в жизни две строчки написал, так что досвиданья и идите на х.

Чтобы отличить грамотного программиста узкой специализации от фанатика определенного ЯП, какие вопросы вы ему зададите? Как на ноде написать сервер? Или как сервер работает в принципе? Если у вас все фанатики определенной технологии я вам не завидую, потому что при смене задач, росте компании, и смене стека технологий, придется всех уволить и нанять других.
>Чтобы отличить грамотного программиста узкой специализации от фанатика определенного ЯП,
>какие вопросы вы ему зададите?
Если вам нужен грамотный программист зачем вы ищете их именно среди программистов на nodejs?
Какие вопросы я задам, будет зависить от задач, которые он будет выполнять. По ходу разговора я также постараюсь понять что он за человек в целом и чем он вообще занимался, но однозначно я не буду ему задавать дибильных вопросов.

>Или как сервер работает в принципе?
Устраивать экзамен по электротехнике я ему не буду, я ее уже и сам толком не помню.

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

Где я такое говорил? Я сказал что приходят на позицию Сеньора а в итоге оказывются знают только ноду, а основ алгоритмов, БД, ахитектуры компьютерных систем не знают. Но упорото прут на сеньора.
Устраивать экзамен по электротехнике я ему не буду, я ее уже и сам толком не помню.

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

Помогут, потому что грамотного спеца можно пересадить на другой стек, в отличие от JS фанатика который все на нем готов писать
>Где я такое говорил?
А что у вас в вакансии написано? «Ищу сеньора программиста»? Стало даже интересно, а что в требованиях пишете? Или ничего не пишете, а потом удивляетесь? Ну и если это все вас так раздражает, чего заранее удаленное тестирование с этими вопросами не устроите?

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

>Наверное вы имели ввиду электронику.
Суть важно? Есть и предмет который электротехника называется, суть в том что они про принципы.

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

>в отличие от JS фанатика который все на нем готов писать
Как-то пугающе вам именно на JS этот везет.

Как-то пугающе вам именно на JS этот везет.

Есть еще фанатики PHP, есть фанатики Java, фанатики Ruby. Их много, просто фанатики JS в последнее время со всех щелей лезут. Видать у языка рельно взлет, раз каждая домохозяйка уже на нем пишет.
Повторюсь, я не против JS в принципе, меня раздражает истерия которая творится сейчас в мире вокруг него и раздражают проповедники JS наводняющие рынок низкоквалифицированными кадрами. Я именно это пытаюсь донести
>раздражают проповедники JS наводняющие рынок низкоквалифицированными кадрами.
Нет, ну тут я с вами согласен, JS уже в этом плане PHP даже наверное переплюнул.

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

Вы правы, не панацея, но такие вопросы нужны. и вот почему:

Простой пример:
Приходит человек, требует нормальные деньги за свою работу, опыт работы есть, какие то проекты на node делал. Ты спрашиваешь, ну расскажи преимущества node, а он говорит: "- Ну node.js асинхронный". o_O
Ты спрашиваешь: "-В смысле?"
А он отвечает "- Ну там все асинхронно делается, вот PHP синхронно а в node асинхронно и поэтому он бысрее и лучше".
Ты просишь пояснить, и выясняется что он понятия не имеет о чем говорит, что асинхронный там только I/O, что там используется классический Event Loop.
Оказывается что он понятия не имеет что аналогичные вещи можно сделать и на другом стеке.

Можно такого разработчика назвать middle node.js developer? Я думаю нет. Но он то себя называет, и на работу устраиватся идет, и деньги просит, и увы но таких большинство сейчас, и я думаю вот именно из-за таких вот публикаций.
А можно сделать намного проще. Если человек не дибил и к тому же пришел, хотя бы, не только за тем, чтобы закрывать какие-то тикеты, расстроено обсуждать курс доллара, мечтательно думать о другом континенте. То можно просто предложить ему вместе поработать, с оплатой за это время, день, два, да можно час. Тут просто надо быть не выпендрежным очень занятым начальником, а вспомнить когда сам был на его месте, постараться обеспечить максимум комфорта. Ну я имею ввиду ситуацию, когда вы не HR, таки да, фильтр должен быть.
Кстати та ситуация которую вы привели, ну так 90% ответят наверное. Можно назвать middle, тупо потому что работу он свою делать может, а этот все объяснить можно и позже. Мой любимый прикол — соревнование php vs nodejs на какой-нибудь типовой задаче, правда прикол опасный) многие начинают думать)
соревнование php vs nodejs на какой-нибудь типовой задаче, правда прикол опасный) многие начинают думать)

Может тогда уже node.js vs reactphp хотя бы ?? А то вы фреймворк сравниваете с языком. А вообще node и php они для разных задач…
в том и суть выносящего мозг результата) nginx+phpfpm и nodejs) Как раз хорошее объяснение реальной асинхронности) а так то да phpDaemon но это уже не спортивно) Впрочем тут вся суть обычно, в том что пхп я уже перелюбил, а они JS любить только начали)
В целом я думаю мы закончили с вами спор, а наше обсуждение каких то частных случаев мало кому интересно, так что если хотите можем продолжить разговор в личке.
Впрочем тут вся суть обычно, в том что пхп я уже перелюбил, а они JS любить только начали)

+1. Думаю закончим. Я и PHP и JS уже перелюбил. Теперь больше в сторону всяких Go, Cи и прочего хардкора тянет.
Думаю вам есть что сказать автору этой статьи — можете написать опровержение и отправить автору.

Так проблема в чем? В том что люди в области ИТ с завышенной самооценкой и в этом виноват JS на котором можно написать приложение в 2 строчки?
Автор статьи закоренелый JS программист. Можно сказать ветеран JS. Мне не чего ему сказать. Он двигает свою технологию. Я рад за него, но считаю что место этой технологии в браузере и ни где больше. Извините, таково мое мнение.
Проблема в том что вместо того чтобы агитировать людей на изучение программирования агитируют на изучение технологии Х потому что на ней можно делать все что угодно и она самая лучшая.
Этим болеют только в JS сообществе.
Ваша позиция плоха ровно на столько же, насколько та, с которой вы спорите. Всякой задаче свой инструмент — и если nodejs эффективно справляется с асинхронными риалтаймовыми задачами, почему бы не применить его на сервере? Ну да, положим, вы можете написать что-то аналогичное на почти любом другом языке, но зачем, если это дороже?
Ваша позиция плоха ровно на столько же, насколько та, с которой вы спорите. Всякой задаче свой инструмент

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

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

Огорчу вас, но реалтаймовые задачи работают на базе RTOS и JS там не валялся.
И node.js не асинхронный. В нем есть такая штука как non-blocking I/O, да и только.
Но эта штука есть не только в node.
Конечно, не надо. Потребность в JS не говорит о том, что с помощью него решают любые задачи – с помощью него удобно решаются задачи, характерные для сегодняшнего дня.

Вы невнимательно читаете, я нигде не утверждаю, что nodejs асинхронный. Да, есть не только в node, но JS-программист сравнительно дешевле, чем, например, программист на Erlang.
Многие люди пилящие на java всякие ентерпрайзер за миллионы нефти, использующие проверенные решения как бы тоже особо не запариваются как устроено конкретное железо или в чем на уровне различие каких то двух алгоритмов на уровне процессора, они просто знают что в их окружении делать можно, а что нет и когда. Сейчас сфера разработки стала очень объемной в плане знаний и знать все абсолютно невозможно, и фразы про «архитектура, железо, алгоритмы» устарела. Но скил «уметь учиться» не устареет никогда.
Энтерпрайз бывает разный. Бухгалтерскую систему написать для нефтедобывающей компании на Java это одно, а вот написать на программу на ПЛК управляющую нефтеным танкером это другое, и там очень сильно заморачиваются по поводу железа, алгоритмов и прочего. Потому что в таких системах цена ошибки — многомилионные убытки и жизни людей.

А когда не заморачиваются и пишут дронов на JS получается че то типа такого: lifenews.ru/video/14222
Спасибо, капитан очевидность. Однако не едиными программами управлением танкеров мир живет, а в той же у бухгалтерии тоже много все го разного, для чего нужно быть умным. И знать тоже нужно больше всякого, просто другого. Я даже больше вам скажу, когда пишешь программу для людей, неожиданностей нааамного больше, чем когда для сертифицированной и документированной железяки.

И что значит «заморачиваются по поводу железа, алгоритмов и прочего»? Если тебе нужно знать железо для написания кода, ты знаешь железо — иначе как ты код то напишешь? Если нужно знать алгоритм и его поведение при высоких нагрузках, ну так нагрузочное тестирвоание не пройдешь и работу опять же не сделаешь. Но также если комп можешь спаять на коленке, написать под него загрузчик и ОС, а для работы требуется совершенно другое — например быстро создавать продукты на языке высокого уровня, то очевидно же для такой работы это будет малополезно.
Я очень сильно сомневаюсь что программу на ПЛК в принципе будут писать на Java. По крайней мере на взрывоопасном производстве ПЛК должны быть сертифицированы и программируемым на одном из языков стандарта IEC 61131. А они очень низкоуровневые, напрямую привязаны к железу. И несмотря на более высокие требования к знаниям, оплачивается меньше чем написание сайтиков (я собственно поэтому и сменил область).

Так что приведённая аналогия подобна котёнку с дверцей.

Получается в 2016 году низкоквалифицированных кадров считающих что «Нет бога кроме JS и V8 пророк его...» станет в 2 раза больше? С одной стороны печально. С другой стороны чем больше таких спецов тем дороже становится настоящие специалисты.

Специалистов по JS станет больше, потому что он более востребован. Оплачиваться они будут выше чем «настоящие специалисты».
Специалистов по JS станет больше, потому что он более востребован. Оплачиваться они будут выше чем «настоящие специалисты».

На рынке лендингов и сайтиков общего назначения в общем то да. В хайлоад бэкенде, системной интеграции, ентерпрайзе, мобильной разработке, прикладной разработке увы нет.
Более того, я предпочту нормальный банк-клиент на js (node плюс клиентский js) значительной части современных банк-клиентов, которые хоть и на Java, но почему-то до сих пор работают только под IE6. Спрашивается, на кой чёрт им тогда вообще Java, если там ни кроссплатформенности, ни даже кроссбраузерности.
То есть такие «мелочи» как:
1 == 1.0000000000000001 // true
0.1 + 0.2 // 0.30000000000000004
"5" + 3 // "53"
в банковском приложении вас смущать не будут?

По вашему в банковских приложениях главное кроссбраузерность и кроссплатформенность? Тогда мне вас искренне жаль. Знаете, считать огромные деньги на динамически типизированном языке, та еще глупость… Из-за того что программист где то забыл переменную явно преобразовать, потерять пару лярдов баксов то еще удовольствие.
Хм, из того что было под рукой
$ python
>>> 0.1 + 0.2
0.30000000000000004
>>> 1 == 1.0000000000000001
True

$ scala
scala> 0.1 + 0.2
res0: Double = 0.30000000000000004

scala> 1 == 1.0000000000000001
res1: Boolean = true

Это я к тому что это ожидаемые последствия арифметики чисел с плавающей точкой.

"5" + 3 == "53" // true — это, конечно, излишняя гибкость, но к этому быстро привыкаешь. Особенности языка.
наш любимый Java:
import java.math.*;

public class MainClass {
    public static void main(String[] args) {
        System.out.println( 1 == 1.0000000000000001 );
        // true
        BigDecimal x = new BigDecimal(0.1);
        BigDecimal y = new BigDecimal(0.2);
        System.out.println(x.add(y));
        // 0.3000000000000000166533453693773481063544750213623046875
    }
}


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

1) Java годами поддерживает свои библиотеки, обратную совместимость и стабильность API (Сообщество node.js о разработке саймой node не могло хрен знает сколько договорится, не говоря уже о куче мусора в репозиториях NPM).
2) Java строготипизированный язык и ошибок с неявным приведением типов там в принципе нет. (В JS, малейшая ошибка программиста и программа считает черт знает что).

И на последок, если смотреть более предметно на точность вычислений, есть такая проблема плавающей копейки, которая с легкостью решается на Java уже черт знает сколько лет.
public class Main {

    public static void main(String[] args) {
        // 2,20 + 3,53 = 7,74 - неверно!
        System.out.printf("2,20 + 3,53 = %1.2f%n", 2.204f + 3.533);

        MathContext mc = new MathContext(3);
        BigDecimal a = new BigDecimal(2.204, mc);
        BigDecimal b = new BigDecimal(3.533, mc);

        // 2,20 + 3,53 = 7,73 - верно!
        System.out.printf("2,20 + 5,53 = %s%n", a.add(b));
    }
}


Вы возразите, что эту же проблему уже можно решить и на JS. Да вы правы уже можно.

Правда с помощью сторонних пакетов, содранных целиком и полностью с исходного Java пакета… Например с помощью этого: www.npmjs.com/package/big-decimal И естественно не дающих ни каких гарантий что он будет поддерживаться.
Хранить деньги в floatах? Даже я, ничего не зная о внутренностях банковских приложений, знаю, что так делать нельзя.
Банку-клиенту не нужно считать деньги. Ему нужно правильно отобразить то что хранится в базе/middleware.
А если он в Си забудет преобразовать? А Python не даст ему забыть. Вы вообще отличаете динамическую типизацию от слабой?
Что за глупая привычка в каждой статье по js, где хвалится его экосистема, меряться количеством модулей в репозитории? В npm же есть целая куча модулей-однострочников, философия такая. А ещё есть целая куча мёртвых проектов и дубликатов.
Да, инфраструктура растёт (и это хорошо). Но вот эти графики сразу портят впечатление от статей…
Не понятна цель поста. Сейчас зарплаты высокие, сложность поиска работы не очень. Хотите наоборот, что бы работников было много, а зп низкой. Зачем пилить сук на котором сидишь?
Так разные же люди пилят. Те кто нагнетает — хотят много унифицированных миддлов, с универсальным интерфейсом, два дня на подготовку, 15$ в час, униформа, начинаешь с WC рефакторинга старого кода. Есть поток задач — развесил объявлений на остановках, пришла толпа жаждущих работы программистов.
> К 2020 году компания планирует приобрести полмиллиона самоуправляемых автомобилей, а к 2020 году компания намерена купить 500 тыс. беспилотных транспортных средств.

Это как в загадке про самолёт, который в одну сторону летит полтора часа, а в обратную — 90 минут?
Конечно. Это же JS, на самом деле там два разных числа — в первой части предложения 0,500001 млн, а во второй — 500 000, и пока это не примешь к сведению, кажется, что они равны.
Если нет понимания как грамотно «запихнуть» логику бизнес-задачи в код рабочего продукта, то ни один язык программирования не сможет помочь, включая javascript.
Поэтому спрос на хороших специалистов в сфере IT-разработки будет только расти для всех существующих языков разработки.

Главные вопросы:
1. Скорость работы JS на клиентских приложениях и интеграция с аппаратной частью: когда же будет JS-нативка?
2. Как же защищать свой клиентский front-end код на JS от обычного копирования (обфускаторы — не вариант)?
3. Будут ли разработаны какие-то механизмы, препятствующие «заимствование» и использование чужих наработок?
Нахрена людям ваше программирование, и без него есть много других областей, более оплачиваемых.

Сейчас даже строитель или сантехник зарабатывают хорошо и даже больше чем программисты.
>сантехник зарабатывают хорошо

да, да. Программисты на Java хорошо получают ;)
Sign up to leave a comment.