Устроился работать Junior Frontend и попал в ад, что делать?
О себе:
Мне 31 год живу в Москве. Решил сменить кардинально профессию с врача на frontend. Верстка, React, redux, нативный js и полный комплект стандартных инструментов к этому.
За 3 недели нашел себе работу Junior Frontend. На собесе пообщались рассказали про проект - это что-то типа конструктора срм / сложных корпоративных систем по принципу low-code, но проект старый.
Написан на бустрапе, jqerry, бэк на node, некоторые виджеты на реакте. Ну я и подумал, что пофигу на var, jQerry и кучу сторонних библиотек типа bluebird для асинхронности. Главное первый опыт, главное взяли. Мне дали доступ к платформе, и я сижу 4 день в шоке.
Тут очень хитрая система: чтобы разработать приложение в платформе-ты задаешь классы, свойства, методы, строишь взаимосвязи, таблицы, словари, типы данных для метода, FOREIGN KEY колекции (типа наследования классов). Затем Вся инфа идет на сервер и преобразуется в базу данных и код приходит к тебе в клиент уже сгенирован. Ну к примеру класс с 7 методами это 4000 строк кода)). Затем выбираешь формы и начинается Ад, потому что нужно как-то выводить данные в формы и строить бизнес логику. Код пишешь на самой платформе, код уходит на сервер с ним что-то проходит)))
Ад в том, что это вообще не типичный фронтэнд. По сути есть объекты в которые обворачивается твой код. Чтобы понять какие данные приходят из инпута нужно танцы с бубном танцевать (типа this.total.console.log() и ответ в консоль приходит в виде объекта) или чтобы сделать запрос в базу с ФРОНТА, ты создаешь объект с настройками и кидаешь в функцию. Нельзя навесить обработчики событий, они заданы в системе в виде глобальных методов на которые я не могу посмотреть.
Ну то есть я даже не могу код посмотреть, чтобы понять какой метод вызывать, и как классы наследуются. Ну то есть оно происходит где-то там "под капотом". Соответственно любое обращение к методу это асинхронная задача. Документации почти нет, комментариев к коду нет, так как сервер генерит структуру фронта из тех параметров которые ты задал, а твоя задача строить бизнес логику между классами и методами и выводит в формы.
Мне дают простую задачу "жмешь эту кнопку, а в этом окне появляется инфа с сервера", которую бы за 15 минут бы решил на реакте, нативном жс, а тут я вожусь один день, чтобы вообще понять как "достучаться до метода класса"
Я понимаю, что тут стек технологий какой-то непонятный, что хотел бы все таки упор делать react (на гите 5 приложений написано, со всеми плюшками типа хуки, редакс, сага, базу данных firebase юзаю), typeScript, node js то что сейчас востребовано, а не работать с легаси кодом.
Это мой первый опыт. У меня прям ступор, что мне делать? Учиться и получать заветный "коммерческий опыт", но древние технологии? или что? Подскажите плиз Ваше мнение, мне больше у кого спросить
Прочитал половину, дальше лень, совет, ливай с этого говна, лучше пойти подешевле работать куда по серьезнее, хоть нахватаешься полезной практики, а тут разгребать застывшее говно мамонта с такими костылями, пользы ноль. Не ну если только времени не жалко, тогда ладно, ковыряй
разгребать застывшее говно мамонта с такими костылями, пользы ноль
Я бы сказал, что польза отрицательная.
По сути, ты будешь учиться делать костыли и когда попадёшь в нормальный проект, по привычки опять будешь костыли делать. В идеале попасть в более-менее новый проект, в котором с удовольствием используются последние технологии.
Если платят хорошо, а после Ада остаётесь живым, то можете дома кодить свой проект по лучшим практикам, а на работе грести деньги.
Если платят плохо и перспектив никаких, то просто уходите :)
Pavel Shvedov, ну я также думаю, но опять же при поиске работы нужно как-то пройти фильтр из рекрутеров и попасть на собес. А хоть какой-то коммерческий опыт в резюме - это плюшка. Это неверный подход?
Василий Сафин, в текущий кризис прыгать туда сюда начинающему опасно, можно и врачом не быть и Frontend не стать. Плюс учтите, что Junior Frontend вы станете после 1.5 года работы по специальности.
1. Сырцы на всё должны быть. Обязательно. Если нет - то только валить. Если есть - всегда можно разобраться, написать автоматизацию лично для себя и пинать хуи - тут переходим к пункту 2.
2. Сколько платят и сколько дают времени на задачу? Если ответ "нормально" и "много" - см. пункт 1, нарабатывается стаж, а свободное время тратится на развитие. Иначе - валить.)
Василий Сафин, я не знаю какие у вас планки ЗП. Для кого-то и где-то 60 - это космос, для кого-то и где-то - только подтереться. Тут вам решать.
"Ковыряться" же надо с умом: часто начинающие пытаются работать с технологией как с чёрным ящиком, чисто эмпирически "тыкая палкой и смотря на результат" - это не правильно.
Если нет документации, надо взять все исходники системы и отследить по коду весь путь данных от начала и до конца. При чём не важно на каком языке код, на незнакомом вам писать не надо, как и понимать хитрости, а понять что именно код делает с помощью логики(и, изредка, базовых доков) - не проблема. Это не так сложно, как звучит, а понимание процессов упростит работу на порядок.
Сложно сказать, насколько это вообще ад.
Да, возможно стек старый, но с архитектурной точки зрения приложение может быть сделано хорошо.
Ваша проблема сейчас в том, что вы в какой-то мере начали понимать типичный реакт стек, но не видели мира за его пределами.
Приложения на реакте, как правило, это пример плохой архитектуры. В реакте есть какие-то общие практики, но сейчас вы не можете сказать хороши они или нет, потому что вы не работали с другими.
Мой совет - продолжить работать и попытаться понять глобально как работает продукт, какие архитектурные паттерны и решения в нем используются.
Когда вы пройдете стадию отрицания и разберетесь в том, как все работает, у вас будет два пути - либо вы поймете что код на самом деле не так плох, и почерпнете для себя несколько хороших идей, либо окончательно убедитесь что код и в самом деле говно, но с полноценным набором причин, а не теми, что вы описали. Сейчас ваше описание выглядит просто как неаргументированная паника разработчика, который столкнулся с чем-то отличным от базового стека. Анализируйте, изучайте. То, как не надо делать - это тоже хороший опыт.
А почему вы считаете, что это старые технологии?
Везде уже давно кричат, что скоро программисты будут не нужны. Будут нужны люди, которые пишут пару строк в табличках, потом все уходит на какой-то сервер и возвращается готовой программой. И документация потеряна 100 лет назад.
Вот вы и попали в проект будущего..
Поработайте полгодика, потом расскажете как там в будущем...
Все в порядке, вольетесь.
4 дня не срок, работодатель закладывает время на адаптацию + с junior спрос небольшой.
То что уже умеете оценивать ситуацию, это хороший плюс.
С марта питон юзал - структуры данных, алгоритмы. С июля ушёл на js/react. В сентябре 3 недели стилям и разметке уделил. В целом верстаю неплохо, но акцент в обучении делаю на js понимание алгоритмов и архитектуры приложений
Gohapoc, да продолжаю работать, хотя бы пол года нужно отработать, проект мне совсем не по душе, решил остаться, чтобы получить опыт работы в команде. Сейчас параллельно практикую react, redux, express, mongo. Недавно проект написал для общего развития https://shielded-ravine-32126.herokuapp.com/
Василий Сафин, красава, а как учил реакт и нативный жс ? Я просто обучаться только начал. Много тем нативного жс выучил перед тем как начал реакт редакс изучать? И если не сложно скажи что за курс по которому учил
Gohapoc, я брался за любые курсы, которые могли дать мне ответы. Udemy крутая тема, сначала там прошёл популярные курсы. Потом понял, что проходя курс «ты не получаешь навык решать проблемы». Начал свои проекты придумывать, и когда возникали проблемы начинал гуглить и решать их. И по поводу знаний, они быстро улетучиваются, но остаётся навык где и как эффективно искать информацию. Я написал чат и вот уже не помню как строил логику сокетов при авторизации на сервере и фронте, сейчас понятия не имею как я это сделал)))) Но когда буду ещё раз реализовывать этот алгоритм, то я уже значительно быстрее его реализую. Короче, нужна тупо практика и самостоятельное решение проблем. Курсы только дают иллюзию, что ты «думаешь головой»
Василий Сафин, понял, спасибо, тоже с юдеми прохожу популярный курс . Ну, там ведь есть проекты учебные, и тд. Уже опыт практика. А потом и свой взять ,как основы пойму. Спасибо за инфо и успехов в работе