×Закрыть

Пошук роботи після вивчення Angular

Всім доброго дня! Я закінчив курси по Angular(минулого і цього року). Маю багато зроблених проектів та багато всього вивчив за цей час(я так думаю). Але хотів задати питання, от як знайти роботу в невеликому місті Черкаси!? зараз всі на React, а Angular тільки із навиком роботи більше двох років. Так де ж ті навики взяти? На Linkedin є профіль але пропозицій немає. Хто що порадить?

LinkedIn

Лучшие комментарии пропустить

Почитать dou, так кадый перед тем, как начать работать в IТ, должен пройти какой-то ужасный тернистый путь и работать за 4 тыс грн очень очень долго.

Автору. По ангуляру есть ремоут вакансии, можно пробовать. Но сейчас большинство компаний заморозили найм. Есть время покачать скилы.
На месте автора я бы все-таки со временем стремился в фулл стек: совершенствовать знания js и углубляться в бекенд (в ноду, как вариант).
Время, может и потеряешь, но если не удастся найти работу с Ангуляром, то найдешь работу с нодой. А потом, зная ангуляр, будешь прокладывать пусть в фулл стек более быстрыми темпами.
Если идея с фулл стеком не нравится — начинай смотреть реакт/вью или что там популярно. В любом случае — в дальнейшем оно все пригодится.

P.S. Личное наблюдение. Среди знакомых девелоперов, которые пишут бекенд на рызных языках, мысль перейти на другой язык не вызывает ужас. Люди просто понимают, что придется какое-то время потратить на разбирательство в нюансах.
Но среди фрондент js-девелоперов мысль о переходе на другой фреймворк вызывает такой ужас, который сопровождается рассказами о тысячах часов, необходимы на изучение нового фреймворка.

Якщо ви відчуваєте, що досить добре знаєте Ангулар і бачите попит на Реакт-розробників, то в чому проблема? Я на Реакті не писав, але вивчав його трохи — і після Ангулару він виглядає не дуже складно. Щодо досвіду — так, здобути його важко, тим паче, перший, але можна ще шукати і ремоут-вакансії — такі також іноді трапляються. Ну або переїзд в Київ чи ще кудись — цей шлях обрали багато ваших попередників. )

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Для початку, зареєструйтесь на www.linkedin.com, постарайтесь добре оформити профіль. По-друге, не просіть вище 600 баксів зі старту, а краще починати із 300-400 баксів. Це стосується офісу. Для віддаленої роботи — діліть цю цифру на два.

Із пів року реального досвіду дуже сильно збільшить шанси знайти щось пристойне.

Але не рекомендую сходу милитись на Київ, якщо ви не маєте там дешевого житла (у родичів, наприклад). У мене на саму їжу йшло 300 баксів/міс., за житло платив теж 300 баксів/міс...

як тільки про Київ думка прийшла, то зразу згадав скільки житло коштує і передумав)

Те, що ви закінчили відразу два курси це звичайно добре, але ви коли їх проходили, то запитували себе (і викладача), а де я власне буду працювати?

я мав надію, що мене візьмуть в ту компанію, яка викладає ці курси

І чого ж вас туди не взяли?

Например, после таких курсов как у Вас, то вообще никуда не возьмут :) Угараздило мою екс-компанию отправить к вам на курсы Ангуляр Адванс :)))

можливо через карантин призупинено) ныхто нічого не говорив

Почитать dou, так кадый перед тем, как начать работать в IТ, должен пройти какой-то ужасный тернистый путь и работать за 4 тыс грн очень очень долго.

Автору. По ангуляру есть ремоут вакансии, можно пробовать. Но сейчас большинство компаний заморозили найм. Есть время покачать скилы.
На месте автора я бы все-таки со временем стремился в фулл стек: совершенствовать знания js и углубляться в бекенд (в ноду, как вариант).
Время, может и потеряешь, но если не удастся найти работу с Ангуляром, то найдешь работу с нодой. А потом, зная ангуляр, будешь прокладывать пусть в фулл стек более быстрыми темпами.
Если идея с фулл стеком не нравится — начинай смотреть реакт/вью или что там популярно. В любом случае — в дальнейшем оно все пригодится.

P.S. Личное наблюдение. Среди знакомых девелоперов, которые пишут бекенд на рызных языках, мысль перейти на другой язык не вызывает ужас. Люди просто понимают, что придется какое-то время потратить на разбирательство в нюансах.
Но среди фрондент js-девелоперов мысль о переходе на другой фреймворк вызывает такой ужас, который сопровождается рассказами о тысячах часов, необходимы на изучение нового фреймворка.

Ти плутаєш спеціаліста який просто бере інший інструмент («перейти на другой язык») і взагалі нулячу людину. З вулиці. Для якої що біт, що кілобіт звучить однаково.

работать за 4 тыс грн очень очень долго.

Ну йди класти плитку одназу за 250 грн. квадрат. Так само будеш підсобником спочатку. Войті тут нічим не унікальне. Ну чи лікарем затешися, одразу, в хірургію, без 5-ти років навчання і практики. Це тільки професію двірника можна за день освоїти.

Про перехід на іншу мову я писав не про автора, а взагалі, оскільки в темі нижче такі думки простежуються. Читай уважно нижче.
Подобається класти плитку, оскільки порівнюєш такі речі?)
Зарплата новачка бухгалтера в Києві починається десь від 10 тис грн. Тому казати про 4 в девелопменті геть смішно.
І оці порівняння лікарів з формошьопами геть смішні. Якщо хочеш порівнювати лікарів і ІТ, то порівнюй з якимось ДС.
В мене є нормальна кількість знайомих, які після медичної освіти стали девелоперами. Так вони кажуть, шо стати в ІТ джава сіньйорами значно легше, ніж стажуватись в медицині.

Зарплата новачка бухгалтера в Києві починається десь від 10 тис грн. Тому казати про 4 в девелопменті геть смішно.

Що таке «новачок бугалтер»? Людина після 2-х місячних курсів, чи після якогось технікуму або інституту?
Я згоден, що 4 це смішно. Але, я також згоден, що курси це просто *ніщо*. Тому, з іншої сторони, це просто рандомна людина з вулиці, яка до програмування має таке ж відношення як я до медицини (я не про автора, його рівень не знаю). Тому, якщо студенту з дипломом в КС 4K це принизливо і образливо то випускнику курсів ВайтіВайті це цілком норм. Я так вважаю.

Тоді ми правильно один одного розуміємо. Просто є ті, хто приклали зусилля і вчились (навіть за відсутності профільної освіти), а є ті, хто ходили на курси два місяці і відразу хочуть роботу на штуку баксів. Я завжди кажу про перших.
P. S. Бухгалтер новачок — мав на увазі після внз з профільною освітою, чи якщо освіта непрофільна — після нормальних серйозних курсів.

Цілком згоден. Просто, мене дістав цей тренд «освіта не потрібна». Постійно чую від знайомих про те як освіта не потрібна, нащо тратити 5 років на дурниці, як курси дають все необхідне за місяць, що ВУЗ розтягує на рік. Проте, що й не дивно, жодного разу не бачив щоб такий підхід давав хоч якийсь результат на практиці. :)

Я завжди уникаю на доу цього питання «чи потрібна освіта» — сильно багато холівару навколо і невизначеностей. Якщо питання стоїть «Чи потрібна вища освіта взагалі» — то моя відповідь «Однозначно так». Бо, навіть, коли спілкуєшся з людиною з вищою освітою та без неї, — в більшості випадків відчувається різниця.
Якщо поставити питання «Чи потрібна вища ТЕХНІЧНА освіта для роботи в ІТ» і потрібно дати відповідь «так» або «ні», то я відповім «ТАК». Але тут треба розглядати два випадки і їх особливості.
1. Людина після закінчення школи, яка хоче працювати в ІТ. Тут однозначно треба йти в університет і вчитись. Університет треба вибирати якнайкращий з доступного.
2. Людина, котра вже має якусь освіту (наприклад, економічну) і в процесі навчання/після закінчення університету почала працювати в ІТ. Сюди ж відносимо людей котрі перекваліфікувались в ІТ, маючи непрофільну освіту. Деякі йдуть отримувати другу вищу освіту — технічну. Деякі забивають на освіту і працюють так як є. Питання в тому чи дає таким людям друга освіта щось корисне і чи варто витрачати на це час. Як на мене — витрати часу непропорційні витраченим зусиллям.
Що з університетської програми потрібно буде в ІТ: математика (матан, дискретка, теорія ймовірності — для розширення загального світогляду, бо напряму мало хто це буде використовувати; в ДС — теорія ігор, методи оптимізації, аналіз часових рядів), алгоритми та програмування, бази даних. Далеко не в усіх університетах викладачі добре це пояснюють. Тому для математики можна піти на матпрофі і з усім цим розібратись, для ДС — на курсеру на відповідні курси, програмування — в будь-якому випадку треба вчити самому, алгоритми — курс Седжвіка буде точно кращий будь-якого нашого університетського курсу. А витрати часу на все це будуть набагато менші.
P.S_1. Написав дуже спрощено і свою особисту думку. Незважаючи на написане, особисто я за ТЕХНІЧНУ освіту в ІТ. Але є багато випадків, коли її значення перебільшене. На доу часто вилітають фрази «Та куди ці вайтишники йдуть, не маючи відповідної освіти?!». Особисто я знаю багато людей з економічною освітою (облік і аудит, економіка), котрі в знаннях математики/алгоритмів будуть точно краще більшості девелоперів з профільною освітою. Просто люди цікавляться цим і витрачають на це час із цікавості.
P.S_2. Все вищенаписане не стосується ембедед і інших низькорівневих речей. Я від цього далекий. Але розумію, що там картина зовсім інша.

Та все потрібно. І історія, і математика, і література, і філософія. Зараз так смішно, коли згадую, як був малий і думав що то все якась непотрібна в житті дічъ. Ще смішніше, коли так і досі думають дорослі люди. :)
Згадав гарне есе Грема в тему — www.imena.ua/...​log/forget-what-you-read, посил якого у тому, що не важливо, пам’ятаєш ти прочитане через рік чи ні, а у тому, що під час самого процесу читання на тебе назавжди впливають думки автора та власні виводи з прочитаного.
Мені здається, так і з армією^Wосвітою.

І ще, хотів би поділитися своїми спостереженнями. Навіть рівень ВУЗу, як правило, помітно впливає. Так при спілкуванні, в більшості випадків, було помітно, що людина закінчила топовий столичний ВУЗ, а не провінційну шарагу.

зараз всі на React

ось це потрібно було зрозуміти до того, як почали вчитися. Вас, мабудь, навчили смикати сервіси та підкладати дані до темплейту, ще й забили голову декорованою маячнею.
Так що є декілька варіантів: поїхати до більшого міста за проектами на Ангуляр (не впевнений, чи вистачить ЗП), перевчитися на Реакт (потрібно буде дуже добре вивчити TS/JS — не прототипи, якими вже ніхто не хизується, а методи обробки даних, та вибрати, який Реакт вчити: на класах або на хуках), або перевчитися на когось іншого, на кого є попит в Черкасах (це не страшно, бо перевчатися або доучуватися доведеться кожні 5 років).

А чем так сильно отличается «Реакт на хуках» от «Реката на классах»? Общая идеология-то одна и та же, а синтаксис хуков/методов класса — дело наживное, буквально пары дней должно быть достаточно.

буквально пары дней должно быть достаточно

Вы очень сильно заблуждаетесь, касательно пары дней. Чтобы перейти на хуки, и начать эффективно их использовать, у меня ушло месяц, за это время было написано десятки компонентов, кастомных хуков, изучены issues на github (типа этого github.com/...​cebook/react/issues/14099), изучен исходный код некоторых компонентов material-ui которые были переписаны с использованием хуков.
Нюансов очень много ...
Вот пожалуйста простенький Dropdown на хуках:

import React, { useEffect, useCallback, useState, useRef } from 'react';
import PropTypes from 'prop-types';
import { CSSTransition } from 'react-transition-group';
import classNames from 'classnames';

import useEventCallback from '@components/hooks/useEventCallback';
import Modal from '@components/Modal';
import { usePopper } from '@components/Popper';

const getNextIndex = (menuElement, prevIndex, offset = 1) => {
    const activeElement = document.activeElement;
    const menuElementItems = Array.from(menuElement.children);
    let nextElement = null;

    if (activeElement === menuElement) {
        nextElement = offset > 0 ? menuElement.firstChild : menuElement.lastChild;
    } else if (offset > 0) {
        nextElement = activeElement.nextElementSibling || menuElement.firstChild;
    } else if (offset < 0) {
        nextElement = activeElement.previousElementSibling || menuElement.lastChild;
    }

    while (nextElement && nextElement !== activeElement) {
        if (
            nextElement.getAttribute('role') !== 'menuitem' ||
            nextElement.getAttribute('aria-disabled') === 'true'
        ) {
            nextElement =
                offset > 0 ? nextElement.nextElementSibling : nextElement.previousElementSibling;

            if (!nextElement && activeElement !== menuElement) {
                nextElement = offset > 0 ? menuElement.firstChild : menuElement.lastChild;
            }
        } else {
            break;
        }
    }

    return nextElement ? menuElementItems.indexOf(nextElement) : prevIndex;
};

const Menu = (props) => {
    const {
        open,
        anchorRef,
        placement = 'bottom-start',
        children,
        autoWidth = false,
        width,
        className,
        style,
        onClose = () => {}
    } = props;

    const defaultIndex = -1;

    const { referenceRef, popperRef, popperState, popperInstance } = usePopper({
        placement,
        modifiers: [
            {
                name: 'offset',
                options: {
                    offset: [0, 2]
                }
            }
        ]
    });
    const [exited, setExited] = useState(true);
    const [selectedIndex, setSelectedIndex] = useState(defaultIndex);
    const [menuStyle, setMenuStyle] = useState({ ...style, ...(width && { width }) });
    const menuRef = useRef(null);

    // Handlers

    const handleModalClose = useEventCallback((ev) => {
        onClose();
    });

    const handleMenuKeyDown = useEventCallback((ev) => {
        switch (ev.key) {
            case 'Tab':
                ev.preventDefault();

                onClose();
                break;
            case 'ArrowDown': {
                ev.preventDefault();

                setSelectedIndex((prevIndex) => {
                    return getNextIndex(menuRef.current, prevIndex, 1);
                });
                break;
            }
            case 'ArrowUp': {
                ev.preventDefault();

                setSelectedIndex((prevIndex) => {
                    return getNextIndex(menuRef.current, prevIndex, -1);
                });
                break;
            }
            default:
                break;
        }
    });

    const handleItemClick = useCallback(
        (child, index) => (ev) => {
            setSelectedIndex(index);
            onClose();

            if (child.props.onClick) {
                child.props.onClick(ev);
            }
        },
        [onClose]
    );

    const handleTransitionEnter = useCallback(() => {
        setExited(false);
    }, []);

    const handleTransitionExited = useCallback(() => {
        setExited(true);
    }, []);

    // Effects

    useEffect(() => {
        if (anchorRef.current) {
            referenceRef(anchorRef.current);
        }
    }, [anchorRef, referenceRef]);

    useEffect(() => {
        if (open && menuRef.current) {
            menuRef.current.focus();
        } else if (!open && anchorRef.current) {
            anchorRef.current.focus();
        }
    }, [open, popperState, anchorRef]);

    useEffect(() => {
        return () => {
            if (!open) {
                setSelectedIndex(defaultIndex);
            }
        };
    }, [open, defaultIndex]);

    useEffect(() => {
        if (anchorRef.current && autoWidth) {
            const anchorWidth = anchorRef.current.clientWidth;

            setMenuStyle((prevStyle) => {
                return { ...prevStyle, minWidth: anchorWidth };
            });
        }
    }, [anchorRef, autoWidth]);

    // Render

    const currentPlacement = popperState.placement || placement;

    const items = React.Children.map(children, (child, index) => {
        return React.cloneElement(child, {
            selected: index === selectedIndex,
            onClick: handleItemClick(child, index)
        });
    });

    return (
        <Modal open={open || !exited} backdrop={false} onClose={handleModalClose}>
            <div className="popper" ref={popperRef}>
                <CSSTransition
                    in={open && !!popperInstance}
                    timeout={300}
                    classNames="menu"
                    onEnter={handleTransitionEnter}
                    onExited={handleTransitionExited}
                >
                    <div
                        role="menu"
                        className={classNames('menu u-focus-outline-0', className, {
                            [`u-placement-${currentPlacement}`]: currentPlacement
                        })}
                        ref={menuRef}
                        tabIndex="-1"
                        style={menuStyle}
                        onKeyDown={handleMenuKeyDown}
                    >
                        {items}
                    </div>
                </CSSTransition>
            </div>
        </Modal>
    );
};

Menu.propTypes = {
    anchorRef: PropTypes.object,
    open: PropTypes.bool,
    placement: PropTypes.string,
    children: PropTypes.node,
    autoWidth: PropTypes.bool,
    width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
    className: PropTypes.string,
    style: PropTypes.object,
    onClose: PropTypes.func
};

export default Menu;

Ваш код это какая-то дичь, я сейчас не говорю в рамках фреймворка, просто куча if else, циклов while... огромные блоки, читаемость кода стремится к 0 уже простите... И зачем вам столько useState когда можно это переписать на dispatch с useReducer

Ну так покажите как надо! Или дайте ссылку на ваш код, где вы используете хуки.

И зачем вам столько useState когда можно это переписать на dispatch с useReducer

В данном примере смысла в useReducer нет никакого.

Как нужно писать чистый и понятный код в интернете куча статей, книжек и тд.
К примеру метод:

getNextIndex

которая включает в себя 5 блоков if/else с внутренным циклом это зашквар. Пишите понятные чистые функции без простыней и кучей зависимостей, это для начала. К примеру getNextIndex было бы не плохо обернуть в другие реиспользующиеся getNextElement, findActiveElement и тд

Уважаемый, покажи как надо, простой dropdown давай, сделай на хуках. И сравним у кого зашквар.

Хороший приклад, щоб ним можна було ефективно відлякувати молодняк, хто хоче писати на «простенькому» Реакті.

В Ангуларі цей код можна розділити на HTML-код і на клас, де будуть працювати і хуки в тому числі...

Хороший приклад, щоб ним можна було ефективно відлякувати молодняк

Не вам судить.

В Ангуларі цей код можна розділити на HTML-код і на клас

Для начала сами придерживайтесь того что советуете!
github.com/...​/src/app/app.component.ts

Не смішіть людей. Якщо б у вас було як у цьому моєму коді — два рядка — ніхто б вам не говорив про потребу розділяти код і HTML-шаблон. Більше того — у моєму прикладі код таки розділений на клас і HTML-шаблон, просто їх не рознесено на два файли.

Не совсем. Методы класса, а, тем более, наследование — это достаточно сильно отличается от концепции «код — как компонент». Я почти 3 года писал классы на TS, с декораторами и методами жизненного цикла. Сейчас — чистый жс и хуки. До этого всего — 4 года на ангуларе, но это выброшенные годы ;)
И потребовалось, чтобы в мозгу «щелкнуло», и он начал думать в стиле «вот данные, а результат когда-нибудь появится». И я скажу, что такой подход позволяет писать намного быстрее и с меньшим числом ошибок.
Оптимизацию доверяю фейсбуку.
Классы, с другой стороны, помогают со сложными взаимодействиями, но я верю Абрамову: если ваш код достаточно сложный в методах, это значит, что он недостаточно сложный в компонентах.

До этого всего — 4 года на ангуларе, но это выброшенные годы ;)

Ви так часто це пишете в різних темах, але коли ми з вами починаємо заглиблюватись в деталі, виясняється, що ваш досвід на ангулар сформований на першій версії (ну або другу версію ви палицею тикали здалеку).

Еще позволю пример. Хорошо себе представляю, как это будет выглядеть без хуков, но с хуками — это просто конфета.

// component.js
const { response: { data: listOfFilters } } = useFetchListOfFIlters();
const [selectedFilters, setSelectedFilters] = React.useState([]);
const { response: { data: listOfParams = [] } = useFetchOtherParams(selectedFilters);
const { response: { data: mainContent  }, loading } = useFetchMainContent(listOfParams);

{listOfFilters.map(... setSelectedFilters or useCallback or useGetCallback )
{loading ? <Loading /> : <MainContent content={mainContent} />}


// api.js
function useFetchOtherParams(filters) {
 const url = Rect.useMemo(() => {...}, [filters]);
 const callback = React.useCallback(response => {...}, []);
 return useFetch(url, callback);
}


// effects.js
function useFetch(...args){  
 const { url, options, callback } = useFetchArguments(...args);
 много универсального кода на все случаи жизни 
}
Это 4 строчки в компоненте, которые на классах превращаются в пол страницы кода с использованием совершенно иной идеологии.
Вас, мабудь, навчили смикати сервіси та підкладати дані до темплейту, ще й забили голову декорованою маячнею.

Вот честно, когда пишу на реакте, кошмарно не хватает сервисов, нормального DI и декораторов.

Очень легко писать в стиле: хочу такие-то данные, буду их ждать тут, кто может — скиньте. Дело привычки.
Декораторы — тайпскрипт в помощь (я на декораторах написал редакс симбиот и валидацию), но достаточно сложно дебажить.
DI, возможно, была бы полезна в тестах, но есть же перегрузка require(). А компонентам DI не нужна. Им по-барабану, кто данные прислал. Они их просто отображают. Запрос на данные — абстрактный. Можете менять на лету, кто его обслуживать будет при помощи того же import() или if (process.env.DEBUG) { window.fetch = mockupFetch}

Простой пример, где DI крайне упрощает жизнь.
Для редакса в ангуляре используем ngrx (допустим), в реакте — react-redux.
Что проще для использования: заинжектить фасад в компонент, просто добавив его в конструктор, или юзать connect(), все эти mapStateToProps, mapDispatchToProps, еще и зачастую оборачивая это в HOC?

Сложно сказать. Хотелось бы для общего развития поизучать ангулар с ngrx (я это уже не застал, т.к. с А2+ работал очень мало).. Я просто писал

static mapDispatchToProps = (dispatch) => ({
    ...bindActionCreators({
      ...actions,

      eventNamesCodeListDataFetch: sharedActions.eventNamesCodeListDataFetch, // опционально
      
    }, dispatch)
  });
и мне было понятно, окуда что берется. Сейчас пишу с использованием redux-symbiote, useReducer и контекста. Это еще проще. В компоненте сразу данные в store, а запросы идут в dispatch(actions.some())
Ну, а, поскольку, import {Store} from ’./store’, то это оборачивается в import().then() и юзаются разные контексты, если нужно
я это уже не застал, т.к. с А2+ работал очень мало

О, нарешті ви це прямо написали. Тільки бажано щоб ви згадували про це кожен раз, коли ви людей відлякуєте від ангулара і грозитесь своїми 4 роками досвіду з ним... тільки скромно мовчите, що це стосується давним-давно неактуальної першої версії.

Саме ТОМУ, що А2+ хворий на усю голову, я з ним не став продовжувати. Час покаже, що він нікому не буде потрібен.

Очень интересно посмотреть часть кода который вы сейчас пишете на React, и тоже самое на Angular с DI и декораторами. Поделитесь?

Кодом не поделюсь, выше пример где DI и @Injectable позволяет реализовать редакс гораздо минималистичнее в плане использования стора компонентом, чем в реакте.
А еще не хватает rxjs в реакте. Аж смешно, учитывая страдания мои страдания неофита, пока я к нему привыкал. Конечно, можно rx и к реакту прикрутить, но без async pipe не то

Изучаю сейчас React Native, и после работы с Angular на протяжении 4 лет, понял что React попросту написан по другому, и его не стоит пытаться переделать на подходы которые используются в Angular. Для себя мне проще использовать redux-observable и написать обертку rxjs над axios чем использовать fetch, но в плане всего остального, тех же хуков, jsx, лапшекода в компоненте, это нужно принять :) И очень не хватает DI, но выхожу из этой ситуации статичными методами или хелпер функциями

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

Я как-то весной по парку гулял и случайно вступил в js фрэймворк.

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

mature таки выдержаное и прилипнет хорошо.

В redux-thunk есть третий параметр extraArgument, который может быть объектом с ссылками на сервисы и он инжектится в каждый thunk. В redux-saga есть контексты, которые так же позволяют инжектить. Но это все имеет смысл если вы держите бизнес-логику вне компонентов. Если пишите без стейт менеджмента, то context provider + простенький хук а-ля useServiceLocator примерно ту же роль исполнят

Між іншим, ангуларовський DI можна використовувати на будь-якому TypeScript проекті, дуже крута штука, рекомендую.

Якщо ви відчуваєте, що досить добре знаєте Ангулар і бачите попит на Реакт-розробників, то в чому проблема? Я на Реакті не писав, але вивчав його трохи — і після Ангулару він виглядає не дуже складно. Щодо досвіду — так, здобути його важко, тим паче, перший, але можна ще шукати і ремоут-вакансії — такі також іноді трапляються. Ну або переїзд в Київ чи ще кудись — цей шлях обрали багато ваших попередників. )

Пиляйте якийсь власний невеликий, але якісний продукт з хоча би самоокупною монетизацією.

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

Простір зараз створює багато нових, раніше невідомих ніш. Треба лише уважно придивитись та проаналізувати можливості.

Пиляйте якийсь власний невеликий, але якісний продукт з хоча би самоокупною монетизацією.
Потім продасте продукт комусь

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

Еще хотел бы посоветовать освоить слепую печать, хотя бы латиницу, это вам в дальнейшем очень пригодится.
www.portnov.com/keyboarding-russian
www.livechat.com/typing-speed-test/

Судячи по історіям знайомих курсантів то робота знаходиться, але беруть, по суті, як студента. За копійки. Як правило, курсанти це вже пристарілі хіпстери, далеко після інституту менеджменту і їх мрія про вайті розбивається об запропоновані 4К грн.
Порада проста — ходити по більш-менш підходячих конторах і проситися на роботу за пару К на пиво. Через рік-два можна буде вийти на гроші за які вже можна прожити без підтримки мами-папи-жінки (в районі 10-15K грн).
Знаю як успішні так і не успішних курсантів. Успішних об’єднує одне — вони напружено працювали і намагалися десь пробитися. Неуспішна схема теж стандартна: я з дипломом (так на курсах кажуть називати макулатуру, що там видають) і ніхто не хоче мені платити 1К юсд.

Все сказане про базарну провінцію.

Через рік-два можна буде вийти на гроші за які вже можна прожити без підтримки мами-папи-жінки (в районі 10-15K грн).

Особисто знаю пару чоловік трейні після курсів із 3 місяцями досвіду, які звільнялись із нашої контори і вже переходили на другу свою роботу із зп 600 баксів. Але у них гонор неслабенький, думаю вони прибрехали собі досвід в резюме...

Сурово. Це в Києві? А до того вони якусь освіту чи професію мали?

Так, в Києві, і здається була вища економічна освіта чи технікум у одного із них, але у другого — лише школа.

Як знайти роботу інженеру по технологіям НАСА в селі Нові Петрівці?

смішно) та все ж в нас є кантори де використовують фреймворк Angular але їх мало)

Я би радив не зациклюватися на якомусь фреймворку. Краще качай JS, нові стандарти, наслідування, проміси там всякі. Якісь там npm, nvm, чи що у вас там. HTTP, HTML. Коротше, базу. Ну і примітив КС: сортировки самі прості, там строку перевернути. Якийсь там рекурсивний фібоначі. Щоб хоч розуміти про що це, коли запитають, часом.

зараз повернувся до вивчення самого JS — codewars допомагає) я вже на співбесідах був раніше і коли ходив на свою першу для мене було здивуванням чому мене питають JS коли я вчив останні пів року перед тим TS і Angular) тож буду прокачувати свій JS)

JS коли я вчив останні пів року перед тим TS і Angular)

Бо ЖС то основа. Ангуляри приходять і уходять а основа залишається. Ну і не можна нормально на фреймворкові писати не знаючи саму мову програмування.

Твоя проблема в тому, що ти живучи в неайті місті, обрав ентерпрайз левел фреймворк. І тепер локально хочеш знайти роботу. Звісно можна піти на апворк і конкурувати з індусами. Там шукають навіть ангулярщиків-експертів на 6 дол в годину по трекеру. Тобто робота має знайтися навіть для ангуляр трейня. Питання як себе змогти продати, особливо перший раз. Якщо не хочеш змінювати фреймворк на попроще(реакт або вуе жс, який наче вже сильно популярний), і не хочеш переїзжати в айті місто, то напевно тільки так.

обрав ентерпрайз левел фреймворк.

Да ладно, зараз цей Ангуляр у кожному лендосі вже. У нас примітивні адмінки на ньому писали. Нічого ентерпрайзного (що би це не значило). Навіть у нашому колгоспі є контори яким треба такі вміння.

Ангуляр у кожному лендосі вже

Ну це не суперечить тому, що на ангуларі простіше писати великі проекти, ніж на чомусь іншому. Якщо на ньому і прості проекти норм комусь писати, то це тільки плюс ангулару.

Як знайти роботу інженеру по технологіям НАСА в селі Нові Петрівці?

Ну Безос же на своем ранчо построил частную аэрокосмическую компанию.

А вот поскольку ты задвигаешь, что США ничем не лучше Украины, то как-то странно видеть стеб про село и технологии NASA.
Двойные стандарты?

Про всяк випадок треба вивчити фразу «вільна каса» на всіх європейських мовах

Звучить як назва жс фреймворку!

Ну ось. На JS теж можна казати «вільна каса».

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

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

А что там его учить? React учится за месяц, Vue.js за 2 недели, там даже курсы не нужно заканчивать

Выучил Реакт за два дня, просто добавь в кофе...

Подписаться на комментарии