Ответы пользователя по тегу Веб-разработка
  • В каком стеке web технологий одновременно: высокий порог входа, высокие зарплаты и в целом не проблема найти удалёнку?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Удаленных вакансий на чисто React+Redux довольно немало, правда реальный рейт 100-120 тыр в месяц. Если в Москве/Питере в офисе, то реально найти 150+. В целом это всё.

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

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

    Ну и да, мидлов+ и особенно синьоров катастрофически не хватает на проектах и за ними охотятся повсеместно.

    Но рейтов 30-40 у.е., чтобы работать пару-тройку часов в день и не напрягаться, про такое я не слышал, и так хотел бы каждый первый наверное, но объективная реальность, увы, она другая...
    Ответ написан
    9 комментариев
  • Что почитать про правильное проектирование своих приложений?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    построй десяток-другой-третий лэндосов, кабинетов, онлайн-магазинов и прочих веб-приложений - соберешь массу контекстов относительно того что, как и зачем делается, там уже и понимание придет, какими инструментами и что и как лучше делать.
    Ответ написан
    6 комментариев
  • Правда ли что рынок веб разработки "перегрет"?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Веб сильно повзрослел в последние годы, сюда пришел энтерпрайз со всеми вытекающими. Как в 200х клепать лендинги на jQuery и получать хороший гешефт уже не работает. Надо знать, понимать, мочь и уметь очень много и сразу, учиться на ходу, вникать, рефакторить тонны легаси и пр., иначе в нормальную команду/проект попасть архитрудно. Ну и очень много вакансий за еду, но туда тоже всех подряд не берут, кое-что все же разуметь нужно...
    Ответ написан
    Комментировать
  • Каковы современные тенденции веб программирования?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Был я когда-то фуллстеком, так же на пыхе в процедурно-функциональном стиле кодил бэк, ООП был в виде подключения всяких библиотек типа Smarty, DBSimple. Году в 10 надоело плодить бойлерплейт, психанул и запильнул небольшой фреймворк, осознав, что основная логика уехала на фронт, поэтому движ делал упор в отдать первичную верстку и поддерживать кучу AJAX-запросов удобно. Фронт делал на jQuery с плагинами.

    До некоторой поры это работало прекрасно, пока, однажды, не пришлось пилить форму на 60 полей с кучей логики для интеграции внутренней CRM заказчика с Цианом. Особенно когда через несколько месяцев пришлось менять логику, т.к. жизнь не стоит на месте...

    Окончательно меня добила форма для подачи заявок на ипотеку на 8 страниц и 300 полей с конфигуратором и возможностью отключать любые поля, блоки и даже страницы. Заказчик потребовал реализации на jQuery, хотя я уже вовсю тогда увлекался React' ом.

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

    Сначала я метнулся в Node.JS, но там мне показалось всё скучным, поэтому я переключился на фронт, преимущественно на React + Vanilla. Оказалось, что я толком и не знал JS, поэтому я стал методично закрывать все свои белые пятна. Один из лучших способов что-то выучить - начать учить этому других, поэтому я пошел наставником по JS куда взяли, что помогло в сжатые сроки освоить базу, т.к. сам для себя можешь и смухлевать, а когда ответов ждут другие люди, это очень дисциплинирует. :)

    В перспективе планирую все же вернуться к фуллстек разработке, но уже на базе Node.JS + React, т.к. лично для меня данный стек наиболее комфортный.
    Ответ написан
    2 комментария
  • PHP+JS Трудности с выбором учебно-боевого проекта?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Если нет опыта успешного и эффективного решения олимпиадных задач, то ситуация патовая.
    Ответ написан
  • Вопрос о новых веяниях и требованиях во фронтенде?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Прежде чем осваивать фреймворки/библиотеки да и прочие премудрости фронтенда настоятельно рекомендую прокачать алгоритмы и структуры данных путём зарешивания сотни-другой олимпиадных задачек по информатике, например на кодварс, иначе будешь мучаться.

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

    P.S.: из моего опыта наставничества - чуть не половина курсантов сливают первые несколько интенсивов по причине неумения реализовать базовые алгоритмы, остальная половина кодит не первый год и умеет это делать на других языках, и совсем редко встречаются юные, и не очень, дарования, которые с места в карьер...
    Ответ написан
    5 комментариев
  • Как сделать поиск на сайте через несколько select'ов?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Все возможные комбинации сгенерировать предварительно и в виде скрытых стилями ссылок разместить на странице, показывать нужную при выборе чего-либо.
    Ответ написан
    Комментировать
  • Как выводить заглушку на сайте при отсутствии интернет соединения?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Service Worker это называется, гуглим...
    Ответ написан
    Комментировать
  • React: как правильно загрузить картинку(php)?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    На тег формы вешается onSubmit={this.submitHandler}, в который прилетит агрументом evt. Через evt получаем доступ к userImage. Отправить можно через axios.

    В конструкторе такой фигней страдать, да еще с jQuery это весьма годное извращение. :)

    Вообще PHP с React это не очень сочетание, как только речь зайдет про Server Side Rendering во имя Seo, вот тут и поймешь, как здорово промахнулся с пыхой на бэке.
    Ответ написан
  • Создание простого приложения на react?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Голый JS и даже с голым React это очень-очень-очень мало для построение чего-либо существенного, увы.

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

    Для того чтобы делать православно и годно вангую минимум полтора-два года упорства и настойчивости по 6-12 часов ежедневно, ибо собрать нужно столько граблей и набить столько шишек, что мама дорогая... Ну и еще пару десятков технологий освоить до кучи, часть из которых весьма нетривиальны, при неприлично скудной документации...
    Ответ написан
    Комментировать
  • Есть ли сайт идей, где можно приложить свои умения в области web программирования?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Сдается мне не полетит оно...
    Ответ написан
    Комментировать
  • В сторону какого ЯП для web смотреть с дальнейшей перспективой?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Все самое интересное в вебе уже лет десять как на фронт уехало, так-что что там ловить на бэке я не очень понимаю, кроме экзотических случаев все сводится к написанию еще одного REST-сервера с преферансом и барышнями. На чем писать - не суть как важно. Я могу сравнивать PHP и JS, т.к. с первого мигрировал на последний. Пару лет назад JS я откровенно недолюбливал, но жизнь заставила, я стал его изучать глубже и, внезапно, понял, простил и полюбил... После определенной практики мозг перенастроился на JS, теперь писать на PHP мне некомфортно, т.к. он как JS не умеет. Главное отличие PHP от JS в том, что первый синхронный, а второй асинхронный однопоточный. И с этим придется жить, так-как на бэкенде стиль программирования будет кардинально различаться. Например PHP без свистелок сохранять состояние между запросами не умеет, из-за этого куча накладных расходов. С другой стороны JS умеет, но толку от этого не густо, потому что на более-менее серьезном проекте придется масштабировать и, всё равно, использовать что-то для персиста стейта. С другой стороны если упал PHP, скорее всего это только один поток, а JS упадет - так все коннекты отвалятся, сколько есть. В общем плюсы и минусы есть у обоих, но для меня плюсы JS перевешивают его минусы.
    Ответ написан
    Комментировать
  • И снова курсы веб разработки?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    В конце 2015 года я задумался о том, чтобы свалить со стека php+jquery на что-то более адекватное современным реалиям. Т.к. года с 2011 ajax/spa неумолимо все больше доминирует над старомодным рендерингом средствами php, мой выбор пал на клиентсайд с JS.

    До того времени (начало 2016 года) я к JS относился весьма скептически, т.к. еще свежи были впечатления от нездоровых приключений с js3 vs ie6 и иже. Тем не менее проштудировав материалы JavaScript Weird Parts и ролики Зоракса я, внезапно, понял, простил и полюбил JS.

    По мере же погружения в прелести ES6+ я стал фанатом JS.

    Моё стремление в сторону JS крепчало.

    Из фреймворков я сначала позарился на Ember.JS, но что-то путное на нем слепить с наскоку оказалось задачей непосильной, хотя он, безусловно, крут.

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

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

    Параллельно, впервые за 20 лет практики, я внезапно стал дистанционно "ходить" по собесам, и .... круто обламываться. Особо больно было в первые 2-3 раза. Сказались дурные привычки юности - стремление изучать только то, что конкретно приносит пользу здесь и сейчас, игнорируя "тупую", "бесполезную" теорию. Сыпался на таких мелочах, что стыдно вспомнить...

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

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

    Так вот, чтобы переформатировать мозги с пыхи на JS мне нужно было попрактиковаться несколько сотен часов. Я весьма ленив, поэтому сам себе задачки придумывать бросил сразу после школы и школьных олимпиад - наигрался. Тем не менее без практики никуда, поэтому я пошел на кодварс (пруф: https://www.codewars.com/users/iCoderXXI) и стал решать там всё подряд. Поначалу код был ужасен, но работал, постепенно мозг привык и качество кода стало расти. Параллельно стало сложно писать на пыхе, ибо кода получается существенно больше при аналогичном выхлопе. Подобный инцидент у меня случился году в 2006, когда я с клиппера мигрировал на пыху, потом было сложно писать на клиппере, ибо он убог. Пока я не знал пыхи, клиппер мне казался весьма недурным языком. :)

    В общем материалов и приёмов пришлось освоить массу, на все про все у меня ушло более 1.5 лет в режиме 2-4+ часа ежедневных занятий. За это время я умудрился завалить порядка 10 собесов, пока, наконец, не выстрелило.

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

    Это я все к тому написал, что переучиться можно в любом возрасте (мне 36), было бы желание и упорство.

    В общем я настоятельно рекомендую упор делать в JS/HTML5+/CSS3+ и React/Vue (хотя тут по вкусу, но на эти два "фреймворка" приходится существенная доля вакансий и заказов).

    ВАЖНО! Если раньше не доводилось программировать, то в обязательном порядке параллельно с JS нужно освоить базовые знания/навыки в алгоритмах и структурах данных, а, так же, базовый уровень в информационных технологиях, иначе многое будет просто непонятно, будешь буксовать часами и днями на всяких глупостях.

    P.S.: На htmlacademy курс мне нравится (я там подрабатываю наставником). Однако мне очень хочется, чтобы курсанты приходили несколько более подготовленные по части алгоритмов и структур данных.
    Ответ написан
    2 комментария
  • С чего начать изучение современных веб-технологий?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Друже, нынче web = JS, а JS = web. Есть сферы, безусловно, где WEB как-то обходится без JS. Есть сферы, где JS применяется не для WEB. Но, в общем и целом, WEB = JS. Безусловно это мой опыт, мои наблюдения, моё мнение.

    Так вот, через пару лет при упоминании ES5 народ будет крутить пальцем у виска, поэтому, я считаю, нужно всесторонне полноценно освоить ES6+, т.е. так называемый ES.NEXT

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

    Проскакивать этот этап нереально и бессмысленно.

    Велкам в кодеварс или любой другой аналогичный ресурс и фигак-фигак-фигак.

    Повторюсь, рефлекс образуется после 1000+ часов однообразной деятельности.

    Регнуться можно по ссылке www.codewars.com/r/pj8ELg
    Ответ написан
    2 комментария
  • Принцип взаимоотношений front & backend?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Если коротко, то в наши дни, по сути, бэк нужен для двух вещей - отдать статику для SEO, и отдавать данные по API (REST, GraphQL, и иже). Отдавать может как по AJAX (fetch, xhr, axios, ...) так и по вебсокетам.

    Фронт, в свою очередь, если SEO нужно, изоморфно рендерится беком (вебпак?), потом отдается и связывается на клиенте. Если SEO не нужно (закрытое SPA) то отдается минимальный бойлерплейт и весь UI генерится динамически, например React.

    Разработка вся удобная, модульная, собирается вебпаком в бандл.
    Ответ написан
    Комментировать
  • Переход из С++ в PHP?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Я с PHP мигрирую потихоньку на JavaScript, оно мне, оказывается, ближе. Недавно вот потребовалось некоторый код перевести обратно с JavaScript на PHP, и я испытал массу непередаваемых ощущений, настолько уже привык к JS-style coding. Кода получилось раза в 2 больше, и гораздо менее удобочитаемого.
    Ответ написан
    Комментировать
  • Как, чем, кем проверить сайт на уязвимости?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Добавлю еще что настройки сервера, на котором вертится сайт, тоже роляют. Должен быть годный фаервол, который паразитные запросы сможет резать, не доводя до апача или под чам там сайт вертится.

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

    Что касается собственно php, в первую очередь нужно не доверять пользовательским данным, т.к. это прямой путь словить SQL-инъекции. Ловить XSS и пр.
    Ответ написан
    Комментировать
  • Меньше стек технологий, больше шанс устроиться на удаленную работу?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Сколько видел вакансий - везде стопицот непохожих требований, а когда доходит до собеседований и тестовых заданий, то всплывает еще стопицот сюрпризов.

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

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

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

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

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

    С 2015 года я положил глаз на full-stack JavaScript и потихоньку развиваюсь в данном направлении. Тренды таковы, что все больше вакансий и прочих предложений будут так или иначе именно в эту сторону. Одно меня печалит, пока что рынок фронтенда держит angular 1.x, но, думаю, это временно.
    Ответ написан
    3 комментария
  • Где вести записи разработчику?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Никакие не использую. Айти, в частности веб, это настолько динамичная среда, что уже через пол-года многие вещи устаревают, а им на замену рпиходят новые, более эффективные и пр. Поэтому в нужный момент ищу ровно то, что актуально и в тренде именно сейчас.
    Ответ написан
    Комментировать
  • Существует ли "карта программиста"? Что и за чем учить?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Нет одинаково эффективного пути для всех и каждого.

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

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

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

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

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

    На первых порах, тестирование будет занимать до 99% времени и сил. Заодно подтягивается синтаксис используемых языков (вообще не важно каких), вырабатывается внимательность, концентрация, тренируется память и пр.

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

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

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

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

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

    Ах да, обложись справочниками по любому инструменту и научись быстро вникать и подхватывать необходимый минимум. Обычно достаточно на 20% владеть инструментом, чтобы решать 80% задач.

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