С наскоку что-то сложное делать - порочная практика. Погрязнет в деталях и нюансах. Моделирование в голове нужно развивать постепенно. Тут очень важно чтобы оперативная память была объёмной и стабильной, чтобы долго мог удерживать в голове несколько вещей. Обычно человек может удерживать или недолго или немного, в таком случае разработка превращается в каторгу и сплошной тупик с граблями...
Вообще основная проблема начинающих разработчиков в том, что в голове нужно держать несколько десятков или даже сотен нюансов и выстраивать между ними непротиворечивые связи, учитывая особенности каждой детали. Работка весьма специфическая, и, в большинстве случаев, доставляется отрицательные количества удовольствия, поэтому особым спросом не пользуется...
Как только объекты сделают по 2 шага вперед и окажутся в тоннеле, если они учитываются в алгоритме поиска путей, оба окажутся в тупике и дальнейшее развитие событий уже будет зависеть от алгоритма, что и как там учитывается. Допустим пути можно искать дважды для каждого объекта - с учетом других объектов и без учета. Тогда при наличии разницы будет понятно, что это другой объект преграждает путь и можно пойти альтернативным путем. Однако если будет несколько доступных путей, то все сильно усложняется.
Еще вариант, искать пути без учета других объектов, но при их обнаружении поднимать флаг.
Илья Паршаков, Для начала необходимо выбрать перспективный стек, ибо невозможно объять необъятное. Кроме того временной и ментальный ресурсы у любого человека весьма жестко ограничены, поэтому необходимо отметать 99% всего и фокусироваться только на самом главном, тогда есть шанс что-то успеть.
У тебя в профиле написано что ты начинающий изучать PHP. Сегодня куда более перспективным мне представляется JS.
Найти дистанционную команду куда получится вписаться стажеру/джуну практически нереально в силу их бизнес-модели. Шансов намного больше вписаться в программу стажировки очно.
Если ты живешь в провинции, сам понимаешь, ты либо должен быть семи пядей во лбу, мега квалифицированным и дисциплинированным, чтобы самоорганизовываться и наносить пользу заказчику на расстоянии, либо придется переехать, раз уж ты всерьез решил развиваться в этой сфере. Первое очень сложно но, практически, бесплатно. Второе, разумеется, стоит немалых денег. Если ты уже в столицах обитаешь, то бинго, у тебя фора.
Для того чтобы с тобой хотя бы начали разговаривать с точки зрения вписывания в команду, ты должен заведомо быть потенциально полезным. Эту свою потенциальнополезность ты должен очень явно и однозначно продемонстрировать (портфолио). Еще очень желательно, чтобы это хотя бы отдаленно напоминало правду. Вот тут я писал как я мигрировал с пыхи на JS, чего мне это стоило и какие подводные камни вылезли, при том, что я ни разу не джун - https://toster.ru/q/494114?e=6168928#answer_item_1...
Одно могу сказать точно, для целеустремленного человека, способного действовать и выходить из зоны комфорта, нет ничего невозможного, с поправкой на ветер. Опять же, приготовься потратить на это пару лет как минимум, совершать ошибки, делать разбор полетов, исправляться, снова ошибаться и так далее, пока, наконец, однажды, вдруг начнет получаться...
Вот моё глубокое мнение и личный многолетний опыт - конкретный язык, фреймворк, ООП, паттерны - это всё погремушки. Главное - чтобы человек постоянно и быстро учился, желал и мог решать конкретные проблемы, когда, зачастую, решение неочевидно. Т.е. ты буквально должен мочь и уметь доставать решение чуть ли не из-под земли. Какой именно погремушкой заколачивать гвозди и месить бульоны будет важно в конкретной команде на конкретном проекте, и тут не угадаешь. А вот если ты слабо ориентируешься в базовых (извечных) вещах вроде структур данных и алгоритмов, то погремушки, увы, не спасут.
Найди мои прочие посты тут на тостере, почитай, я много чего уже писал на эту тему.
Еще попросил бы ключи от хаты, где деньги лежат... :D
В открытых источниках валяется только то, что либо общеизвестно либо никому никуда не впилось... А то, что реально доходы приносит, всегда за семью печатями... ИМХО.
Так материалы легко гуглятся и ютубятся. Другое дело что они часто скучные и нудные.
Лично я все осваивал по ходу дела на практике, но это было давно.
Когда я бодро мигрировал с PHP на JS, нужно было переформатировать мозги, я зарешал энное количество задачек на кодварс. Весьма рекомендую.
Вообще в решении любой задачи есть несколько фаз:
0) Помучаться
1) Решить хоть как нибудь
2) Застабилизировать
3) Сделать правильно
4) Сделать красиво и изящно
Вот нужно стремиться выходить все чаще на 3+ по этой шкале, другой вопрос, что, чаще всего, время ограничено, поэтому нужно вырабатывать рефлексы, чтобы 3+ получался автоматом.
Чем обусловлен такой выбор языка в 2017 году? У меня последние лет 5 PHP работает тонким прокси до БД с генерацией JSON и отдачей по AJAX на легаси проектах...
Как по мне, так те времена, когда PHP безраздельно правил, прошли... 90% логики нынче на фронтенде, так-что если хочется быть в тренде и заниматься интересными штуками, то тут надо вовсе не PHP.
А еще есть социальные взносы, которые нужно своевременно оплачивать, чтобы вычесть из тех 6%. На секундочку в 2018 году это будет с сумм до 300 тысяч руб. в год 32385, со всего что свыше +1 от суммы. Те самые 6% оно перекрывает, когда реально начинаешь платить именно уже 6% с дохода от 45 тысяч в месяц, если меньше, то получится ни разу не 6%, а, в лучшем случае, все 7% + банковские комиссии.
Redux синхронный, AJAX асинхронный. Тут по любому мидлварами придется тылы прикрывать.
Если проект большой и разделы между собой не связаны жестко (кроме авторизации и пр.) то лучше, имхо, делать модульно, и обслуживать проще будет и порядку будет больше и коду грузиться за раз будет меньше.
Вообще основная проблема начинающих разработчиков в том, что в голове нужно держать несколько десятков или даже сотен нюансов и выстраивать между ними непротиворечивые связи, учитывая особенности каждой детали. Работка весьма специфическая, и, в большинстве случаев, доставляется отрицательные количества удовольствия, поэтому особым спросом не пользуется...